diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 00000000..c1965c21
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+.github/workflows/*.lock.yml linguist-generated=true merge=ours
\ No newline at end of file
diff --git a/.github/agents/agentic-workflows.agent.md b/.github/agents/agentic-workflows.agent.md
new file mode 100644
index 00000000..b6e648cb
--- /dev/null
+++ b/.github/agents/agentic-workflows.agent.md
@@ -0,0 +1,196 @@
+---
+description: GitHub Agentic Workflows (gh-aw) - Create, debug, and upgrade AI-powered workflows with intelligent prompt routing
+disable-model-invocation: true
+---
+
+# GitHub Agentic Workflows Agent
+
+This agent helps you work with **GitHub Agentic Workflows (gh-aw)**, a CLI extension for creating AI-powered workflows in natural language using markdown files.
+
+## What This Agent Does
+
+This is a **dispatcher agent** that routes your request to the appropriate specialized prompt based on your task:
+
+- **Creating new workflows**: Routes to `create` prompt
+- **Updating existing workflows**: Routes to `update` prompt
+- **Debugging workflows**: Routes to `debug` prompt
+- **Upgrading workflows**: Routes to `upgrade-agentic-workflows` prompt
+- **Creating report-generating workflows**: Routes to `report` prompt — consult this whenever the workflow posts status updates, audits, analyses, or any structured output as issues, discussions, or comments
+- **Creating shared components**: Routes to `create-shared-agentic-workflow` prompt
+- **Fixing Dependabot PRs**: Routes to `dependabot` prompt — use this when Dependabot opens PRs that modify generated manifest files (`.github/workflows/package.json`, `.github/workflows/requirements.txt`, `.github/workflows/go.mod`). Never merge those PRs directly; instead update the source `.md` files and rerun `gh aw compile --dependabot` to bundle all fixes
+- **Analyzing test coverage**: Routes to `test-coverage` prompt — consult this whenever the workflow reads, analyzes, or reports on test coverage data from PRs or CI runs
+- **CLI commands and triggering workflows**: Routes to `cli-commands` guide — consult this whenever the user asks how to run, compile, debug, or manage workflows from the command line, or when they need the MCP tool equivalent of a `gh aw` command
+
+Workflows may optionally include:
+
+- **Project tracking / monitoring** (GitHub Projects updates, status reporting)
+- **Orchestration / coordination** (one workflow assigning agents or dispatching and coordinating other workflows)
+
+## Files This Applies To
+
+- Workflow files: `.github/workflows/*.md` and `.github/workflows/**/*.md`
+- Workflow lock files: `.github/workflows/*.lock.yml`
+- Shared components: `.github/workflows/shared/*.md`
+- Configuration: https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/github-agentic-workflows.md
+
+## Problems This Solves
+
+- **Workflow Creation**: Design secure, validated agentic workflows with proper triggers, tools, and permissions
+- **Workflow Debugging**: Analyze logs, identify missing tools, investigate failures, and fix configuration issues
+- **Version Upgrades**: Migrate workflows to new gh-aw versions, apply codemods, fix breaking changes
+- **Component Design**: Create reusable shared workflow components that wrap MCP servers
+
+## How to Use
+
+When you interact with this agent, it will:
+
+1. **Understand your intent** - Determine what kind of task you're trying to accomplish
+2. **Route to the right prompt** - Load the specialized prompt file for your task
+3. **Execute the task** - Follow the detailed instructions in the loaded prompt
+
+## Available Prompts
+
+### Create New Workflow
+**Load when**: User wants to create a new workflow from scratch, add automation, or design a workflow that doesn't exist yet
+
+**Prompt file**: https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/create-agentic-workflow.md
+
+**Use cases**:
+- "Create a workflow that triages issues"
+- "I need a workflow to label pull requests"
+- "Design a weekly research automation"
+
+### Update Existing Workflow
+**Load when**: User wants to modify, improve, or refactor an existing workflow
+
+**Prompt file**: https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/update-agentic-workflow.md
+
+**Use cases**:
+- "Add web-fetch tool to the issue-classifier workflow"
+- "Update the PR reviewer to use discussions instead of issues"
+- "Improve the prompt for the weekly-research workflow"
+
+### Debug Workflow
+**Load when**: User needs to investigate, audit, debug, or understand a workflow, troubleshoot issues, analyze logs, or fix errors
+
+**Prompt file**: https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/debug-agentic-workflow.md
+
+**Use cases**:
+- "Why is this workflow failing?"
+- "Analyze the logs for workflow X"
+- "Investigate missing tool calls in run #12345"
+
+### Upgrade Agentic Workflows
+**Load when**: User wants to upgrade workflows to a new gh-aw version or fix deprecations
+
+**Prompt file**: https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/upgrade-agentic-workflows.md
+
+**Use cases**:
+- "Upgrade all workflows to the latest version"
+- "Fix deprecated fields in workflows"
+- "Apply breaking changes from the new release"
+
+### Create a Report-Generating Workflow
+**Load when**: The workflow being created or updated produces reports — recurring status updates, audit summaries, analyses, or any structured output posted as a GitHub issue, discussion, or comment
+
+**Prompt file**: https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/report.md
+
+**Use cases**:
+- "Create a weekly CI health report"
+- "Post a daily security audit to Discussions"
+- "Add a status update comment to open PRs"
+
+### Create Shared Agentic Workflow
+**Load when**: User wants to create a reusable workflow component or wrap an MCP server
+
+**Prompt file**: https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/create-shared-agentic-workflow.md
+
+**Use cases**:
+- "Create a shared component for Notion integration"
+- "Wrap the Slack MCP server as a reusable component"
+- "Design a shared workflow for database queries"
+
+### Fix Dependabot PRs
+**Load when**: User needs to close or fix open Dependabot PRs that update dependencies in generated manifest files (`.github/workflows/package.json`, `.github/workflows/requirements.txt`, `.github/workflows/go.mod`)
+
+**Prompt file**: https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/dependabot.md
+
+**Use cases**:
+- "Fix the open Dependabot PRs for npm dependencies"
+- "Bundle and close the Dependabot PRs for workflow dependencies"
+- "Update @playwright/test to fix the Dependabot PR"
+
+### Analyze Test Coverage
+**Load when**: The workflow reads, analyzes, or reports test coverage — whether triggered by a PR, a schedule, or a slash command. Always consult this prompt before designing the coverage data strategy.
+
+**Prompt file**: https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/test-coverage.md
+
+**Use cases**:
+- "Create a workflow that comments coverage on PRs"
+- "Analyze coverage trends over time"
+- "Add a coverage gate that blocks PRs below a threshold"
+
+### CLI Commands Reference
+**Load when**: The user asks how to run, compile, debug, or manage workflows from the command line; needs the MCP tool equivalent of a `gh aw` command; or is in a restricted environment (e.g., Copilot Cloud) without direct CLI access.
+
+**Reference file**: https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/cli-commands.md
+
+**Use cases**:
+- "How do I trigger workflow X on the main branch?"
+- "What's the MCP equivalent of `gh aw logs`?"
+- "I'm in Copilot Cloud — how do I compile a workflow?"
+- "Show me all available gh aw commands"
+
+## Instructions
+
+When a user interacts with you:
+
+1. **Identify the task type** from the user's request
+2. **Load the appropriate prompt** from the GitHub repository URLs listed above
+3. **Follow the loaded prompt's instructions** exactly
+4. **If uncertain**, ask clarifying questions to determine the right prompt
+
+## Quick Reference
+
+```bash
+# Initialize repository for agentic workflows
+gh aw init
+
+# Generate the lock file for a workflow
+gh aw compile [workflow-name]
+
+# Trigger a workflow on demand (preferred over gh workflow run)
+gh aw run # interactive input collection
+gh aw run --ref main # run on a specific branch
+
+# Debug workflow runs
+gh aw logs [workflow-name]
+gh aw audit
+
+# Upgrade workflows
+gh aw fix --write
+gh aw compile --validate
+```
+
+## Key Features of gh-aw
+
+- **Natural Language Workflows**: Write workflows in markdown with YAML frontmatter
+- **AI Engine Support**: Copilot, Claude, Codex, or custom engines
+- **MCP Server Integration**: Connect to Model Context Protocol servers for tools
+- **Safe Outputs**: Structured communication between AI and GitHub API
+- **Strict Mode**: Security-first validation and sandboxing
+- **Shared Components**: Reusable workflow building blocks
+- **Repo Memory**: Persistent git-backed storage for agents
+- **Sandboxed Execution**: All workflows run in the Agent Workflow Firewall (AWF) sandbox, enabling full `bash` and `edit` tools by default
+
+## Important Notes
+
+- Always reference the instructions file at https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/github-agentic-workflows.md for complete documentation
+- Use the MCP tool `agentic-workflows` when running in GitHub Copilot Cloud
+- Workflows must be compiled to `.lock.yml` files before running in GitHub Actions
+- **Bash tools are enabled by default** - Don't restrict bash commands unnecessarily since workflows are sandboxed by the AWF
+- Follow security best practices: minimal permissions, explicit network access, no template injection
+- **Network configuration**: Use ecosystem identifiers (`node`, `python`, `go`, etc.) or explicit FQDNs in `network.allowed`. Bare shorthands like `npm` or `pypi` are **not** valid. See https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/network.md for the full list of valid ecosystem identifiers and domain patterns.
+- **Single-file output**: When creating a workflow, produce exactly **one** workflow `.md` file. Do not create separate documentation files (architecture docs, runbooks, usage guides, etc.). If documentation is needed, add a brief `## Usage` section inside the workflow file itself.
+- **Triggering runs**: Always use `gh aw run ` to trigger a workflow on demand — not `gh workflow run .lock.yml`. `gh aw run` handles workflow resolution by short name, input parsing and validation, and correct run-tracking for agentic workflows. Use `--ref ` to run on a specific branch.
+- **CLI commands reference**: For a complete guide on all `gh aw` commands and their MCP tool equivalents (for restricted environments), see https://github.com/github/gh-aw/blob/v0.71.5/.github/aw/cli-commands.md
diff --git a/.github/aw/actions-lock.json b/.github/aw/actions-lock.json
new file mode 100644
index 00000000..cda73548
--- /dev/null
+++ b/.github/aw/actions-lock.json
@@ -0,0 +1,34 @@
+{
+ "entries": {
+ "actions/checkout@v6.0.2": {
+ "repo": "actions/checkout",
+ "version": "v6.0.2",
+ "sha": "de0fac2e4500dabe0009e67214ff5f5447ce83dd"
+ },
+ "actions/download-artifact@v8.0.1": {
+ "repo": "actions/download-artifact",
+ "version": "v8.0.1",
+ "sha": "3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c"
+ },
+ "actions/github-script@v9.0.0": {
+ "repo": "actions/github-script",
+ "version": "v9.0.0",
+ "sha": "3a2844b7e9c422d3c10d287c895573f7108da1b3"
+ },
+ "actions/setup-node@v6.4.0": {
+ "repo": "actions/setup-node",
+ "version": "v6.4.0",
+ "sha": "48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e"
+ },
+ "actions/upload-artifact@v7.0.1": {
+ "repo": "actions/upload-artifact",
+ "version": "v7.0.1",
+ "sha": "043fb46d1a93c77aae656e7c1c64a875d1fc6a0a"
+ },
+ "github/gh-aw-actions/setup@v0.71.5": {
+ "repo": "github/gh-aw-actions/setup",
+ "version": "v0.71.5",
+ "sha": "b8068426813005612b960b5ab0b8bd2c27142323"
+ }
+ }
+}
diff --git a/.github/mcp.json b/.github/mcp.json
new file mode 100644
index 00000000..b953af26
--- /dev/null
+++ b/.github/mcp.json
@@ -0,0 +1,11 @@
+{
+ "mcpServers": {
+ "github-agentic-workflows": {
+ "command": "gh",
+ "args": [
+ "aw",
+ "mcp-server"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml
new file mode 100644
index 00000000..f5f09b80
--- /dev/null
+++ b/.github/workflows/copilot-setup-steps.yml
@@ -0,0 +1,26 @@
+name: "Copilot Setup Steps"
+
+# This workflow configures the environment for GitHub Copilot Agent with gh-aw MCP server
+on:
+ workflow_dispatch:
+ push:
+ paths:
+ - .github/workflows/copilot-setup-steps.yml
+
+jobs:
+ # The job MUST be called 'copilot-setup-steps' to be recognized by GitHub Copilot Agent
+ copilot-setup-steps:
+ runs-on: ubuntu-latest
+
+ # Set minimal permissions for setup steps
+ # Copilot Agent receives its own token with appropriate permissions
+ permissions:
+ contents: read
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+ - name: Install gh-aw extension
+ uses: github/gh-aw-actions/setup-cli@b8068426813005612b960b5ab0b8bd2c27142323 # v0.71.5
+ with:
+ version: v0.71.5
diff --git a/.github/workflows/translate-docs-ja.lock.yml b/.github/workflows/translate-docs-ja.lock.yml
new file mode 100644
index 00000000..ef694245
--- /dev/null
+++ b/.github/workflows/translate-docs-ja.lock.yml
@@ -0,0 +1,1433 @@
+# gh-aw-metadata: {"schema_version":"v3","frontmatter_hash":"f03d9b501b97bb7769ab99bc8744a06cdb0b14d6dd219f5eb85e731caa5209a7","compiler_version":"v0.71.5","strict":true,"agent_id":"copilot"}
+# gh-aw-manifest: {"version":1,"secrets":["COPILOT_GITHUB_TOKEN","GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/checkout","sha":"de0fac2e4500dabe0009e67214ff5f5447ce83dd","version":"v6.0.2"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9"},{"repo":"actions/setup-node","sha":"48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e","version":"v6.4.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"b8068426813005612b960b5ab0b8bd2c27142323","version":"v0.71.5"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.25.40","digest":"sha256:14ff567e8d9d4c2fbc5e55c973488381c71d7e0fdbe72d30ee7b8a738fd86504","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.25.40@sha256:14ff567e8d9d4c2fbc5e55c973488381c71d7e0fdbe72d30ee7b8a738fd86504"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.40","digest":"sha256:2883ca3e5ae9f330cafdd9345bfd4ae17fc8da36c96d4c9a1f76e922b4c45280","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.25.40@sha256:2883ca3e5ae9f330cafdd9345bfd4ae17fc8da36c96d4c9a1f76e922b4c45280"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.25.40","digest":"sha256:b084f4a2c771f584ee68084ced52fa6b3245197a1889645d817462d307d3ac51","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.25.40@sha256:b084f4a2c771f584ee68084ced52fa6b3245197a1889645d817462d307d3ac51"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.3.6","digest":"sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c"},{"image":"ghcr.io/github/github-mcp-server:v1.0.3","digest":"sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959","pinned_image":"ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959"},{"image":"node:lts-alpine","digest":"sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f","pinned_image":"node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f"}]}
+# ___ _ _
+# / _ \ | | (_)
+# | |_| | __ _ ___ _ __ | |_ _ ___
+# | _ |/ _` |/ _ \ '_ \| __| |/ __|
+# | | | | (_| | __/ | | | |_| | (__
+# \_| |_/\__, |\___|_| |_|\__|_|\___|
+# __/ |
+# _ _ |___/
+# | | | | / _| |
+# | | | | ___ _ __ _ __| |_| | _____ ____
+# | |/\| |/ _ \ '__| |/ /| _| |/ _ \ \ /\ / / ___|
+# \ /\ / (_) | | | | ( | | | | (_) \ V V /\__ \
+# \/ \/ \___/|_| |_|\_\|_| |_|\___/ \_/\_/ |___/
+#
+# This file was automatically generated by gh-aw (v0.71.5). DO NOT EDIT.
+#
+# To update this file, edit the corresponding .md file and run:
+# gh aw compile
+# Not all edits will cause changes to this file.
+#
+# For more information: https://github.github.com/gh-aw/introduction/overview/
+#
+#
+# Secrets used:
+# - COPILOT_GITHUB_TOKEN
+# - GH_AW_CI_TRIGGER_TOKEN
+# - GH_AW_GITHUB_MCP_SERVER_TOKEN
+# - GH_AW_GITHUB_TOKEN
+# - GITHUB_TOKEN
+#
+# Custom actions used:
+# - actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+# - actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
+# - actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+# - actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+# - actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+# - github/gh-aw-actions/setup@b8068426813005612b960b5ab0b8bd2c27142323 # v0.71.5
+#
+# Container images used:
+# - ghcr.io/github/gh-aw-firewall/agent:0.25.40@sha256:14ff567e8d9d4c2fbc5e55c973488381c71d7e0fdbe72d30ee7b8a738fd86504
+# - ghcr.io/github/gh-aw-firewall/api-proxy:0.25.40@sha256:2883ca3e5ae9f330cafdd9345bfd4ae17fc8da36c96d4c9a1f76e922b4c45280
+# - ghcr.io/github/gh-aw-firewall/squid:0.25.40@sha256:b084f4a2c771f584ee68084ced52fa6b3245197a1889645d817462d307d3ac51
+# - ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c
+# - ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959
+# - node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f
+
+name: "Translate Docs to Japanese"
+"on":
+ push:
+ branches:
+ - master
+ paths:
+ - docs/**/*.md
+ - docs/**/*.mdx
+ - versioned_docs/**/*.md
+ - versioned_docs/**/*.mdx
+ workflow_dispatch:
+ inputs:
+ aw_context:
+ default: ""
+ description: Agent caller context (used internally by Agentic Workflows).
+ required: false
+ type: string
+ full_resync:
+ default: false
+ description: Re-translate every source file, ignoring diff. Use sparingly.
+ type: boolean
+
+permissions: {}
+
+concurrency:
+ cancel-in-progress: true
+ group: i18n-ja-${{ github.ref }}
+
+run-name: "Translate Docs to Japanese"
+
+jobs:
+ activation:
+ needs: pre_activation
+ if: needs.pre_activation.outputs.activated == 'true'
+ runs-on: ubuntu-slim
+ permissions:
+ actions: read
+ contents: read
+ outputs:
+ comment_id: ""
+ comment_repo: ""
+ engine_id: ${{ steps.generate_aw_info.outputs.engine_id }}
+ lockdown_check_failed: ${{ steps.generate_aw_info.outputs.lockdown_check_failed == 'true' }}
+ model: ${{ steps.generate_aw_info.outputs.model }}
+ secret_verification_result: ${{ steps.validate-secret.outputs.verification_result }}
+ setup-trace-id: ${{ steps.setup.outputs.trace-id }}
+ stale_lock_file_failed: ${{ steps.check-lock-file.outputs.stale_lock_file_failed == 'true' }}
+ steps:
+ - name: Setup Scripts
+ id: setup
+ uses: github/gh-aw-actions/setup@b8068426813005612b960b5ab0b8bd2c27142323 # v0.71.5
+ with:
+ destination: ${{ runner.temp }}/gh-aw/actions
+ job-name: ${{ github.job }}
+ trace-id: ${{ needs.pre_activation.outputs.setup-trace-id }}
+ env:
+ GH_AW_SETUP_WORKFLOW_NAME: "Translate Docs to Japanese"
+ GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/translate-docs-ja.lock.yml@${{ github.ref }}
+ GH_AW_INFO_VERSION: "1.0.40"
+ - name: Generate agentic run info
+ id: generate_aw_info
+ env:
+ GH_AW_INFO_ENGINE_ID: "copilot"
+ GH_AW_INFO_ENGINE_NAME: "GitHub Copilot CLI"
+ GH_AW_INFO_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }}
+ GH_AW_INFO_VERSION: "1.0.40"
+ GH_AW_INFO_AGENT_VERSION: "1.0.40"
+ GH_AW_INFO_CLI_VERSION: "v0.71.5"
+ GH_AW_INFO_WORKFLOW_NAME: "Translate Docs to Japanese"
+ GH_AW_INFO_EXPERIMENTAL: "false"
+ GH_AW_INFO_SUPPORTS_TOOLS_ALLOWLIST: "true"
+ GH_AW_INFO_STAGED: "false"
+ GH_AW_INFO_ALLOWED_DOMAINS: '["threat-detection","github"]'
+ GH_AW_INFO_FIREWALL_ENABLED: "true"
+ GH_AW_INFO_AWF_VERSION: "v0.25.40"
+ GH_AW_INFO_AWMG_VERSION: ""
+ GH_AW_INFO_FIREWALL_TYPE: "squid"
+ GH_AW_COMPILED_STRICT: "true"
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_aw_info.cjs');
+ await main(core, context);
+ - name: Validate COPILOT_GITHUB_TOKEN secret
+ id: validate-secret
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/validate_multi_secret.sh" COPILOT_GITHUB_TOKEN 'GitHub Copilot CLI' https://github.github.com/gh-aw/reference/engines/#github-copilot-default
+ env:
+ COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
+ - name: Checkout .github and .agents folders
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ persist-credentials: false
+ sparse-checkout: |
+ .github
+ .agents
+ .claude
+ .codex
+ .crush
+ .gemini
+ .opencode
+ .pi
+ sparse-checkout-cone-mode: true
+ fetch-depth: 1
+ - name: Save agent config folders for base branch restoration
+ env:
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github .opencode .pi"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md PI.md opencode.jsonc"
+ # poutine:ignore untrusted_checkout_exec
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/save_base_github_folders.sh"
+ - name: Check workflow lock file
+ id: check-lock-file
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_WORKFLOW_FILE: "translate-docs-ja.lock.yml"
+ GH_AW_CONTEXT_WORKFLOW_REF: "${{ github.workflow_ref }}"
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/check_workflow_timestamp_api.cjs');
+ await main();
+ - name: Check compile-agentic version
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_COMPILED_VERSION: "v0.71.5"
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/check_version_updates.cjs');
+ await main();
+ - name: Create prompt with built-in context
+ env:
+ GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
+ GH_AW_SAFE_OUTPUTS: ${{ runner.temp }}/gh-aw/safeoutputs/outputs.jsonl
+ GH_AW_GITHUB_ACTOR: ${{ github.actor }}
+ GH_AW_GITHUB_EVENT_AFTER: ${{ github.event.after }}
+ GH_AW_GITHUB_EVENT_BEFORE: ${{ github.event.before }}
+ GH_AW_GITHUB_EVENT_COMMENT_ID: ${{ github.event.comment.id }}
+ GH_AW_GITHUB_EVENT_DISCUSSION_NUMBER: ${{ github.event.discussion.number }}
+ GH_AW_GITHUB_EVENT_ISSUE_NUMBER: ${{ github.event.issue.number }}
+ GH_AW_GITHUB_EVENT_PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number }}
+ GH_AW_GITHUB_REPOSITORY: ${{ github.repository }}
+ GH_AW_GITHUB_RUN_ID: ${{ github.run_id }}
+ GH_AW_GITHUB_WORKSPACE: ${{ github.workspace }}
+ # poutine:ignore untrusted_checkout_exec
+ run: |
+ bash "${RUNNER_TEMP}/gh-aw/actions/create_prompt_first.sh"
+ {
+ cat << 'GH_AW_PROMPT_12a84ca7cb4e4256_EOF'
+
+ GH_AW_PROMPT_12a84ca7cb4e4256_EOF
+ cat "${RUNNER_TEMP}/gh-aw/prompts/xpia.md"
+ cat "${RUNNER_TEMP}/gh-aw/prompts/temp_folder_prompt.md"
+ cat "${RUNNER_TEMP}/gh-aw/prompts/markdown.md"
+ cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_prompt.md"
+ cat << 'GH_AW_PROMPT_12a84ca7cb4e4256_EOF'
+
+ Tools: create_pull_request, missing_tool, missing_data, noop
+ GH_AW_PROMPT_12a84ca7cb4e4256_EOF
+ cat "${RUNNER_TEMP}/gh-aw/prompts/safe_outputs_create_pull_request.md"
+ cat << 'GH_AW_PROMPT_12a84ca7cb4e4256_EOF'
+
+ GH_AW_PROMPT_12a84ca7cb4e4256_EOF
+ cat "${RUNNER_TEMP}/gh-aw/prompts/mcp_cli_tools_prompt.md"
+ cat << 'GH_AW_PROMPT_12a84ca7cb4e4256_EOF'
+
+ The following GitHub context information is available for this workflow:
+ {{#if __GH_AW_GITHUB_ACTOR__ }}
+ - **actor**: __GH_AW_GITHUB_ACTOR__
+ {{/if}}
+ {{#if __GH_AW_GITHUB_REPOSITORY__ }}
+ - **repository**: __GH_AW_GITHUB_REPOSITORY__
+ {{/if}}
+ {{#if __GH_AW_GITHUB_WORKSPACE__ }}
+ - **workspace**: __GH_AW_GITHUB_WORKSPACE__
+ {{/if}}
+ {{#if __GH_AW_GITHUB_EVENT_ISSUE_NUMBER__ }}
+ - **issue-number**: #__GH_AW_GITHUB_EVENT_ISSUE_NUMBER__
+ {{/if}}
+ {{#if __GH_AW_GITHUB_EVENT_DISCUSSION_NUMBER__ }}
+ - **discussion-number**: #__GH_AW_GITHUB_EVENT_DISCUSSION_NUMBER__
+ {{/if}}
+ {{#if __GH_AW_GITHUB_EVENT_PULL_REQUEST_NUMBER__ }}
+ - **pull-request-number**: #__GH_AW_GITHUB_EVENT_PULL_REQUEST_NUMBER__
+ {{/if}}
+ {{#if __GH_AW_GITHUB_EVENT_COMMENT_ID__ }}
+ - **comment-id**: __GH_AW_GITHUB_EVENT_COMMENT_ID__
+ {{/if}}
+ {{#if __GH_AW_GITHUB_RUN_ID__ }}
+ - **workflow-run-id**: __GH_AW_GITHUB_RUN_ID__
+ {{/if}}
+
+
+ GH_AW_PROMPT_12a84ca7cb4e4256_EOF
+ cat "${RUNNER_TEMP}/gh-aw/prompts/github_mcp_tools_with_safeoutputs_prompt.md"
+ cat << 'GH_AW_PROMPT_12a84ca7cb4e4256_EOF'
+
+ {{#runtime-import .github/workflows/translate-docs-ja.md}}
+ GH_AW_PROMPT_12a84ca7cb4e4256_EOF
+ } > "$GH_AW_PROMPT"
+ - name: Interpolate variables and render templates
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
+ GH_AW_ENGINE_ID: "copilot"
+ GH_AW_GITHUB_EVENT_AFTER: ${{ github.event.after }}
+ GH_AW_GITHUB_EVENT_BEFORE: ${{ github.event.before }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/interpolate_prompt.cjs');
+ await main();
+ - name: Substitute placeholders
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
+ GH_AW_GITHUB_ACTOR: ${{ github.actor }}
+ GH_AW_GITHUB_EVENT_AFTER: ${{ github.event.after }}
+ GH_AW_GITHUB_EVENT_BEFORE: ${{ github.event.before }}
+ GH_AW_GITHUB_EVENT_COMMENT_ID: ${{ github.event.comment.id }}
+ GH_AW_GITHUB_EVENT_DISCUSSION_NUMBER: ${{ github.event.discussion.number }}
+ GH_AW_GITHUB_EVENT_ISSUE_NUMBER: ${{ github.event.issue.number }}
+ GH_AW_GITHUB_EVENT_PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number }}
+ GH_AW_GITHUB_REPOSITORY: ${{ github.repository }}
+ GH_AW_GITHUB_RUN_ID: ${{ github.run_id }}
+ GH_AW_GITHUB_WORKSPACE: ${{ github.workspace }}
+ GH_AW_MCP_CLI_SERVERS_LIST: '- `safeoutputs` — run `safeoutputs --help` to see available tools'
+ GH_AW_NEEDS_PRE_ACTIVATION_OUTPUTS_ACTIVATED: ${{ needs.pre_activation.outputs.activated }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+
+ const substitutePlaceholders = require('${{ runner.temp }}/gh-aw/actions/substitute_placeholders.cjs');
+
+ // Call the substitution function
+ return await substitutePlaceholders({
+ file: process.env.GH_AW_PROMPT,
+ substitutions: {
+ GH_AW_GITHUB_ACTOR: process.env.GH_AW_GITHUB_ACTOR,
+ GH_AW_GITHUB_EVENT_AFTER: process.env.GH_AW_GITHUB_EVENT_AFTER,
+ GH_AW_GITHUB_EVENT_BEFORE: process.env.GH_AW_GITHUB_EVENT_BEFORE,
+ GH_AW_GITHUB_EVENT_COMMENT_ID: process.env.GH_AW_GITHUB_EVENT_COMMENT_ID,
+ GH_AW_GITHUB_EVENT_DISCUSSION_NUMBER: process.env.GH_AW_GITHUB_EVENT_DISCUSSION_NUMBER,
+ GH_AW_GITHUB_EVENT_ISSUE_NUMBER: process.env.GH_AW_GITHUB_EVENT_ISSUE_NUMBER,
+ GH_AW_GITHUB_EVENT_PULL_REQUEST_NUMBER: process.env.GH_AW_GITHUB_EVENT_PULL_REQUEST_NUMBER,
+ GH_AW_GITHUB_REPOSITORY: process.env.GH_AW_GITHUB_REPOSITORY,
+ GH_AW_GITHUB_RUN_ID: process.env.GH_AW_GITHUB_RUN_ID,
+ GH_AW_GITHUB_WORKSPACE: process.env.GH_AW_GITHUB_WORKSPACE,
+ GH_AW_MCP_CLI_SERVERS_LIST: process.env.GH_AW_MCP_CLI_SERVERS_LIST,
+ GH_AW_NEEDS_PRE_ACTIVATION_OUTPUTS_ACTIVATED: process.env.GH_AW_NEEDS_PRE_ACTIVATION_OUTPUTS_ACTIVATED
+ }
+ });
+ - name: Validate prompt placeholders
+ env:
+ GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
+ # poutine:ignore untrusted_checkout_exec
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/validate_prompt_placeholders.sh"
+ - name: Print prompt
+ env:
+ GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
+ # poutine:ignore untrusted_checkout_exec
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/print_prompt_summary.sh"
+ - name: Upload activation artifact
+ if: success()
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ with:
+ name: activation
+ include-hidden-files: true
+ path: |
+ /tmp/gh-aw/aw_info.json
+ /tmp/gh-aw/aw-prompts/prompt.txt
+ /tmp/gh-aw/github_rate_limits.jsonl
+ /tmp/gh-aw/base
+ if-no-files-found: ignore
+ retention-days: 1
+
+ agent:
+ needs: activation
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ env:
+ DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
+ GH_AW_ASSETS_ALLOWED_EXTS: ""
+ GH_AW_ASSETS_BRANCH: ""
+ GH_AW_ASSETS_MAX_SIZE_KB: 0
+ GH_AW_MCP_LOG_DIR: /tmp/gh-aw/mcp-logs/safeoutputs
+ GH_AW_WORKFLOW_ID_SANITIZED: translatedocsja
+ outputs:
+ agentic_engine_timeout: ${{ steps.detect-copilot-errors.outputs.agentic_engine_timeout || 'false' }}
+ checkout_pr_success: ${{ steps.checkout-pr.outputs.checkout_pr_success || 'true' }}
+ effective_tokens: ${{ steps.parse-mcp-gateway.outputs.effective_tokens }}
+ has_patch: ${{ steps.collect_output.outputs.has_patch }}
+ inference_access_error: ${{ steps.detect-copilot-errors.outputs.inference_access_error || 'false' }}
+ mcp_policy_error: ${{ steps.detect-copilot-errors.outputs.mcp_policy_error || 'false' }}
+ model: ${{ needs.activation.outputs.model }}
+ model_not_supported_error: ${{ steps.detect-copilot-errors.outputs.model_not_supported_error || 'false' }}
+ output: ${{ steps.collect_output.outputs.output }}
+ output_types: ${{ steps.collect_output.outputs.output_types }}
+ setup-trace-id: ${{ steps.setup.outputs.trace-id }}
+ steps:
+ - name: Setup Scripts
+ id: setup
+ uses: github/gh-aw-actions/setup@b8068426813005612b960b5ab0b8bd2c27142323 # v0.71.5
+ with:
+ destination: ${{ runner.temp }}/gh-aw/actions
+ job-name: ${{ github.job }}
+ trace-id: ${{ needs.activation.outputs.setup-trace-id }}
+ env:
+ GH_AW_SETUP_WORKFLOW_NAME: "Translate Docs to Japanese"
+ GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/translate-docs-ja.lock.yml@${{ github.ref }}
+ GH_AW_INFO_VERSION: "1.0.40"
+ - name: Set runtime paths
+ id: set-runtime-paths
+ run: |
+ {
+ echo "GH_AW_SAFE_OUTPUTS=${RUNNER_TEMP}/gh-aw/safeoutputs/outputs.jsonl"
+ echo "GH_AW_SAFE_OUTPUTS_CONFIG_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/config.json"
+ echo "GH_AW_SAFE_OUTPUTS_TOOLS_PATH=${RUNNER_TEMP}/gh-aw/safeoutputs/tools.json"
+ } >> "$GITHUB_OUTPUT"
+ - name: Checkout repository
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ persist-credentials: false
+ - name: Create gh-aw temp directory
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/create_gh_aw_tmp_dir.sh"
+ - name: Configure gh CLI for GitHub Enterprise
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/configure_gh_for_ghe.sh"
+ env:
+ GH_TOKEN: ${{ github.token }}
+ - name: Configure Git credentials
+ env:
+ REPO_NAME: ${{ github.repository }}
+ SERVER_URL: ${{ github.server_url }}
+ GITHUB_TOKEN: ${{ github.token }}
+ run: |
+ git config --global user.email "github-actions[bot]@users.noreply.github.com"
+ git config --global user.name "github-actions[bot]"
+ git config --global am.keepcr true
+ # Re-authenticate git with GitHub token
+ SERVER_URL_STRIPPED="${SERVER_URL#https://}"
+ git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git"
+ echo "Git configured with standard GitHub Actions identity"
+ - name: Checkout PR branch
+ id: checkout-pr
+ if: |
+ github.event.pull_request || github.event.issue.pull_request
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ with:
+ github-token: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/checkout_pr_branch.cjs');
+ await main();
+ - name: Install GitHub Copilot CLI
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40
+ env:
+ GH_HOST: github.com
+ - name: Install AWF binary
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.40
+ - name: Determine automatic lockdown mode for GitHub MCP Server
+ id: determine-automatic-lockdown
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9
+ env:
+ GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
+ GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
+ with:
+ script: |
+ const determineAutomaticLockdown = require('${{ runner.temp }}/gh-aw/actions/determine_automatic_lockdown.cjs');
+ await determineAutomaticLockdown(github, context, core);
+ - name: Download activation artifact
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+ with:
+ name: activation
+ path: /tmp/gh-aw
+ - name: Restore agent config folders from base branch
+ if: steps.checkout-pr.outcome == 'success'
+ env:
+ GH_AW_AGENT_FOLDERS: ".agents .claude .codex .crush .gemini .github .opencode .pi"
+ GH_AW_AGENT_FILES: ".crush.json AGENTS.md CLAUDE.md GEMINI.md PI.md opencode.jsonc"
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/restore_base_github_folders.sh"
+ - name: Download container images
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.25.40@sha256:14ff567e8d9d4c2fbc5e55c973488381c71d7e0fdbe72d30ee7b8a738fd86504 ghcr.io/github/gh-aw-firewall/api-proxy:0.25.40@sha256:2883ca3e5ae9f330cafdd9345bfd4ae17fc8da36c96d4c9a1f76e922b4c45280 ghcr.io/github/gh-aw-firewall/squid:0.25.40@sha256:b084f4a2c771f584ee68084ced52fa6b3245197a1889645d817462d307d3ac51 ghcr.io/github/gh-aw-mcpg:v0.3.6@sha256:2bb8eef86006a4c5963c55616a9c51c32f27bfdecb023b8aa6f91f6718d9171c ghcr.io/github/github-mcp-server:v1.0.3@sha256:2ac27ef03461ef2b877031b838a7d1fd7f12b12d4ace7796d8cad91446d55959 node:lts-alpine@sha256:d1b3b4da11eefd5941e7f0b9cf17783fc99d9c6fc34884a665f40a06dbdfc94f
+ - name: Generate Safe Outputs Config
+ run: |
+ mkdir -p "${RUNNER_TEMP}/gh-aw/safeoutputs"
+ mkdir -p /tmp/gh-aw/safeoutputs
+ mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs
+ cat > "${RUNNER_TEMP}/gh-aw/safeoutputs/config.json" << 'GH_AW_SAFE_OUTPUTS_CONFIG_dcc19a425831fd08_EOF'
+ {"create_pull_request":{"draft":false,"labels":["i18n","ja","automated"],"max":1,"max_patch_files":100,"max_patch_size":1024,"protect_top_level_dot_folders":true,"protected_files":["package.json","bun.lockb","bunfig.toml","deno.json","deno.jsonc","deno.lock","global.json","NuGet.Config","Directory.Packages.props","mix.exs","mix.lock","go.mod","go.sum","stack.yaml","stack.yaml.lock","pom.xml","build.gradle","build.gradle.kts","settings.gradle","settings.gradle.kts","gradle.properties","package-lock.json","yarn.lock","pnpm-lock.yaml","npm-shrinkwrap.json","requirements.txt","Pipfile","Pipfile.lock","pyproject.toml","setup.py","setup.cfg","Gemfile","Gemfile.lock","uv.lock","CODEOWNERS","DESIGN.md","README.md","CONTRIBUTING.md","CHANGELOG.md","SECURITY.md","CODE_OF_CONDUCT.md","AGENTS.md","CLAUDE.md","GEMINI.md"],"title_prefix":"[i18n-ja] "},"create_report_incomplete_issue":{},"missing_data":{},"missing_tool":{},"noop":{"max":1,"report-as-issue":"true"},"report_incomplete":{}}
+ GH_AW_SAFE_OUTPUTS_CONFIG_dcc19a425831fd08_EOF
+ - name: Generate Safe Outputs Tools
+ env:
+ GH_AW_TOOLS_META_JSON: |
+ {
+ "description_suffixes": {
+ "create_pull_request": " CONSTRAINTS: Maximum 1 pull request(s) can be created. Title will be prefixed with \"[i18n-ja] \". Labels [\"i18n\" \"ja\" \"automated\"] will be automatically added."
+ },
+ "repo_params": {},
+ "dynamic_tools": []
+ }
+ GH_AW_VALIDATION_JSON: |
+ {
+ "create_pull_request": {
+ "defaultMax": 1,
+ "fields": {
+ "base": {
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 128
+ },
+ "body": {
+ "required": true,
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 65000
+ },
+ "branch": {
+ "required": true,
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 256
+ },
+ "draft": {
+ "type": "boolean"
+ },
+ "labels": {
+ "type": "array",
+ "itemType": "string",
+ "itemSanitize": true,
+ "itemMaxLength": 128
+ },
+ "repo": {
+ "type": "string",
+ "maxLength": 256
+ },
+ "title": {
+ "required": true,
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 128
+ }
+ }
+ },
+ "missing_data": {
+ "defaultMax": 20,
+ "fields": {
+ "alternatives": {
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 256
+ },
+ "context": {
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 256
+ },
+ "data_type": {
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 128
+ },
+ "reason": {
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 256
+ }
+ }
+ },
+ "missing_tool": {
+ "defaultMax": 20,
+ "fields": {
+ "alternatives": {
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 512
+ },
+ "reason": {
+ "required": true,
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 256
+ },
+ "tool": {
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 128
+ }
+ }
+ },
+ "noop": {
+ "defaultMax": 1,
+ "fields": {
+ "message": {
+ "required": true,
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 65000
+ }
+ }
+ },
+ "report_incomplete": {
+ "defaultMax": 5,
+ "fields": {
+ "details": {
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 65000
+ },
+ "reason": {
+ "required": true,
+ "type": "string",
+ "sanitize": true,
+ "maxLength": 1024
+ }
+ }
+ }
+ }
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/generate_safe_outputs_tools.cjs');
+ await main();
+ - name: Generate Safe Outputs MCP Server Config
+ id: safe-outputs-config
+ run: |
+ # Generate a secure random API key (360 bits of entropy, 40+ chars)
+ # Mask immediately to prevent timing vulnerabilities
+ API_KEY=$(openssl rand -base64 45 | tr -d '/+=')
+ echo "::add-mask::${API_KEY}"
+
+ PORT=3001
+
+ # Set outputs for next steps
+ {
+ echo "safe_outputs_api_key=${API_KEY}"
+ echo "safe_outputs_port=${PORT}"
+ } >> "$GITHUB_OUTPUT"
+
+ echo "Safe Outputs MCP server will run on port ${PORT}"
+
+ - name: Start Safe Outputs MCP HTTP Server
+ id: safe-outputs-start
+ env:
+ DEBUG: '*'
+ GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
+ GH_AW_SAFE_OUTPUTS_PORT: ${{ steps.safe-outputs-config.outputs.safe_outputs_port }}
+ GH_AW_SAFE_OUTPUTS_API_KEY: ${{ steps.safe-outputs-config.outputs.safe_outputs_api_key }}
+ GH_AW_SAFE_OUTPUTS_TOOLS_PATH: ${{ runner.temp }}/gh-aw/safeoutputs/tools.json
+ GH_AW_SAFE_OUTPUTS_CONFIG_PATH: ${{ runner.temp }}/gh-aw/safeoutputs/config.json
+ GH_AW_MCP_LOG_DIR: /tmp/gh-aw/mcp-logs/safeoutputs
+ run: |
+ # Environment variables are set above to prevent template injection
+ export DEBUG
+ export GH_AW_SAFE_OUTPUTS
+ export GH_AW_SAFE_OUTPUTS_PORT
+ export GH_AW_SAFE_OUTPUTS_API_KEY
+ export GH_AW_SAFE_OUTPUTS_TOOLS_PATH
+ export GH_AW_SAFE_OUTPUTS_CONFIG_PATH
+ export GH_AW_MCP_LOG_DIR
+
+ bash "${RUNNER_TEMP}/gh-aw/actions/start_safe_outputs_server.sh"
+
+ - name: Start MCP Gateway
+ id: start-mcp-gateway
+ env:
+ GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
+ GH_AW_SAFE_OUTPUTS_API_KEY: ${{ steps.safe-outputs-start.outputs.api_key }}
+ GH_AW_SAFE_OUTPUTS_PORT: ${{ steps.safe-outputs-start.outputs.port }}
+ GITHUB_MCP_GUARD_MIN_INTEGRITY: ${{ steps.determine-automatic-lockdown.outputs.min_integrity }}
+ GITHUB_MCP_GUARD_REPOS: ${{ steps.determine-automatic-lockdown.outputs.repos }}
+ GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ run: |
+ set -eo pipefail
+ mkdir -p "${RUNNER_TEMP}/gh-aw/mcp-config"
+
+ # Export gateway environment variables for MCP config and gateway script
+ export MCP_GATEWAY_PORT="8080"
+ export MCP_GATEWAY_DOMAIN="host.docker.internal"
+ export MCP_GATEWAY_HOST_DOMAIN="localhost"
+ MCP_GATEWAY_API_KEY=$(openssl rand -base64 45 | tr -d '/+=')
+ echo "::add-mask::${MCP_GATEWAY_API_KEY}"
+ export MCP_GATEWAY_API_KEY
+ export MCP_GATEWAY_PAYLOAD_DIR="/tmp/gh-aw/mcp-payloads"
+ mkdir -p "${MCP_GATEWAY_PAYLOAD_DIR}"
+ export MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD="524288"
+ export DEBUG="*"
+
+ export GH_AW_ENGINE="copilot"
+ MCP_GATEWAY_UID=$(id -u 2>/dev/null || echo '0')
+ MCP_GATEWAY_GID=$(id -g 2>/dev/null || echo '0')
+ DOCKER_SOCK_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo '0')
+ export MCP_GATEWAY_DOCKER_COMMAND='docker run -i --rm --network host --add-host host.docker.internal:127.0.0.1 --user '"${MCP_GATEWAY_UID}"':'"${MCP_GATEWAY_GID}"' --group-add '"${DOCKER_SOCK_GID}"' -v /var/run/docker.sock:/var/run/docker.sock -e MCP_GATEWAY_PORT -e MCP_GATEWAY_DOMAIN -e MCP_GATEWAY_API_KEY -e MCP_GATEWAY_PAYLOAD_DIR -e MCP_GATEWAY_PAYLOAD_SIZE_THRESHOLD -e DEBUG -e MCP_GATEWAY_LOG_DIR -e GH_AW_MCP_LOG_DIR -e GH_AW_SAFE_OUTPUTS -e GH_AW_SAFE_OUTPUTS_CONFIG_PATH -e GH_AW_SAFE_OUTPUTS_TOOLS_PATH -e GH_AW_ASSETS_BRANCH -e GH_AW_ASSETS_MAX_SIZE_KB -e GH_AW_ASSETS_ALLOWED_EXTS -e DEFAULT_BRANCH -e GITHUB_MCP_SERVER_TOKEN -e GITHUB_MCP_GUARD_MIN_INTEGRITY -e GITHUB_MCP_GUARD_REPOS -e GITHUB_REPOSITORY -e GITHUB_SERVER_URL -e GITHUB_SHA -e GITHUB_WORKSPACE -e GITHUB_TOKEN -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RUN_ATTEMPT -e GITHUB_JOB -e GITHUB_ACTION -e GITHUB_EVENT_NAME -e GITHUB_EVENT_PATH -e GITHUB_ACTOR -e GITHUB_ACTOR_ID -e GITHUB_TRIGGERING_ACTOR -e GITHUB_WORKFLOW -e GITHUB_WORKFLOW_REF -e GITHUB_WORKFLOW_SHA -e GITHUB_REF -e GITHUB_REF_NAME -e GITHUB_REF_TYPE -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GH_AW_SAFE_OUTPUTS_PORT -e GH_AW_SAFE_OUTPUTS_API_KEY -v /tmp/gh-aw/mcp-payloads:/tmp/gh-aw/mcp-payloads:rw -v /opt:/opt:ro -v /tmp:/tmp:rw -v '"${GITHUB_WORKSPACE}"':'"${GITHUB_WORKSPACE}"':rw ghcr.io/github/gh-aw-mcpg:v0.3.6'
+
+ mkdir -p /home/runner/.copilot
+ GH_AW_NODE=$(which node 2>/dev/null || command -v node 2>/dev/null || echo node)
+ cat << GH_AW_MCP_CONFIG_6dcd57344ed7f845_EOF | "$GH_AW_NODE" "${RUNNER_TEMP}/gh-aw/actions/start_mcp_gateway.cjs"
+ {
+ "mcpServers": {
+ "github": {
+ "type": "stdio",
+ "container": "ghcr.io/github/github-mcp-server:v1.0.3",
+ "env": {
+ "GITHUB_HOST": "\${GITHUB_SERVER_URL}",
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "\${GITHUB_MCP_SERVER_TOKEN}",
+ "GITHUB_READ_ONLY": "1",
+ "GITHUB_TOOLSETS": "context,repos,issues,pull_requests"
+ },
+ "guard-policies": {
+ "allow-only": {
+ "min-integrity": "$GITHUB_MCP_GUARD_MIN_INTEGRITY",
+ "repos": "$GITHUB_MCP_GUARD_REPOS"
+ }
+ }
+ },
+ "safeoutputs": {
+ "type": "http",
+ "url": "http://host.docker.internal:$GH_AW_SAFE_OUTPUTS_PORT",
+ "headers": {
+ "Authorization": "\${GH_AW_SAFE_OUTPUTS_API_KEY}"
+ },
+ "guard-policies": {
+ "write-sink": {
+ "accept": [
+ "*"
+ ]
+ }
+ }
+ }
+ },
+ "gateway": {
+ "port": $MCP_GATEWAY_PORT,
+ "domain": "${MCP_GATEWAY_DOMAIN}",
+ "apiKey": "${MCP_GATEWAY_API_KEY}",
+ "payloadDir": "${MCP_GATEWAY_PAYLOAD_DIR}"
+ }
+ }
+ GH_AW_MCP_CONFIG_6dcd57344ed7f845_EOF
+ - name: Mount MCP servers as CLIs
+ id: mount-mcp-clis
+ continue-on-error: true
+ env:
+ MCP_GATEWAY_API_KEY: ${{ steps.start-mcp-gateway.outputs.gateway-api-key }}
+ MCP_GATEWAY_DOMAIN: ${{ steps.start-mcp-gateway.outputs.gateway-domain }}
+ MCP_GATEWAY_PORT: ${{ steps.start-mcp-gateway.outputs.gateway-port }}
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/mount_mcp_as_cli.cjs');
+ await main();
+ - name: Clean credentials
+ continue-on-error: true
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/clean_git_credentials.sh"
+ - name: Audit pre-agent workspace
+ id: pre_agent_audit
+ continue-on-error: true
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/audit_pre_agent_workspace.sh"
+ - name: Execute GitHub Copilot CLI
+ id: agentic_execution
+ # Copilot CLI tool arguments (sorted):
+ # --allow-tool github
+ # --allow-tool safeoutputs
+ # --allow-tool shell(cat)
+ # --allow-tool shell(date)
+ # --allow-tool shell(echo)
+ # --allow-tool shell(git add:*)
+ # --allow-tool shell(git branch:*)
+ # --allow-tool shell(git checkout:*)
+ # --allow-tool shell(git commit:*)
+ # --allow-tool shell(git diff *)
+ # --allow-tool shell(git diff-tree *)
+ # --allow-tool shell(git log *)
+ # --allow-tool shell(git ls-files *)
+ # --allow-tool shell(git merge:*)
+ # --allow-tool shell(git rm:*)
+ # --allow-tool shell(git show *)
+ # --allow-tool shell(git status)
+ # --allow-tool shell(git switch:*)
+ # --allow-tool shell(grep)
+ # --allow-tool shell(head)
+ # --allow-tool shell(ls *)
+ # --allow-tool shell(ls)
+ # --allow-tool shell(mkdir *)
+ # --allow-tool shell(pwd)
+ # --allow-tool shell(rm *)
+ # --allow-tool shell(safeoutputs:*)
+ # --allow-tool shell(sort)
+ # --allow-tool shell(tail)
+ # --allow-tool shell(uniq)
+ # --allow-tool shell(wc *)
+ # --allow-tool shell(wc)
+ # --allow-tool shell(yq)
+ # --allow-tool write
+ timeout-minutes: 20
+ run: |
+ set -o pipefail
+ touch /tmp/gh-aw/agent-step-summary.md
+ GH_AW_NODE_BIN=$(command -v node 2>/dev/null || true)
+ export GH_AW_NODE_BIN
+ (umask 177 && touch /tmp/gh-aw/agent-stdio.log)
+ printf '%s\n' '{"$schema":"https://github.com/github/gh-aw-firewall/releases/download/v0.25.40/awf-config.schema.json","network":{"allowDomains":["*.githubusercontent.com","api.business.githubcopilot.com","api.enterprise.githubcopilot.com","api.github.com","api.githubcopilot.com","api.individual.githubcopilot.com","codeload.github.com","docs.github.com","github-cloud.githubusercontent.com","github-cloud.s3.amazonaws.com","github.blog","github.com","github.githubassets.com","host.docker.internal","lfs.github.com","objects.githubusercontent.com","raw.githubusercontent.com","registry.npmjs.org","telemetry.enterprise.githubcopilot.com"]},"apiProxy":{"enabled":true,"models":{"auto":["large"],"deep-research":["copilot/deep-research*","google/deep-research*"],"gemini-flash":["copilot/gemini-*flash*","google/gemini-*flash*"],"gemini-pro":["copilot/gemini-*pro*","google/gemini-*pro*"],"gpt-4.1":["copilot/gpt-4.1*","openai/gpt-4.1*"],"gpt-5":["copilot/gpt-5*","openai/gpt-5*"],"gpt-5-codex":["copilot/gpt-5*codex*","openai/gpt-5*codex*"],"gpt-5-mini":["copilot/gpt-5*mini*","openai/gpt-5*mini*"],"gpt-5-nano":["copilot/gpt-5*nano*","openai/gpt-5*nano*"],"gpt-5-pro":["copilot/gpt-5*pro*","openai/gpt-5*pro*"],"haiku":["copilot/*haiku*","anthropic/*haiku*"],"large":["sonnet","gpt-5-pro","gpt-5","gemini-pro"],"mini":["haiku","gpt-5-mini","gpt-5-nano","gemini-flash"],"opus":["copilot/*opus*","anthropic/*opus*"],"reasoning":["copilot/o1*","copilot/o3*","copilot/o4*","openai/o1*","openai/o3*","openai/o4*"],"small":["mini"],"sonnet":["copilot/*sonnet*","anthropic/*sonnet*"]}},"container":{"imageTag":"0.25.40,squid=sha256:b084f4a2c771f584ee68084ced52fa6b3245197a1889645d817462d307d3ac51,agent=sha256:14ff567e8d9d4c2fbc5e55c973488381c71d7e0fdbe72d30ee7b8a738fd86504,api-proxy=sha256:2883ca3e5ae9f330cafdd9345bfd4ae17fc8da36c96d4c9a1f76e922b4c45280,cli-proxy=sha256:3e7152911d4b4b7b97beef9d3d7d924ff7902227e86001ef3838fb728d5d514c"}}' > "${RUNNER_TEMP}/gh-aw/awf-config.json" && cp "${RUNNER_TEMP}/gh-aw/awf-config.json" /tmp/gh-aw/awf-config.json
+ # shellcheck disable=SC1003
+ sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --env-all --exclude-env COPILOT_GITHUB_TOKEN --exclude-env GITHUB_MCP_SERVER_TOKEN --exclude-env MCP_GATEWAY_API_KEY --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \
+ -- /bin/bash -c 'export PATH="${RUNNER_TEMP}/gh-aw/mcp-cli/bin:$PATH" && export PATH="$(find /opt/hostedtoolcache /home/runner/work/_tool -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || echo node)"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-tool github --allow-tool safeoutputs --allow-tool '\''shell(cat)'\'' --allow-tool '\''shell(date)'\'' --allow-tool '\''shell(echo)'\'' --allow-tool '\''shell(git add:*)'\'' --allow-tool '\''shell(git branch:*)'\'' --allow-tool '\''shell(git checkout:*)'\'' --allow-tool '\''shell(git commit:*)'\'' --allow-tool '\''shell(git diff *)'\'' --allow-tool '\''shell(git diff-tree *)'\'' --allow-tool '\''shell(git log *)'\'' --allow-tool '\''shell(git ls-files *)'\'' --allow-tool '\''shell(git merge:*)'\'' --allow-tool '\''shell(git rm:*)'\'' --allow-tool '\''shell(git show *)'\'' --allow-tool '\''shell(git status)'\'' --allow-tool '\''shell(git switch:*)'\'' --allow-tool '\''shell(grep)'\'' --allow-tool '\''shell(head)'\'' --allow-tool '\''shell(ls *)'\'' --allow-tool '\''shell(ls)'\'' --allow-tool '\''shell(mkdir *)'\'' --allow-tool '\''shell(pwd)'\'' --allow-tool '\''shell(rm *)'\'' --allow-tool '\''shell(safeoutputs:*)'\'' --allow-tool '\''shell(sort)'\'' --allow-tool '\''shell(tail)'\'' --allow-tool '\''shell(uniq)'\'' --allow-tool '\''shell(wc *)'\'' --allow-tool '\''shell(wc)'\'' --allow-tool '\''shell(yq)'\'' --allow-tool write --allow-all-paths --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/agent-stdio.log
+ env:
+ COPILOT_AGENT_RUNNER_TYPE: STANDALONE
+ COPILOT_API_KEY: dummy-byok-key-for-offline-mode
+ COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
+ COPILOT_MODEL: ${{ vars.GH_AW_MODEL_AGENT_COPILOT || 'claude-sonnet-4.6' }}
+ GH_AW_MCP_CONFIG: /home/runner/.copilot/mcp-config.json
+ GH_AW_PHASE: agent
+ GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
+ GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
+ GH_AW_VERSION: v0.71.5
+ GITHUB_API_URL: ${{ github.api_url }}
+ GITHUB_AW: true
+ GITHUB_COPILOT_INTEGRATION_ID: agentic-workflows
+ GITHUB_HEAD_REF: ${{ github.head_ref }}
+ GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN || secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ GITHUB_REF_NAME: ${{ github.ref_name }}
+ GITHUB_SERVER_URL: ${{ github.server_url }}
+ GITHUB_STEP_SUMMARY: /tmp/gh-aw/agent-step-summary.md
+ GITHUB_WORKSPACE: ${{ github.workspace }}
+ GIT_AUTHOR_EMAIL: github-actions[bot]@users.noreply.github.com
+ GIT_AUTHOR_NAME: github-actions[bot]
+ GIT_COMMITTER_EMAIL: github-actions[bot]@users.noreply.github.com
+ GIT_COMMITTER_NAME: github-actions[bot]
+ XDG_CONFIG_HOME: /home/runner
+ - name: Detect Copilot errors
+ id: detect-copilot-errors
+ if: always()
+ continue-on-error: true
+ run: node "${RUNNER_TEMP}/gh-aw/actions/detect_copilot_errors.cjs"
+ - name: Configure Git credentials
+ env:
+ REPO_NAME: ${{ github.repository }}
+ SERVER_URL: ${{ github.server_url }}
+ GITHUB_TOKEN: ${{ github.token }}
+ run: |
+ git config --global user.email "github-actions[bot]@users.noreply.github.com"
+ git config --global user.name "github-actions[bot]"
+ git config --global am.keepcr true
+ # Re-authenticate git with GitHub token
+ SERVER_URL_STRIPPED="${SERVER_URL#https://}"
+ git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git"
+ echo "Git configured with standard GitHub Actions identity"
+ - name: Copy Copilot session state files to logs
+ if: always()
+ continue-on-error: true
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/copy_copilot_session_state.sh"
+ - name: Stop MCP Gateway
+ if: always()
+ continue-on-error: true
+ env:
+ MCP_GATEWAY_PORT: ${{ steps.start-mcp-gateway.outputs.gateway-port }}
+ MCP_GATEWAY_API_KEY: ${{ steps.start-mcp-gateway.outputs.gateway-api-key }}
+ GATEWAY_PID: ${{ steps.start-mcp-gateway.outputs.gateway-pid }}
+ run: |
+ bash "${RUNNER_TEMP}/gh-aw/actions/stop_mcp_gateway.sh" "$GATEWAY_PID"
+ - name: Redact secrets in logs
+ if: always()
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/redact_secrets.cjs');
+ await main();
+ env:
+ GH_AW_SECRET_NAMES: 'COPILOT_GITHUB_TOKEN,GH_AW_GITHUB_MCP_SERVER_TOKEN,GH_AW_GITHUB_TOKEN,GITHUB_TOKEN'
+ SECRET_COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
+ SECRET_GH_AW_GITHUB_MCP_SERVER_TOKEN: ${{ secrets.GH_AW_GITHUB_MCP_SERVER_TOKEN }}
+ SECRET_GH_AW_GITHUB_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN }}
+ SECRET_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Append agent step summary
+ if: always()
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/append_agent_step_summary.sh"
+ - name: Copy Safe Outputs
+ if: always()
+ env:
+ GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
+ run: |
+ mkdir -p /tmp/gh-aw
+ cp "$GH_AW_SAFE_OUTPUTS" /tmp/gh-aw/safeoutputs.jsonl 2>/dev/null || true
+ - name: Ingest agent output
+ id: collect_output
+ if: always()
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_SAFE_OUTPUTS: ${{ steps.set-runtime-paths.outputs.GH_AW_SAFE_OUTPUTS }}
+ GH_AW_ALLOWED_DOMAINS: "*.githubusercontent.com,api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,codeload.github.com,docs.github.com,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,host.docker.internal,lfs.github.com,objects.githubusercontent.com,raw.githubusercontent.com,registry.npmjs.org,telemetry.enterprise.githubcopilot.com"
+ GITHUB_SERVER_URL: ${{ github.server_url }}
+ GITHUB_API_URL: ${{ github.api_url }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/collect_ndjson_output.cjs');
+ await main();
+ - name: Parse agent logs for step summary
+ if: always()
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_AGENT_OUTPUT: /tmp/gh-aw/sandbox/agent/logs/
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/parse_copilot_log.cjs');
+ await main();
+ - name: Parse MCP Gateway logs for step summary
+ if: always()
+ id: parse-mcp-gateway
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/parse_mcp_gateway_log.cjs');
+ await main();
+ - name: Print firewall logs
+ if: always()
+ continue-on-error: true
+ env:
+ AWF_LOGS_DIR: /tmp/gh-aw/sandbox/firewall/logs
+ run: |
+ # Fix permissions on firewall logs/audit dirs so they can be uploaded as artifacts
+ # AWF runs with sudo, creating files owned by root
+ sudo chmod -R a+r /tmp/gh-aw/sandbox/firewall 2>/dev/null || true
+ # Only run awf logs summary if awf command exists (it may not be installed if workflow failed before install step)
+ if command -v awf &> /dev/null; then
+ awf logs summary | tee -a "$GITHUB_STEP_SUMMARY"
+ else
+ echo 'AWF binary not installed, skipping firewall log summary'
+ fi
+ - name: Parse token usage for step summary
+ if: always()
+ continue-on-error: true
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/parse_token_usage.cjs');
+ await main();
+ - name: Print AWF reflect summary
+ if: always()
+ continue-on-error: true
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/awf_reflect_summary.cjs');
+ await main();
+ - name: Write agent output placeholder if missing
+ if: always()
+ run: |
+ if [ ! -f /tmp/gh-aw/agent_output.json ]; then
+ echo '{"items":[]}' > /tmp/gh-aw/agent_output.json
+ fi
+ - name: Upload agent artifacts
+ if: always()
+ continue-on-error: true
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ with:
+ name: agent
+ path: |
+ /tmp/gh-aw/aw-prompts/prompt.txt
+ /tmp/gh-aw/sandbox/agent/logs/
+ /tmp/gh-aw/redacted-urls.log
+ /tmp/gh-aw/mcp-logs/
+ /tmp/gh-aw/agent_usage.json
+ /tmp/gh-aw/agent-stdio.log
+ /tmp/gh-aw/pre-agent-audit.txt
+ /tmp/gh-aw/agent/
+ /tmp/gh-aw/github_rate_limits.jsonl
+ /tmp/gh-aw/safeoutputs.jsonl
+ /tmp/gh-aw/agent_output.json
+ /tmp/gh-aw/aw-*.patch
+ /tmp/gh-aw/aw-*.bundle
+ /tmp/gh-aw/awf-config.json
+ /tmp/gh-aw/sandbox/firewall/logs/
+ /tmp/gh-aw/sandbox/firewall/audit/
+ /tmp/gh-aw/sandbox/firewall/awf-reflect.json
+ if-no-files-found: ignore
+
+ conclusion:
+ needs:
+ - activation
+ - agent
+ - detection
+ - safe_outputs
+ if: >
+ always() && (needs.agent.result != 'skipped' || needs.activation.outputs.lockdown_check_failed == 'true' ||
+ needs.activation.outputs.stale_lock_file_failed == 'true')
+ runs-on: ubuntu-slim
+ permissions:
+ contents: write
+ issues: write
+ pull-requests: write
+ concurrency:
+ group: "gh-aw-conclusion-translate-docs-ja"
+ cancel-in-progress: false
+ outputs:
+ incomplete_count: ${{ steps.report_incomplete.outputs.incomplete_count }}
+ noop_message: ${{ steps.noop.outputs.noop_message }}
+ tools_reported: ${{ steps.missing_tool.outputs.tools_reported }}
+ total_count: ${{ steps.missing_tool.outputs.total_count }}
+ steps:
+ - name: Setup Scripts
+ id: setup
+ uses: github/gh-aw-actions/setup@b8068426813005612b960b5ab0b8bd2c27142323 # v0.71.5
+ with:
+ destination: ${{ runner.temp }}/gh-aw/actions
+ job-name: ${{ github.job }}
+ trace-id: ${{ needs.activation.outputs.setup-trace-id }}
+ env:
+ GH_AW_SETUP_WORKFLOW_NAME: "Translate Docs to Japanese"
+ GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/translate-docs-ja.lock.yml@${{ github.ref }}
+ GH_AW_INFO_VERSION: "1.0.40"
+ - name: Download agent output artifact
+ id: download-agent-output
+ continue-on-error: true
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+ with:
+ name: agent
+ path: /tmp/gh-aw/
+ - name: Setup agent output environment variable
+ id: setup-agent-output-env
+ if: steps.download-agent-output.outcome == 'success'
+ run: |
+ mkdir -p /tmp/gh-aw/
+ find "/tmp/gh-aw/" -type f -print
+ echo "GH_AW_AGENT_OUTPUT=/tmp/gh-aw/agent_output.json" >> "$GITHUB_OUTPUT"
+ - name: Process no-op messages
+ id: noop
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
+ GH_AW_NOOP_MAX: "1"
+ GH_AW_WORKFLOW_NAME: "Translate Docs to Japanese"
+ GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
+ GH_AW_AGENT_CONCLUSION: ${{ needs.agent.result }}
+ GH_AW_NOOP_REPORT_AS_ISSUE: "true"
+ with:
+ github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/handle_noop_message.cjs');
+ await main();
+ - name: Log detection run
+ id: detection_runs
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
+ GH_AW_WORKFLOW_NAME: "Translate Docs to Japanese"
+ GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
+ GH_AW_DETECTION_CONCLUSION: ${{ needs.detection.outputs.detection_conclusion }}
+ GH_AW_DETECTION_REASON: ${{ needs.detection.outputs.detection_reason }}
+ with:
+ github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/handle_detection_runs.cjs');
+ await main();
+ - name: Record missing tool
+ id: missing_tool
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
+ GH_AW_MISSING_TOOL_CREATE_ISSUE: "true"
+ GH_AW_WORKFLOW_NAME: "Translate Docs to Japanese"
+ with:
+ github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/missing_tool.cjs');
+ await main();
+ - name: Record incomplete
+ id: report_incomplete
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
+ GH_AW_REPORT_INCOMPLETE_CREATE_ISSUE: "true"
+ GH_AW_WORKFLOW_NAME: "Translate Docs to Japanese"
+ with:
+ github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/report_incomplete_handler.cjs');
+ await main();
+ - name: Handle agent failure
+ id: handle_agent_failure
+ if: always()
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
+ GH_AW_WORKFLOW_NAME: "Translate Docs to Japanese"
+ GH_AW_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
+ GH_AW_AGENT_CONCLUSION: ${{ needs.agent.result }}
+ GH_AW_WORKFLOW_ID: "translate-docs-ja"
+ GH_AW_ACTION_FAILURE_ISSUE_EXPIRES_HOURS: "168"
+ GH_AW_ENGINE_ID: "copilot"
+ GH_AW_SECRET_VERIFICATION_RESULT: ${{ needs.activation.outputs.secret_verification_result }}
+ GH_AW_CHECKOUT_PR_SUCCESS: ${{ needs.agent.outputs.checkout_pr_success }}
+ GH_AW_INFERENCE_ACCESS_ERROR: ${{ needs.agent.outputs.inference_access_error }}
+ GH_AW_MCP_POLICY_ERROR: ${{ needs.agent.outputs.mcp_policy_error }}
+ GH_AW_AGENTIC_ENGINE_TIMEOUT: ${{ needs.agent.outputs.agentic_engine_timeout }}
+ GH_AW_MODEL_NOT_SUPPORTED_ERROR: ${{ needs.agent.outputs.model_not_supported_error }}
+ GH_AW_ENGINE_API_HOSTS: "api.enterprise.githubcopilot.com,api.githubcopilot.com,api.business.githubcopilot.com,api.individual.githubcopilot.com"
+ GH_AW_CODE_PUSH_FAILURE_ERRORS: ${{ needs.safe_outputs.outputs.code_push_failure_errors }}
+ GH_AW_CODE_PUSH_FAILURE_COUNT: ${{ needs.safe_outputs.outputs.code_push_failure_count }}
+ GH_AW_LOCKDOWN_CHECK_FAILED: ${{ needs.activation.outputs.lockdown_check_failed }}
+ GH_AW_STALE_LOCK_FILE_FAILED: ${{ needs.activation.outputs.stale_lock_file_failed }}
+ GH_AW_GROUP_REPORTS: "false"
+ GH_AW_FAILURE_REPORT_AS_ISSUE: "true"
+ GH_AW_MISSING_TOOL_REPORT_AS_FAILURE: "true"
+ GH_AW_MISSING_DATA_REPORT_AS_FAILURE: "true"
+ GH_AW_TIMEOUT_MINUTES: "20"
+ with:
+ github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/handle_agent_failure.cjs');
+ await main();
+
+ detection:
+ needs:
+ - activation
+ - agent
+ if: >
+ always() && needs.agent.result != 'skipped' && (needs.agent.outputs.output_types != '' || needs.agent.outputs.has_patch == 'true')
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ outputs:
+ detection_conclusion: ${{ steps.detection_conclusion.outputs.conclusion }}
+ detection_reason: ${{ steps.detection_conclusion.outputs.reason }}
+ detection_success: ${{ steps.detection_conclusion.outputs.success }}
+ steps:
+ - name: Setup Scripts
+ id: setup
+ uses: github/gh-aw-actions/setup@b8068426813005612b960b5ab0b8bd2c27142323 # v0.71.5
+ with:
+ destination: ${{ runner.temp }}/gh-aw/actions
+ job-name: ${{ github.job }}
+ trace-id: ${{ needs.activation.outputs.setup-trace-id }}
+ env:
+ GH_AW_SETUP_WORKFLOW_NAME: "Translate Docs to Japanese"
+ GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/translate-docs-ja.lock.yml@${{ github.ref }}
+ GH_AW_INFO_VERSION: "1.0.40"
+ - name: Download agent output artifact
+ id: download-agent-output
+ continue-on-error: true
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+ with:
+ name: agent
+ path: /tmp/gh-aw/
+ - name: Setup agent output environment variable
+ id: setup-agent-output-env
+ if: steps.download-agent-output.outcome == 'success'
+ run: |
+ mkdir -p /tmp/gh-aw/
+ find "/tmp/gh-aw/" -type f -print
+ echo "GH_AW_AGENT_OUTPUT=/tmp/gh-aw/agent_output.json" >> "$GITHUB_OUTPUT"
+ - name: Checkout repository for patch context
+ if: needs.agent.outputs.has_patch == 'true'
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ persist-credentials: false
+ # --- Threat Detection ---
+ - name: Clean stale firewall files from agent artifact
+ run: |
+ rm -rf /tmp/gh-aw/sandbox/firewall/logs
+ rm -rf /tmp/gh-aw/sandbox/firewall/audit
+ - name: Download container images
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/download_docker_images.sh" ghcr.io/github/gh-aw-firewall/agent:0.25.40@sha256:14ff567e8d9d4c2fbc5e55c973488381c71d7e0fdbe72d30ee7b8a738fd86504 ghcr.io/github/gh-aw-firewall/api-proxy:0.25.40@sha256:2883ca3e5ae9f330cafdd9345bfd4ae17fc8da36c96d4c9a1f76e922b4c45280 ghcr.io/github/gh-aw-firewall/squid:0.25.40@sha256:b084f4a2c771f584ee68084ced52fa6b3245197a1889645d817462d307d3ac51
+ - name: Check if detection needed
+ id: detection_guard
+ if: always()
+ env:
+ OUTPUT_TYPES: ${{ needs.agent.outputs.output_types }}
+ HAS_PATCH: ${{ needs.agent.outputs.has_patch }}
+ run: |
+ if [[ -n "$OUTPUT_TYPES" || "$HAS_PATCH" == "true" ]]; then
+ echo "run_detection=true" >> "$GITHUB_OUTPUT"
+ echo "Detection will run: output_types=$OUTPUT_TYPES, has_patch=$HAS_PATCH"
+ else
+ echo "run_detection=false" >> "$GITHUB_OUTPUT"
+ echo "Detection skipped: no agent outputs or patches to analyze"
+ fi
+ - name: Clear MCP Config for detection
+ if: always() && steps.detection_guard.outputs.run_detection == 'true'
+ run: |
+ rm -f "${RUNNER_TEMP}/gh-aw/mcp-config/mcp-servers.json"
+ rm -f /home/runner/.copilot/mcp-config.json
+ rm -f "$GITHUB_WORKSPACE/.gemini/settings.json"
+ - name: Prepare threat detection files
+ if: always() && steps.detection_guard.outputs.run_detection == 'true'
+ run: |
+ mkdir -p /tmp/gh-aw/threat-detection/aw-prompts
+ cp /tmp/gh-aw/aw-prompts/prompt.txt /tmp/gh-aw/threat-detection/aw-prompts/prompt.txt 2>/dev/null || true
+ cp /tmp/gh-aw/agent_output.json /tmp/gh-aw/threat-detection/agent_output.json 2>/dev/null || true
+ for f in /tmp/gh-aw/aw-*.patch; do
+ [ -f "$f" ] && cp "$f" /tmp/gh-aw/threat-detection/ 2>/dev/null || true
+ done
+ for f in /tmp/gh-aw/aw-*.bundle; do
+ [ -f "$f" ] && cp "$f" /tmp/gh-aw/threat-detection/ 2>/dev/null || true
+ done
+ echo "Prepared threat detection files:"
+ ls -la /tmp/gh-aw/threat-detection/ 2>/dev/null || true
+ - name: Setup threat detection
+ if: always() && steps.detection_guard.outputs.run_detection == 'true'
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ WORKFLOW_NAME: "Translate Docs to Japanese"
+ WORKFLOW_DESCRIPTION: "No description provided"
+ HAS_PATCH: ${{ needs.agent.outputs.has_patch }}
+ with:
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/setup_threat_detection.cjs');
+ await main();
+ - name: Ensure threat-detection directory and log
+ if: always() && steps.detection_guard.outputs.run_detection == 'true'
+ run: |
+ mkdir -p /tmp/gh-aw/threat-detection
+ touch /tmp/gh-aw/threat-detection/detection.log
+ - name: Setup Node.js
+ uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
+ with:
+ node-version: '24'
+ package-manager-cache: false
+ - name: Install GitHub Copilot CLI
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_copilot_cli.sh" 1.0.40
+ env:
+ GH_HOST: github.com
+ - name: Install AWF binary
+ run: bash "${RUNNER_TEMP}/gh-aw/actions/install_awf_binary.sh" v0.25.40
+ - name: Execute GitHub Copilot CLI
+ if: always() && steps.detection_guard.outputs.run_detection == 'true'
+ continue-on-error: true
+ id: detection_agentic_execution
+ # Copilot CLI tool arguments (sorted):
+ timeout-minutes: 20
+ run: |
+ set -o pipefail
+ touch /tmp/gh-aw/agent-step-summary.md
+ GH_AW_NODE_BIN=$(command -v node 2>/dev/null || true)
+ export GH_AW_NODE_BIN
+ (umask 177 && touch /tmp/gh-aw/threat-detection/detection.log)
+ printf '%s\n' '{"$schema":"https://github.com/github/gh-aw-firewall/releases/download/v0.25.40/awf-config.schema.json","network":{"allowDomains":["api.business.githubcopilot.com","api.enterprise.githubcopilot.com","api.github.com","api.githubcopilot.com","api.individual.githubcopilot.com","github.com","host.docker.internal","telemetry.enterprise.githubcopilot.com"]},"apiProxy":{"enabled":true},"container":{"imageTag":"0.25.40,squid=sha256:b084f4a2c771f584ee68084ced52fa6b3245197a1889645d817462d307d3ac51,agent=sha256:14ff567e8d9d4c2fbc5e55c973488381c71d7e0fdbe72d30ee7b8a738fd86504,api-proxy=sha256:2883ca3e5ae9f330cafdd9345bfd4ae17fc8da36c96d4c9a1f76e922b4c45280,cli-proxy=sha256:3e7152911d4b4b7b97beef9d3d7d924ff7902227e86001ef3838fb728d5d514c"}}' > "${RUNNER_TEMP}/gh-aw/awf-config.json" && cp "${RUNNER_TEMP}/gh-aw/awf-config.json" /tmp/gh-aw/awf-config.json
+ # shellcheck disable=SC1003
+ sudo -E awf --config "${RUNNER_TEMP}/gh-aw/awf-config.json" --container-workdir "${GITHUB_WORKSPACE}" --mount "${RUNNER_TEMP}/gh-aw:${RUNNER_TEMP}/gh-aw:ro" --mount "${RUNNER_TEMP}/gh-aw:/host${RUNNER_TEMP}/gh-aw:ro" --env-all --exclude-env COPILOT_GITHUB_TOKEN --log-level info --proxy-logs-dir /tmp/gh-aw/sandbox/firewall/logs --audit-dir /tmp/gh-aw/sandbox/firewall/audit --enable-host-access --allow-host-ports 80,443,8080 --skip-pull \
+ -- /bin/bash -c 'export PATH="$(find /opt/hostedtoolcache /home/runner/work/_tool -maxdepth 4 -type d -name bin 2>/dev/null | tr '\''\n'\'' '\'':'\'')$PATH"; [ -n "$GOROOT" ] && export PATH="$GOROOT/bin:$PATH" || true && GH_AW_NODE_EXEC="${GH_AW_NODE_BIN:-}"; if [ -z "$GH_AW_NODE_EXEC" ] || [ ! -x "$GH_AW_NODE_EXEC" ]; then GH_AW_NODE_EXEC="$(command -v node 2>/dev/null || echo node)"; fi; "$GH_AW_NODE_EXEC" ${RUNNER_TEMP}/gh-aw/actions/copilot_harness.cjs /usr/local/bin/copilot --add-dir /tmp/gh-aw/ --log-level all --log-dir /tmp/gh-aw/sandbox/agent/logs/ --disable-builtin-mcps --no-ask-user --allow-all-tools --add-dir "${GITHUB_WORKSPACE}" --prompt-file /tmp/gh-aw/aw-prompts/prompt.txt' 2>&1 | tee -a /tmp/gh-aw/threat-detection/detection.log
+ env:
+ COPILOT_AGENT_RUNNER_TYPE: STANDALONE
+ COPILOT_API_KEY: dummy-byok-key-for-offline-mode
+ COPILOT_GITHUB_TOKEN: ${{ secrets.COPILOT_GITHUB_TOKEN }}
+ COPILOT_MODEL: ${{ vars.GH_AW_MODEL_DETECTION_COPILOT || 'claude-sonnet-4.6' }}
+ GH_AW_PHASE: detection
+ GH_AW_PROMPT: /tmp/gh-aw/aw-prompts/prompt.txt
+ GH_AW_VERSION: v0.71.5
+ GITHUB_API_URL: ${{ github.api_url }}
+ GITHUB_AW: true
+ GITHUB_COPILOT_INTEGRATION_ID: agentic-workflows
+ GITHUB_HEAD_REF: ${{ github.head_ref }}
+ GITHUB_REF_NAME: ${{ github.ref_name }}
+ GITHUB_SERVER_URL: ${{ github.server_url }}
+ GITHUB_STEP_SUMMARY: /tmp/gh-aw/agent-step-summary.md
+ GITHUB_WORKSPACE: ${{ github.workspace }}
+ GIT_AUTHOR_EMAIL: github-actions[bot]@users.noreply.github.com
+ GIT_AUTHOR_NAME: github-actions[bot]
+ GIT_COMMITTER_EMAIL: github-actions[bot]@users.noreply.github.com
+ GIT_COMMITTER_NAME: github-actions[bot]
+ XDG_CONFIG_HOME: /home/runner
+ - name: Upload threat detection log
+ if: always() && steps.detection_guard.outputs.run_detection == 'true'
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ with:
+ name: detection
+ path: /tmp/gh-aw/threat-detection/detection.log
+ if-no-files-found: ignore
+ - name: Parse and conclude threat detection
+ id: detection_conclusion
+ if: always()
+ continue-on-error: true
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ RUN_DETECTION: ${{ steps.detection_guard.outputs.run_detection }}
+ GH_AW_DETECTION_CONTINUE_ON_ERROR: "true"
+ with:
+ script: |
+ try {
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/parse_threat_detection_results.cjs');
+ await main();
+ } catch (loadErr) {
+ const continueOnError = process.env.GH_AW_DETECTION_CONTINUE_ON_ERROR !== 'false';
+ const msg = 'ERR_SYSTEM: \u274C Unexpected error loading threat detection module: ' + (loadErr && loadErr.message ? loadErr.message : String(loadErr));
+ core.error(msg);
+ core.setOutput('reason', 'parse_error');
+ if (continueOnError) {
+ core.warning('\u26A0\uFE0F ' + msg);
+ core.setOutput('conclusion', 'warning');
+ core.setOutput('success', 'false');
+ } else {
+ core.setOutput('conclusion', 'failure');
+ core.setOutput('success', 'false');
+ core.setFailed(msg);
+ }
+ }
+
+ pre_activation:
+ runs-on: ubuntu-slim
+ outputs:
+ activated: ${{ steps.check_membership.outputs.is_team_member == 'true' }}
+ matched_command: ''
+ setup-trace-id: ${{ steps.setup.outputs.trace-id }}
+ steps:
+ - name: Setup Scripts
+ id: setup
+ uses: github/gh-aw-actions/setup@b8068426813005612b960b5ab0b8bd2c27142323 # v0.71.5
+ with:
+ destination: ${{ runner.temp }}/gh-aw/actions
+ job-name: ${{ github.job }}
+ env:
+ GH_AW_SETUP_WORKFLOW_NAME: "Translate Docs to Japanese"
+ GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/translate-docs-ja.lock.yml@${{ github.ref }}
+ GH_AW_INFO_VERSION: "1.0.40"
+ - name: Check team membership for workflow
+ id: check_membership
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_REQUIRED_ROLES: "admin,maintainer,write"
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/check_membership.cjs');
+ await main();
+
+ safe_outputs:
+ needs:
+ - activation
+ - agent
+ - detection
+ if: (!cancelled()) && needs.agent.result != 'skipped' && needs.detection.result == 'success'
+ runs-on: ubuntu-slim
+ permissions:
+ contents: write
+ issues: write
+ pull-requests: write
+ timeout-minutes: 15
+ env:
+ GH_AW_CALLER_WORKFLOW_ID: "${{ github.repository }}/translate-docs-ja"
+ GH_AW_DETECTION_CONCLUSION: ${{ needs.detection.outputs.detection_conclusion }}
+ GH_AW_DETECTION_REASON: ${{ needs.detection.outputs.detection_reason }}
+ GH_AW_EFFECTIVE_TOKENS: ${{ needs.agent.outputs.effective_tokens }}
+ GH_AW_ENGINE_ID: "copilot"
+ GH_AW_ENGINE_MODEL: ${{ needs.agent.outputs.model }}
+ GH_AW_ENGINE_VERSION: "1.0.40"
+ GH_AW_WORKFLOW_ID: "translate-docs-ja"
+ GH_AW_WORKFLOW_NAME: "Translate Docs to Japanese"
+ outputs:
+ code_push_failure_count: ${{ steps.process_safe_outputs.outputs.code_push_failure_count }}
+ code_push_failure_errors: ${{ steps.process_safe_outputs.outputs.code_push_failure_errors }}
+ create_discussion_error_count: ${{ steps.process_safe_outputs.outputs.create_discussion_error_count }}
+ create_discussion_errors: ${{ steps.process_safe_outputs.outputs.create_discussion_errors }}
+ created_pr_number: ${{ steps.process_safe_outputs.outputs.created_pr_number }}
+ created_pr_url: ${{ steps.process_safe_outputs.outputs.created_pr_url }}
+ process_safe_outputs_processed_count: ${{ steps.process_safe_outputs.outputs.processed_count }}
+ process_safe_outputs_temporary_id_map: ${{ steps.process_safe_outputs.outputs.temporary_id_map }}
+ steps:
+ - name: Setup Scripts
+ id: setup
+ uses: github/gh-aw-actions/setup@b8068426813005612b960b5ab0b8bd2c27142323 # v0.71.5
+ with:
+ destination: ${{ runner.temp }}/gh-aw/actions
+ job-name: ${{ github.job }}
+ trace-id: ${{ needs.activation.outputs.setup-trace-id }}
+ env:
+ GH_AW_SETUP_WORKFLOW_NAME: "Translate Docs to Japanese"
+ GH_AW_CURRENT_WORKFLOW_REF: ${{ github.repository }}/.github/workflows/translate-docs-ja.lock.yml@${{ github.ref }}
+ GH_AW_INFO_VERSION: "1.0.40"
+ - name: Download agent output artifact
+ id: download-agent-output
+ continue-on-error: true
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+ with:
+ name: agent
+ path: /tmp/gh-aw/
+ - name: Setup agent output environment variable
+ id: setup-agent-output-env
+ if: steps.download-agent-output.outcome == 'success'
+ run: |
+ mkdir -p /tmp/gh-aw/
+ find "/tmp/gh-aw/" -type f -print
+ echo "GH_AW_AGENT_OUTPUT=/tmp/gh-aw/agent_output.json" >> "$GITHUB_OUTPUT"
+ - name: Download patch artifact
+ continue-on-error: true
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
+ with:
+ name: agent
+ path: /tmp/gh-aw/
+ - name: Checkout repository
+ if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'create_pull_request')
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+ with:
+ ref: ${{ github.base_ref || github.event.pull_request.base.ref || github.ref_name || github.event.repository.default_branch }}
+ token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ persist-credentials: false
+ fetch-depth: 1
+ - name: Configure Git credentials
+ if: (!cancelled()) && needs.agent.result != 'skipped' && contains(needs.agent.outputs.output_types, 'create_pull_request')
+ env:
+ REPO_NAME: ${{ github.repository }}
+ SERVER_URL: ${{ github.server_url }}
+ GIT_TOKEN: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ run: |
+ git config --global user.email "github-actions[bot]@users.noreply.github.com"
+ git config --global user.name "github-actions[bot]"
+ git config --global am.keepcr true
+ # Re-authenticate git with GitHub token
+ SERVER_URL_STRIPPED="${SERVER_URL#https://}"
+ git remote set-url origin "https://x-access-token:${GIT_TOKEN}@${SERVER_URL_STRIPPED}/${REPO_NAME}.git"
+ echo "Git configured with standard GitHub Actions identity"
+ - name: Configure GH_HOST for enterprise compatibility
+ id: ghes-host-config
+ shell: bash
+ run: |
+ # Derive GH_HOST from GITHUB_SERVER_URL so the gh CLI targets the correct
+ # GitHub instance (GHES/GHEC). On github.com this is a harmless no-op.
+ GH_HOST="${GITHUB_SERVER_URL#https://}"
+ GH_HOST="${GH_HOST#http://}"
+ echo "GH_HOST=${GH_HOST}" >> "$GITHUB_ENV"
+ - name: Process Safe Outputs
+ id: process_safe_outputs
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
+ env:
+ GH_AW_AGENT_OUTPUT: ${{ steps.setup-agent-output-env.outputs.GH_AW_AGENT_OUTPUT }}
+ GH_AW_ALLOWED_DOMAINS: "*.githubusercontent.com,api.business.githubcopilot.com,api.enterprise.githubcopilot.com,api.github.com,api.githubcopilot.com,api.individual.githubcopilot.com,codeload.github.com,docs.github.com,github-cloud.githubusercontent.com,github-cloud.s3.amazonaws.com,github.blog,github.com,github.githubassets.com,host.docker.internal,lfs.github.com,objects.githubusercontent.com,raw.githubusercontent.com,registry.npmjs.org,telemetry.enterprise.githubcopilot.com"
+ GITHUB_SERVER_URL: ${{ github.server_url }}
+ GITHUB_API_URL: ${{ github.api_url }}
+ GH_AW_SAFE_OUTPUTS_HANDLER_CONFIG: "{\"create_pull_request\":{\"draft\":false,\"labels\":[\"i18n\",\"ja\",\"automated\"],\"max\":1,\"max_patch_files\":100,\"max_patch_size\":1024,\"protect_top_level_dot_folders\":true,\"protected_files\":[\"package.json\",\"bun.lockb\",\"bunfig.toml\",\"deno.json\",\"deno.jsonc\",\"deno.lock\",\"global.json\",\"NuGet.Config\",\"Directory.Packages.props\",\"mix.exs\",\"mix.lock\",\"go.mod\",\"go.sum\",\"stack.yaml\",\"stack.yaml.lock\",\"pom.xml\",\"build.gradle\",\"build.gradle.kts\",\"settings.gradle\",\"settings.gradle.kts\",\"gradle.properties\",\"package-lock.json\",\"yarn.lock\",\"pnpm-lock.yaml\",\"npm-shrinkwrap.json\",\"requirements.txt\",\"Pipfile\",\"Pipfile.lock\",\"pyproject.toml\",\"setup.py\",\"setup.cfg\",\"Gemfile\",\"Gemfile.lock\",\"uv.lock\",\"CODEOWNERS\",\"DESIGN.md\",\"README.md\",\"CONTRIBUTING.md\",\"CHANGELOG.md\",\"SECURITY.md\",\"CODE_OF_CONDUCT.md\",\"AGENTS.md\",\"CLAUDE.md\",\"GEMINI.md\"],\"title_prefix\":\"[i18n-ja] \"},\"create_report_incomplete_issue\":{},\"missing_data\":{},\"missing_tool\":{},\"noop\":{\"max\":1,\"report-as-issue\":\"true\"},\"report_incomplete\":{}}"
+ GH_AW_CI_TRIGGER_TOKEN: ${{ secrets.GH_AW_CI_TRIGGER_TOKEN }}
+ with:
+ github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
+ script: |
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
+ setupGlobals(core, github, context, exec, io, getOctokit);
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/safe_output_handler_manager.cjs');
+ await main();
+ - name: Upload Safe Outputs Items
+ if: always()
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
+ with:
+ name: safe-outputs-items
+ path: |
+ /tmp/gh-aw/safe-output-items.jsonl
+ /tmp/gh-aw/temporary-id-map.json
+ if-no-files-found: ignore
+
diff --git a/.github/workflows/translate-docs-ja.md b/.github/workflows/translate-docs-ja.md
new file mode 100644
index 00000000..41a230d7
--- /dev/null
+++ b/.github/workflows/translate-docs-ja.md
@@ -0,0 +1,140 @@
+---
+on:
+ push:
+ branches: [master]
+ paths:
+ - "docs/**/*.md"
+ - "docs/**/*.mdx"
+ - "versioned_docs/**/*.md"
+ - "versioned_docs/**/*.mdx"
+ workflow_dispatch:
+ inputs:
+ full_resync:
+ description: "Re-translate every source file, ignoring diff. Use sparingly."
+ type: boolean
+ default: false
+
+permissions:
+ contents: read
+
+engine: copilot
+
+concurrency:
+ group: "i18n-ja-${{ github.ref }}"
+ cancel-in-progress: true
+
+network:
+ allowed:
+ - threat-detection
+ - github
+
+safe-outputs:
+ create-pull-request:
+ title-prefix: "[i18n-ja] "
+ labels: [i18n, ja, automated]
+ draft: false
+
+tools:
+ bash:
+ - "git diff *"
+ - "git diff-tree *"
+ - "git log *"
+ - "git show *"
+ - "git ls-files *"
+ - "ls *"
+ - "wc *"
+ - "mkdir *"
+ - "rm *"
+ edit:
+---
+
+# Translate Docs to Japanese
+
+Translate changed English documentation into Japanese under the Docusaurus
+`i18n/ja/docusaurus-plugin-content-docs/` tree, then open a pull request with
+the result. The English markdown is the only editable source — the Japanese
+files in `i18n/ja/**` are generated output and must only be modified by this
+workflow (or a follow-up PR review).
+
+## Path mapping (must be exact)
+
+| English source (editable) | Japanese output (generated) |
+| -------------------------------------------------- | --------------------------------------------------------------------------------- |
+| `docs/.md(x)` | `i18n/ja/docusaurus-plugin-content-docs/current/.md(x)` |
+| `versioned_docs/version-/.md(x)` | `i18n/ja/docusaurus-plugin-content-docs/version-/.md(x)` |
+
+The set of versions is authoritative in [`versions.json`](../../versions.json)
+(currently `1.8.4`). Mirror the directory structure exactly — never flatten,
+rename, or reorganize files.
+
+## What to do on each run
+
+1. **Determine the change set**
+ - If `inputs.full_resync` is `true`, treat every file under `docs/**` and
+ `versioned_docs/**` as the change set.
+ - Otherwise, diff `${{ github.event.before }}..${{ github.event.after }}` (fall back
+ to `HEAD~1..HEAD` when `before` is the zero SHA, i.e. first push to a
+ branch) and collect all added, modified, renamed, and deleted `.md` /
+ `.mdx` files inside `docs/**` or `versioned_docs/**`.
+ - If the change set is empty after filtering, exit cleanly without opening
+ a PR.
+
+2. **For each added or modified source file**
+ - Compute the target path using the mapping table above.
+ - Read the English file. If its YAML front-matter contains
+ `translate: false`, skip it.
+ - Translate the body prose into natural, technical Japanese suitable for
+ end-user product documentation. Preserve **byte-for-byte**:
+
+ - YAML front-matter keys and values for `id`, `slug`, `sidebar_position`,
+ `sidebar_label` keys whose values look like identifiers, and any
+ `custom_*` keys. Translate only human-readable values such as `title`
+ and `description`.
+ - Fenced code blocks (```` ``` ````), inline code (`` ` ``), and HTML/MDX
+ component tags and their attribute names.
+ - Relative links, anchor IDs, image paths, and admonition syntax
+ (`:::note`, `:::tip`, etc.).
+ - Heading levels and list structure.
+ - Write the translated content to the target path, creating parent
+ directories as needed.
+
+3. **For each deleted or renamed source file**
+ - Remove the corresponding Japanese mirror file. For renames, also create
+ the new translated file at the new target path.
+
+4. **Idempotency check** — after writing all files, run
+ `git status --porcelain i18n/ja` and `git diff --stat i18n/ja`. If there
+ are no changes, exit without opening a PR.
+
+5. **Open the pull request** via the `create-pull-request` safe output:
+ - Title: `Translate docs to Japanese ()` where `N` is the
+ number of files written.
+ - Body: a short summary table listing each changed source file and its
+ Japanese target, plus a "Do not edit generated files directly" note that
+ points reviewers at this workflow.
+ - Base: `master`.
+
+## Hard rules
+
+- **Never edit anything outside `i18n/ja/docusaurus-plugin-content-docs/`.**
+ Source markdown under `docs/` and `versioned_docs/` is read-only for this
+ workflow.
+- **Never edit `i18n/ja/code.json`** or any file under
+ `i18n/ja/docusaurus-theme-classic/` — those are theme strings managed
+ separately.
+- **Never hand-edit `.lock.yml`** or any other generated YAML.
+- **One source file → one Japanese file.** Do not split or merge files.
+- **Re-running on the same commit must produce no diff.** If the model
+ produces gratuitously reworded output for an unchanged English source,
+ prefer the existing Japanese file.
+- **Skip binary, non-doc, and non-`.md(x)` files** even if they appear in the
+ diff.
+
+## Usage
+
+- Triggers automatically on every push to `master` that touches markdown
+ under `docs/**` or `versioned_docs/**`.
+- Manual run for a full re-translation:
+ `gh aw run translate-docs-ja --ref master -F full_resync=true`
+- Inspect a run: `gh aw logs translate-docs-ja`
+- Audit a specific run: `gh aw audit `
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 00000000..dbd4bd79
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "github.copilot.enable": {
+ "markdown": true
+ }
+}
\ No newline at end of file
diff --git a/docs/web/accessibility.md b/docs/web/accessibility.md
new file mode 100644
index 00000000..7076d438
--- /dev/null
+++ b/docs/web/accessibility.md
@@ -0,0 +1,38 @@
+# Accessibility
+
+## Keyboard Accessibility
+
+The Reveal SDK supports keyboard navigation in View Mode, allowing users to interact with dashboards without a mouse. All interactive elements have visible focus indicators and follow a logical tab order.
+
+### Navigating the Dashboard
+
+Use the following keyboard shortcuts to navigate and interact with a dashboard:
+
+| Key | Action |
+|-----|--------|
+| **Tab** | Move focus to the next interactive element |
+| **Shift + Tab** | Move focus to the previous interactive element |
+| **Arrow Keys** | Navigate between visualizations on the dashboard, and within lists, grids, and menus |
+| **Enter** | Activate the focused control (e.g., maximize a visualization, confirm a selection, open a menu) |
+| **Space** | Toggle the checkbox of the focused element |
+| **Escape** | Close an open dialog, menu, or popup |
+
+### Dashboard View Navigation
+
+When a dashboard is in View Mode:
+
+- Use **Arrow Keys** to move focus between visualizations on the dashboard.
+- Press **Enter** on a focused visualization to move focus to the maximize button
+
+### Lists and Grid Components
+
+When focus is inside a list, dropdown, or grid-based component, use the **Arrow Keys** to navigate between items. Press **Enter** to select the focused item.
+
+### Focus Behavior
+
+- Focus is always visibly indicated as it moves through the interface.
+- The keyboard navigation order follows a logical, intuitive sequence.
+
+### Limitations
+
+Keyboard navigation within visualization components is only supported for Scatter Maps, Grid, and Sparkline. For all other visualization types, only the visualization header is reachable via keyboard. Support for Pivot is planned for a future release.
diff --git a/docs/web/release-notes.md b/docs/web/release-notes.md
index 06d90fec..7aa54515 100644
--- a/docs/web/release-notes.md
+++ b/docs/web/release-notes.md
@@ -3,1632 +3,5 @@ import TabItem from '@theme/TabItem';
# Release Notes
-## 1.8.4 (Mar 5th, 2026)
-
-### New Features
-
-#### All Platforms
-
-- New data source: MariaDB.
-- Redshift now supports stored procedures.
-- KPI visualizations now support conditional formatting.
-- Added "Between" and "Not Between" number comparison operators for conditional formatting.
-- Keyboard accessibility improvements in View Mode for grid and pivot visualizations.
-- Localization now uses the user's language preference instead of the server locale. This affects labels such as "Grand Total" in Excel export, and "Previous" and "Current" in KPI visualizations.
-- Elasticsearch now supports parameterized queries.
-- MySQL now supports timezone conversion.
-- Added a "Remove" button to the visualization editor fields list.
-- Added a search box to the visualization type selection dialog.
-- Added an `onFilterValueChanged` event to the RevealView. The event fires when the user uses the filtering UI or API to modify the selection of a filter.
-
-```javascript
-revealView.onFilterValueChanged = (args) => {
- console.log("Filter:", args.filter);
- console.log("Source:", args.source.title);
- console.log("Old value:", args.oldValue);
- console.log("New value:", args.newValue);
-};
-```
-
-### Bugs
-
-#### All Platforms
-
-- The "Null or empty" filter option text is now localized.
-- Switching visualizations quickly when using statistical functions could lose the original baseline.
-- MongoDB blending regression.
-- Cache not working in some scenarios for NodeJS and Java SDKs.
-- Pivot Excel export headers missing when grand totals are visible.
-- Dashboard filter refresh rate ignoring the metadata screen expiration setting.
-- Stacked chart y-axis range only using first value field's range.
-- Combination chart: changing the display order alters the y-axis range.
-- Local evaluation of "not equals" operators incorrect.
-- ScatterMap null reference exception when reloading data.
-- Date range generation for quarter-based rules incorrect on web.
-- SSAS hierarchical filters not working correctly.
-- MySQL error when the database name includes a hyphen.
-- Field search box not showing up in the visualization editor.
-- Dashboard filter binding issues.
-- Auto connect filters issues.
-- Headless export inconsistencies with deferred rendering.
-- Maximized visualization sizing and loading incorrect when dashboard has global filters.
-- Multiple visualization editors could appear simultaneously in the dashboard layout.
-- Show data labels setting not applied in Excel export.
-- Data source icon not displaying for some data sources.
-- Maximized visualization state incorrectly reported after minimizing.
-- Headless export null pointer when the server returns 4xx or 5xx errors.
-- Exporting a dashboard containing text widget could fail.
-- Null values not treated as the smallest value when sorting.
-- Azure Analysis Services could cause a null reference when global filters are present.
-
-#### Java
-
-- Headless export crash when exporting a grid visualization.
-
-## 1.8.3 (Jan 9th, 2026)
-
-### New Features
-
-#### All Platforms
-
-- Conditional formatting shape selection popup has been improved, and now includes a clear option.
-- The new pie and donut chart is now generally available. This updated pie and donut replaces the previous pie and donut visualization.
-- Headless export has been optimized to be more reliable and slightly faster.
-- SQL Server now supports `ISEMPTY` function when creating a calculated field.
-- The event onUrlLinkRequested now cancels navigation when null is returned.
-- Large number formats are now localized.
-- Improved UX to use a field for dashboard filter's label that is different than the field for the dashboard field filter value.
-- Elasticsearch now has several improvements: added support for the `FORMATDATE` function, fixed issues with the `LOG` function (single parameter calls), fixed issue with the `FYEAR` (fiscal year) function, and made improvements to prevent SQL injection attacks.
-- Data source icons can now be hidden or changed.
-
-```js
-revealView.onAssetRequested = (args) => {
- // Use default
- return null;
-
- // Hide icon
- return { visible: false };
-
- // Custom icon
- return { imageUrl: "./images/custom.jpg" };
-
- // Conditional
- if (args.dataSource instanceof RVSqlServerDataSource) {
- return { imageUrl: "./images/sqlserver.jpg" };
- }
-};
-```
-
-- Added support for predefined calculated fields.
-
-```csharp
-//Registration
-mvcBuilder.AddReveal(builder =>
-{
- builder.AddDataModelProvider();
-});
-
-//Implementation example
-
-internal class MyDataModelProvider : IRVDataModelProvider
-{
- private static readonly List calculatedFields;
-
- static MyDataModelProvider()
- {
- calculatedFields = new List {
- new RVDataModelCalculatedField("GrossAmount", "Gross Amount", RVDashboardDataType.Numeric, "[UnitPrice] * [Quantity]"),
- new RVDataModelCalculatedField("DiscountAmount", "Discount Amount", RVDashboardDataType.Numeric, "[GrossAmount] * [Discount]"),
- new RVDataModelCalculatedField("NetAmount", "Net Amount", RVDashboardDataType.Numeric, "[GrossAmount] * [Discount]")
- };
- }
-
- public Task> GetCalculatedFieldsAsync(RVDataSourceItem dsItem, IRequestContext userContext)
- {
- if (dsItem.Title == "Order Details")
- return Task.FromResult(calculatedFields);
- else
- return Task.FromResult>(null);
- }
-
- public Task> GetMeasuresAsync(RVDataSourceItem dsItem, IRequestContext userContext)
- {
- if (dsItem.Title == "Order Details")
- return Task.FromResult(new List {
- new RVDataModelMeasure("Total Revenue", "sum([NetAmount])", "Total Revenue (net)"),
- new RVDataModelMeasure("ASP", "sum([NetAmount]) / SUM([Quantity])", "Revenue-weighted price per unit")
- });
- else
- return Task.FromResult>(null);
- }
-
- public Task> EditSchemaAsync(RVDataSourceItem dsItem, List baseSchema, IRequestContext requestContext)
- {
- if (dsItem.Title == "Order Details")
- {
- baseSchema.FirstOrDefault(f => f.Name == "Discount").DefaultAggregation = RVDashboardAggregationType.CountDistinct;
- return Task.FromResult(baseSchema);
- }
- else
- {
- return Task.FromResult>(null);
- }
- }
-}
-```
-
-- MongoDB now supports the `ENDOFMONTH` function.
-
-### Bugs
-
-#### All Platforms
-
-- RedisCacheOptions missing for TypeScript.
-- Large number formatting applied incorrectly to percentage-based charts.
-- Elasticsearch error on index preview.
-- MySQL stored procedure parameters not being shown as filter binding options.
-- The onFiltersChanged event is fired for interactive filtering, but the selectedValues property is not updated.
-- KPI visualizations can overlap its labels in minimized mode.
-- Google Analytics summarization of some measures incorrect.
-- Google Analytics shows wrong metric values when using a date hierarchy.
-- Unchecking "Show Data Labels" doesn't hide the labels.
-- Headless export that includes a map visualization fails.
-- Large number formatting does not work properly if `RevealSdkSettings.FormattingProvider` is defined.
-- Custom date range not working for Analysis Services.
-- Pie and donut chart disappears when legend is set to bottom.
-- Analysis Services crashes when accessed on MacOS ARM.
-- Custom font from theme not being used.
-- Custom theme is getting replaced with Reveal's default.
-- MySQL error when a null date is read from the query result.
-- Custom visualization doesn't include field's label.
-- Scatter map visualization showing incorrect text in tooltip for interactive filtering.
-
-#### Java
-
-- Numeric filter sends decimal instead of integer.
-
-## 1.8.2 (Nov 11th, 2025)
-
-This is a critical patch release that fixes a major issue with Redis cache support and adds TypeScript support for Node.js. **If you are using Redis cache (introduced in 1.8.1), you must upgrade to this version.**
-
-### Bug Fixes
-
-#### All Platforms
-
-- Fixed a critical bug preventing Redis cache from functioning correctly when configured.
-
-#### Node
-
-- Added TypeScript type definitions for improved development experience and type safety.
-
-## 1.8.1 (Nov 5th, 2025)
-
-### New Features
-
-#### All Platforms
-
-- Conditional formatting has been enhanced to allow for configurable rules and styling. These visualizations are currently supported; Grid, Pivot, Text View, Bar & Column chart.
-- New data source: Elasticsearch.
-- New cache provider: Redis.
-
-Java:
-
-```java
-initializeParameterBuilder.enableRedisCache((options) -> {
- options.setConnectionString("localhost:6379");
-});
-```
-
-ASP.NET:
-```csharp
-builder.AddRedisCache((options) => {
- options.ConnectionString = "localhost:6379";
-});
-```
-
-Node:
-
-```ts
-const revealOptions = {
- ...
- redisOptions: { connectionString: "localhost:6379" }
-}
-```
-
-- Multiple date dashboard filters are now generally available.
-- The cancel button can be programmatically hidden when editing a dashboard by setting the `showCancel` property on the RevealView.
-- The RevealView will now automatically refresh its appearance when the `theme` property has been set on RevealSdkSettings.
-- MongoDB provider now supports grid paging.
-- Snowflake provider now supports grid paging.
-- The `exitEditMode` on the RevealView will now return a boolean indicating whether or not we exited edit mode.
-- Added support for the EMPTY function in SQL Server.
-- Added support for grid paging when using data blending on data sources that support paging.
-- Added support for exporting to CSV.
-- Added support for read-only filters.
-- Added support to hide a dashboard filter.
-- Added support to customize the radial line axis range through the Settings tab in the visualization editor.
-- "Select a Field" popup on the filter dialog now has the stored procedures listed above the fields.
-
-
-#### Java
-
-- JTDS driver has been replaced with mssql-jdbc (v12.10.1.jre11).
-- RVJDBCPropertiesCredentials is no longer used and has been removed.
-
-### Bugs
-
-#### All Platforms
-
-- Sorting a pivot table numeric field causes crash.
-- Issue with column headers containing dashes in their title when exporting to Excel.
-- When editing a dashboard, there is a `PRE` element added directly to the HTML body.
-- Duplicate axis labels appearing in bar and column charts.
-- The `onDateFilterChanged` event on RVDashboard always reports the first date filter.
-- Adding a blended column causes grid paging to disable.
-- Data truncation indicator is missing from visualization editor.
-- Chart visualizations can disappear when browser is in the background.
-- Unable to scroll through dashboard with custom visualization.
-- "Invalid DateTime" error expanding data filter with REST data source.
-- The `onVisualizationEditorClosing` event of RevealView throws exception if the event is cancelled.
-- The `onUrlLinkRequested` event on RevealView is not called for dashboard linking trigger "Visualization Maximized".
-- When filters have over 3000+ values, filtering then unselecting a filter value does not work.
-- Time series axis label not following configured date formatting.
-- Linking a visualization to another dashboard and connecting with a date filter does not open the linked dashboard.
-- Refreshed data doesn't update filter values.
-- Analysis Server provider not showing date as a date type dimension.
-- Currency symbol dropdown is not displayed when the formatting type of a field is changed to currency.
-- Zoom for the Scatter Map visualization is lost when saved or refreshed.
-- Setting dashboard date filter rule to All Time via API produces no data.
-
-#### Java
-
-- Headless export using OS locale instead of the browser client locale.
-
-## 1.8.0 (Sept 3rd, 2025)
-
-### Breaking Changes
-
-- Support for .NET 6 has been removed.
-
-### New Features
-
-#### All Platforms
-
-- Snowflake now supports key-pair authentication.
-- Snowflake now supports stored procedures.
-- The `Snowflake.Data` dependency was updated to v4.8.0.
-- SQL Server is now using command parameters instead of manual statement construction when calling stored procedures.
-- The native binary used with Node has been updated to use .NET 8.
-- Redshift now supports grid row paging.
-
-### Bugs
-
-#### All Platforms
-
-- Selecting a field to "sort by" a label when there is no data to display causes a "Index was outside the bounds of the array" error.
-- The export button doesn't display a loading spinner after the first click and can be clicked multiple times.
-- Scrolling causes RevealView to become unresponsive when using the Chrome device toolbar.
-- Pivot expansion while sorting by values with multiple fields, is broken.
-- Issue with `VisualizationOptions.ShowFilters`, from headless export.
-- Visualization descriptions don’t appear if there are new lines or breaks in the content.
-- Grid paging is not working for Amazon Athena.
-- Dashboard filters do not cascade when using a REST datasource.
-- MongoDB calculated fields using subtracting/adding numbers to dates give wrong results.
-- Line chart does not display data after filter selection.
-- MySQL duplicates stored procedures and their parameters.
-- Headless export displays a console error if a dashboard includes a visualization date filter.
-- Exporting a dashboard to Excel may generate a partially invalid .xslx file that can be opened but needs to be repaired first.
-- Setting "Multiple" & "Required" on global filters with "All" only selects the first option.
-- Stacked column has ghosting effect when zooming in and out.
-- Headless export doesn't use the configured export language.
-- Inconsistency in the drill down or drill up navigation path label when working with fiscal years and semesters or quarters.
-- Dashboard descriptions don’t appear if there are new lines or breaks in the content.
-
-#### ASP.NET
-
-- `ImageExportOptions` constructor does not include `InitScript`.
-- `ExportOptions` constructor does not include `IncludeFiltersSummaryPage`.
-
-#### Node
-
-- Package installation downloads the x64 native binary on MacOS ARM64.
-
-## 1.7.6 (July 22nd, 2025)
-
-Emergency patch release with critical bug fixes.
-
-### Bugs
-- Selecting a field to "sort by" a label when there is no data to display causes a "Index was outside the bounds of the array."
-- Thumbnails broken with `ERROR TypeError: $.ig.SdkDashboardDocument.fromJson is not a function`
-
-## 1.7.5 (July 8th, 2025)
-
-### New Features
-
-#### All Platforms
-
-- Databricks now supports the following authentication types; personal access token, OAuth token pass-through, OAuth client credentials, and Microsoft Entra ID client credentials.
-- Reveal no longer extends native JS prototypes (e.g. Array).
-- Date filters are now included in the dashboard's `filters` collection.
-- An opt-in week date aggregation added to fields through `onFieldsInitializing` by setting the `weekLevelEnabled` to `true`.
-
-```js
-revealView.onFieldsInitializing = function (args) {
- args.fields.forEach(f => {
- if (f.type == $.ig.RVDashboardDataType.Date || f.type == $.ig.RVDashboardDataType.DateTime) {
- f.weekLevelEnabled = true;
- }});
-};
-```
-- Highlighting filters are now removed when entering edit mode.
-- The ANTLR dependency was updated to v4.13.1.
-- Redshift connector now supports cross database blending for databases contained in the same AWS cluster.
-- Rule and range properties can now be set via API for existing date dashboard filters.
-
-```js
-revealView.dashboard.filters[0].rule = new $.ig.RVDateRule($.ig.RVPeriodRelation.Last, 2, $.ig.RVPeriodType.Day);
-//-or-
-revealView.dashboard.filters[0].range = new $.ig.RVDateRange(new Date(2023, 0, 1), new Date(2023, 11, 31));
-```
-- Support for multiple date dashboard filters included as a beta feature.
-- `RVDashboard.dateFilter` is deprecated. It's being kept for compatibility for the time being, and is a reference to the first `DateDashboardFilter`, if there is one.
-
-#### Java
-
-- The ANTLR dependency was updated to v4.13.2.
-- The okhttp dependency was updated to v4.12.0.
-
-#### Node
-
-- Filters and date filters are now support for headless Excel export.
-- Puppeteer extracts Chrome to a different location, users making use of nodemon should update the configuration ignore the directory.
-
-```json
-"nodemonConfig": {
- "ignore": ["chrome-headless*/*"]
-}
-```
-
-### Bugs
-
-#### All Platforms
-
-- Headless export console error from missing JS.
-- Description in duplicated Text Box disappears.
-- Headless export fails if a dashboard contains a Text Box visualization.
-- Highlighting lost after drill-down removal, despite filter still applied.
-- Highlighting adds an extra day to other charts due to filter settings.
-- Highlighting export is not displayed correctly for visualization.
-- Highlighting filters are being shown in the visualization editor.
-- DateRules with a "Next" period relation did not display the correct number of days when the amount was greater than one.
-- Bar and column visualizations don't make appropriate use of the plot area on first load.
-- Duplicate menu item shown if AllTime is added as a custom item in a date filter's menu.
-- Scatter map visualization shifted the centering of the map.
-- Duplicate dialogs during Excel export with multiple grid visualizations.
-- Choropleth handles states wrong when using the "USA States" map.
-- Unhandled null reference exception after applying Tooltip filter in a pivot visualization.
-- Switching visualization type on a grid visualization results in the visualization disappearing and producing an error in the console.
-- Dashboard link parameters broken for category field.
-- Null reference error opening dashboard with CustomRange filter with range not set.
-- Drill down is available even when there is a single date field with no hierarchy defined.
-- Date format lost on drill up/down.
-- Tooltip field items not using field labels.
-- Japanese characters in filter labels are garbled in a pdf file created via headless export.
-- New pie is not being exporting correctly to PDF.
-- Grid paging loads data twice.
-- Long graph legends are not correctly shown.
-- Wrong data shown when expanding a pivot using '... to Date' filter.
-- Date Range filter "Trailing 12 months" is including current month data.
-- Filter opacity is darker on mobile than regular screen sizes.
-- Expansion not working when another pivot row is present.
-- Ad-hoc pivot expansion misbehaves when items are duplicated.
-- Drill down on empty element causes crash.
-- Drill down on a expanded pivot row doesn't work well.
-- UI not refreshing when Range is set for date global filter when using API.
-- Refresh needed to update the visualization after changing date filter.
-- Excel datasource detecting date column as numeric.
-- Export of raw data image results in crash.
-- UI doesn't update when using API to modify date global filter that has just been created.
-
-## 1.7.4 (May 6th, 2025)
-
-### New Features
-
-#### All Platforms
-
-- New data source: Databricks.
-- The field editor has been improved and contains tabs for different option categories.
-- Added a beta features API.
-
-```js
-// Enable beta feature
-$.ig.RevealSdkSettings.betaFeatures.enable("newDonutChart", "newPieChart");
-
-// Disable beta feature
-$.ig.RevealSdkSettings.betaFeatures.disable("newDonutChart", "newPieChart");
-```
-
-- The chart toolbar is now generally available. It can be enabled or disabled through the `showToolbar` property on the RevealView. The default value of this property `false`.
-- Interactive filtering is now generally available. To enable this feature set `interactiveFilteringEnabled` to `true` on the RevealView. By clicking "Filter By" in the tooltip, this feature will highlight the data in the rest of the charts.
-- A new property was added in the visualization editor for slice charts to configure fraction digits of the shown percentages.
-- In data sources that contain a `database` property, data source items derived from it no longer have the `database` property set by default. While this makes setting the RVDataSourceItem's `database` property not a requirement, it is strongly recommended to do so even to set it to null, for security reasons.
-- Support for an optional `sessionToken` parameter was added to the RVAmazonWebServicesCredentials.
-
-#### Node
-
-- The `dashboardProvider` & `dashboardStorageProvider` now use a `Readable` type definition for the stream. This allows for support for more locations than files.
-
-### Bugs
-
-#### All Platforms
-
-- Using single visualization mode showed misaligned UI elements.
-- Visualization filters are not working when changed in the editor.
-- Some number conversions resulted in crash.
-- Setting `PREVIOUS_YEAR` filter is not working with headless export.
-- Excel export fails when dashboard has visualization with error.
-- Wrong date range calculated in dashboard linking for year and quarter hierarchy.
-- Wrong data when expanding or drilling down and a filter on a date field with fiscal year is applied.
-- KPI vs Time % increase incorrect sign when previous number is negative.
-- Headless export missing global & visualization filters on each visualization when targeting PDF.
-- SSAS performance degraded for some visualizations.
-- `NotEquals` and `NotContains` filters do not work in SSAS.
-- The date filter is showing as "Unnamed" in headless export.
-- Interface `IRVDateFilterMenuItem` isn't part of the RevealApi namespace in the "infragistics.reveal.d.ts" file.
-- PowerPoint Exports Showing Token and Luis' Name.
-- Highlighting not working for Dates using Google Analytics and similar data sources.
-- Show totals on tooltip flag ignored.
-- Google Analytics datasource selection crashes if required props are not set.
-- "value.toFixed is not a function" error when placing a calculated field where some result is "Infinity" as a value in a Bar visualization or any of the slice chart visualizations.
-- Visualization description is overlapped by the title.
-- Excel exports with cells with a numeric value of 0 show as empty.
-
-#### Java
-
-- Yellow "configure" banner showing when exporting a visualization using a map visualization.
-
-## 1.7.3 (Mar 4th, 2025)
-
-### New Features
-
-#### All Platforms
-
-- Axis titles are now generally available and can be customized through a dedicated text box by clicking on the visualization field in the editor.
-- Fixed lines are now generally available.
-- Chart visualizations containing a numeric axis have been enhanced to reduce any potential label repetition.
-- A chart's legend can now be positioned at the top or bottom of the visualization, and the alignment can be customized to left, right, or center. These options exist in the Settings tab in the visualization editor.
-- Grid paging now supports sorting through the sort icon found on the column header.
-- Column visualizations will now favor their labels to appear above the column, and bar visualizations will favor their labels to appear to the right of the bar.
-- Further enhancements were made to the hiding and showing of labels on visualizations.
-- The `args.items` property on the `revealView.onDateFilterMenuOpening` is now using and array of `IRVDateFilterMenuItem` objects.
-
-```js
-revealView.onDateFilterMenuOpening = function(args)
-{
- var list = args.items; //List of IRVDateFilterMenuItem objects
- var pos, newItem;
-
- //Add "Last 2 months" to the months section
- pos = list.findIndex(obj => obj.title === "Month to date"); //Last item in the months section
- var lastTwoMonthsRule = new $.ig.RVDateRule($.ig.RVPeriodRelation.Last, 2, $.ig.RVPeriodType.Month);
- newItem = new $.ig.RVDateFilterMenuOption(lastTwoMonthsRule);
- list.splice(pos + 1, 0, newItem);
-
- //Remove the "Today" option
- pos = list.findIndex(obj => obj.title === "Today");
- list.splice(pos, 1);
-
- //Add "First week of 2024" to a new section at the end of the menu
- list.push(new $.ig.RVDateFilterMenuSeparator()); //Add section separator
- var firstWeek24Range = new $.ig.RVDateRange(new Date("2024-01-01"), new Date("2024-01-31"));
- newItem = new $.ig.RVDateFilterMenuOption(firstWeek24Range, "First week of 2024")
- list.push(newItem);
-};
-```
-
-#### Node
-
-- The `puppeteer-core` dependency was updated from `14.1.2` to `24.1.1`.
-
-### Bugs
-
-#### All Platforms
-
-- The property `serialize` on the `RevealView` actually returns a byte array.
-- Blank space above chart in single visualization mode when hiding header, title, and filters.
-- Using `RVIntegratedAuthenticationCredential` results in an error.
-- Visualization filters are hidden after maximizing when `showHeaders` is set to `false`.
-- Analysis Services returns wrong values with some locales/cultures.
-- Crash when selecting "Select values" for a dashboard filter.
-- Conditional formatting with percentage and columns is not working.
-- Incorrect data source ID in `ChangeDataSourceItemAsync`.
-- Japanese characters are garbled in a PDF file created via headless export.
-- Japanese date format is not correct in an exported PDF file.
-- Unwanted numbering "(1)" appears in a dashboard title in a PDF file created via headless export.
-- Date format of the dashboard/visualization filters are not correct in Japanese.
-- Dashboard filters appear on all visualizations when maximized, even if they are not connected.
-- Filters disappears after maximizing visualization.
-- Category labels are in reverse order for stacked bar chart.
-- Error when setting a `DateRule` to a dashboard date filter via API.
-- Error when setting a `DateRule` to a visualization filter via menu in a XMLA visualization.
-- Crash when creating or loading a combo visualization.
-- Dashboard linking from grid to dashboard date filter not working.
-- Missing content-type response header for export-related endpoints.
-- Exceptions in interactive export are not being notified to the user.
-- Data truncation indicator alignment is wrong.
-- Export to Excel fails for Analysis Services with dashboard filter.
-- (Beta) Toolbar icons are misaligned.
-- (Beta) Toolbar buttons require double click to perform an action.
-
-#### Java
-
-- When querying a Date field from a REST datasource during PM hours, the time component will show noon.
-
-## 1.7.2 (Jan 20th, 2025)
-
-### New Features
-
-#### All Platforms
-
-- (Beta) Added support for custom menu items in toolbar using `onMenuOpening`.
-- (Beta) Compare filtered data within the same visualization. Interactive filtering was enhanced to support XMLA data sources. Now, the showing "Filter By" option appears when there are multiple visualizations. Additionally, the choropleth map will highlight the selected country. When a filter is added, it is now read-only to prevent changes. Filtering is also now allowed by date, with the restriction that only one date value can be selected.
-- (Beta) Axis titles can now be controlled in the visualization editor settings pane, with the following options; none, x-axis, y-axis, or both. To enable this functionality set `$.ig.RevealSdkSettings.enableBetaFeatures` to `true`.
-- The PostgreSQL data provider now supports materialized views.
-- The BigQuery data provider now supports data blending.
-- The donut chart visualization now support different center label modes; none, label only, value only, or both label and value.
-- The Snowflake data source dependency Snowflake.Data was updated to v2.0.18.
-- The date filter presets dropdown now supports editing the available date filters and including your own filters through the `onDateFilterMenuOpening` event. Support was also added for semester-based date rules.
-
-```js
-revealView.onDateFilterMenuOpening = customizeDateFilterMenu;
-//revealView.ShowDateFilterDropdown = false; //Hides the button that shows the dropdown altogether
-
-function customizeDateFilterMenu(args)
-{
- //if(![my_access_check]) { //Perform access check to the filter menu
- // args.Cancel = true; //Cancel opening of filter items list
- // return;
- //}
-
- var list = args.Items; //List of RVDateFilterMenuItem objects
- var pos;
-
- //Add "Last 2 months" to the "months" section
- pos = list.getItemIndex("Month to date"); //Obtain the beginning of the "years" section
- var lastTwoMonthsRule = new $.ig.RVDateRule($.ig.RVPeriodRelation.Last, 2, $.ig.RVPeriodType.Month);
- list.insert(pos + 1, lastTwoMonthsRule); //Insert using helper
-
- //Add "Last 2 weeks" to a new section after the "days" section
- pos = list.getItemIndex("Last 7 days");
- list.insertSeparator(pos + 3);
- var lastTwoWeeksOpt = new $.ig.RVDateFilterMenuOption(new $.ig.RVDateRule($.ig.RVPeriodRelation.Last, 2, $.ig.RVPeriodType.Week)); //Instantiate RVDateFilterMenuOption directly
- list.insert(pos + 4, lastTwoWeeksOpt);
-
- //Remove "Today" option
- var todayItem = list.getByTitle("Today");
- list.remove(todayItem);
-
- //Add "First week of 2024" to a new section at the end of the menu
- list.addSeparator();
- var firstWeekOf2024Range = new $.ig.RVDateRange(new Date("2024-01-01"), new Date("2024-01-07")); //Customized description
- list.add(firstWeekOf2024Range, "First week of 2024");
-}
-
-//The new rules also integrate with the existing filters API
-revealView.dashboard.dateFilter = new $.ig.RVDateDashboardFilter(new $.ig.RVDateRule($.ig.RVPeriodRelation.Last, 3, $.ig.RVPeriodType.Day));
-```
-
-- Dashboard filters now try to automatically connect to the visualization, in cases where not possible, the manual connection can be used as before.
-- The `RevealView` now has a `showTitle` property that toggles the visibility of the dashboard title independently of the dashboard header. The default value is `true`.
-- The property `ShowSave` has been added to the `RevealView`. This property determines whether or not the save button is shown. The default value is `true`.
-- Axis grid lines can now be controlled in the visualization editor settings pane, with the following options; none, horizontal, vertical, or both.
-- The `RevealView` now has a `showVisualizationFilters` property that toggles the visibility of the visualization filters when maximized. The default value is `true`.
-
-#### ASP.NET & Node
-
-- Added support for Microsoft’s SQLite implementation on Web, introducing optional encryption. To enable encryption, developers must call `RevealEmbedSettings.EnableEncryption("yourpassword")` with a secure, non-empty password. By default, the legacy SQLite implementation without encryption remains enabled (`RevealEmbedSettings.IsLegacyCacheEnabled = true`). Switching to Microsoft’s implementation without encryption is possible by setting this flag to `false`. Note: `EnableEncryption` automatically disables the legacy implementation. This change marks the start of a transition to deprecate the original SQLite library; feedback during this period is encouraged.
-
-ASP.NET:
-```csharp
-builder.Services.AddControllers().AddReveal(revealSetupBuilder =>
-{
- revealSetupBuilder.AddSettings(
- settings =>
- {
- settings.IsLegacyCacheEnabled = true;
- //settings.EnableEncryption("optional-password"); //this method isn't called by default
- });
-});
-```
-
-Node:
-```js
-const revealOptions = {
- //...
- isLegacyCacheEnabled: true,
- //enableCacheEncryption: true,
- //cacheEncryptionPassword: "optional-password",
-}
-app.use('/', reveal(revealOptions));
-```
-
-### Bugs
-
-#### All Platforms
-
-- `onVisualizationDataPointClicked` not invoked on slice-based (pie, donut, and funnel) and scatter map visualizations.
-- Data may be wrong when using `TODAY`/`NOW` calculated field functions.
-- Error setting maximum axis value.
-- Error in highlighting a widget from an XMLA data source when other widgets are from different XMLA data sources.
-- Filters from XMLA data sources allow auto-connection to widgets using other data sources, which then breaks the visualization.
-- XMLA global filters are not working at all.
-- In some loading scenarios the dashboard's identifier was being set to null.
-- Google Analytics 4 error loading filters and global filter values.
-- The last fixed chart line field can't be removed.
-- SSAS 'FillTotalsInRow' error for a visualization with grand totals.
-- SSAS no data displayed while using some of the chart types.
-- Uncaught TypeError: String.isNullOrEmpty is not a function when adding a filter.
-- Labels sometimes don't hide when there's not enough space.
-- Exception occurs after switching to another chart type after viewing raw data.
-
-## 1.7.1 (Nov 5th, 2024)
-
-### Breaking Changes
-
-#### All Platforms
-
-- `ChartInteractionEventArgs` has been renamed to `TooltipShowingEventArgs`.
-
-### New Features
-
-#### All Platforms
-
-- Chart visualizations will automatically hide 0 value data labels.
-- Custom menu items can now be added to visualization tooltips by adding an `RVTooltipItem` to the `customItems` property on the args pass to the `onTooltipShowing` function.
-
-```js
-revealView.onTooltipShowing = function (args) {
- //A string pointing to the image may be used or an RVImage, such as:
- //var caseIcon = new $.ig.RVImage("https://svgsilh.com/png-512/306879.png", "Case Icon");
- var caseIcon = "https://svgsilh.com/png-512/306879.png";
- var openIcon = "https://svgsilh.com/png-512/41335.png";
-
- if (args.cell.formattedValue == "Digital Security Center")
- {
- args.customItems.push(new $.ig.RVTooltipItem("Critical", "Escalate Incident", caseIcon, (sender, clickArgs) => { console.log("Clicked"); }));
- args.customItems.push(new $.ig.RVTooltipItem("Critical", "Open Incident Report", openIcon, (sender, clickArgs) => { console.log("Clicked"); }));
-
- args.customItems.push(new $.ig.RVTooltipItem("High", "Send Reminder", null, (sender, clickArgs) => { console.log("Clicked"); }));
- args.customItems.push(new $.ig.RVTooltipItem("High", "Assign Lead Investigator", null, (sender, clickArgs) => { console.log("Clicked"); }));
- }
-}
-```
-
-- Positioning improvements made for tooltips showing actions on hover.
-- URL linking now works out of the box without needing to implement `onDashboardSelectorRequested`.
-- Target setting added to the linking dialog for URLs. The target may be specified through `onUrlLinkRequested` by using the `target` property off of the args parameter.
-
-```js
-revealView.onUrlLinkRequested = (args) => {
- args.target = "_blank";
- return "https://www.google.com/";
-};
-```
-
-- Grid paging is now enabled by default for supported data sources when a new visualization is created or an existing visualization is edited and switched to grid.
-- Improvements made to mouse wheel events to better support web component frameworks that make use of the Shadow DOM.
-- Performance improvements for request execution and credential resolution under high load.
-- Simplified the MongoDb match stage to improve the performance of query execution.
-
-#### ASP.NET
-
-- Added support for .NET 8.0.
-- The dependency Npgsql v6.0.9 was updated to v7.0.7.
-- The dependency Snowflake.Data v1.1.4 was updated to v2.0.18.
-- For the Sybase connector, the dependency System.Data.SqlClient v4.7.0 was updated to v4.8.6.
-
-#### Java
-
-- A new method `public InitializeParameterBuilder setCachePath(String path)` was added to `InitializeParameterBuilder` to allow customization of the cache files location.
-
-### Bugs
-
-#### All Platforms
-
-- Treemap tooltip showing incorrect information.
-- The message "There's no data to display" is displayed while data is being loaded for a preview.
-- InMemory data source opens editor directly when there is more than one data source available.
-- Date range calendar is not responsive.
-- Assigning a calculated field as a data filter doesn't work correctly for Postgres.
-- Unable to do 'sort by' with calculated fields.
-- Error sorting by a calculated field on sql based providers with "Process Data on Server" setting.
-- `trunc` function is not working fine inside concatenate.
-- Large number formatting wasn't being applied when configured to a field using the Grid visualization.
-- Wrong date formatting shown in UI when setting selected value for date visualization filter.
-- Date values reporting incorrectly on click/hover events.
-- Combo visualization doesn't calculate lowest axis minimum per axis.
-- Stacked Bar visualization displays duplicate y-axis markers when the decimal is set to 0.
-- Analysis Services dimension structure is not updated from server with Refresh.
-- Interactive filtering is not working for Label Gauge.
-- Switching to raw data and then to another visualization causes crash.
-- Scrolling a paged row grid into view produces a crash.
-- Text visualization shows "There is no data to display".
-- Large numbers in Donut Chart are overflowing rather than shrinking.
-- The `showFilters` property on the RevealView, when set to `false`, does not function as intended.
-- Dragging field from hierarchy to Category crashes application.
-
-#### ASP.NET
-
-- When using Serilog as logger, message parameters are not properly replaced
-
-## 1.7.0 (Sept 10th, 2024)
-
-### Breaking Changes
-
-#### Java
-
-- Spring Boot 2.x is no longer supported. You'll need to use Spring Boot 3.x with JDK 17+ and Jakarta EE 9 complaint server to host your application.
-
-### New Features
-
-#### All Platforms
-
-- (Beta) Fixed lines can now be added to category charts. This beta functionality can be accessed by enabling the `enableBetaFeatures` property on `$.ig.RevealSdkSettings`. The fixed lines section in the editor can use data fields, or one of the highest, lower, average, or fixed value aggregate specialty fields.
-- Added support for dates in visualization filter API. For example, when you have a date-based visualization filter, such as "Last 7 days", you can use the following code to check the date range that the filter evaluated to by checking the `from` and `to` properties of the returning `RVDateRange` object.
-
-```js
-var dateRange = revealView.dashboard.visualizations[0].filters[0].dateRange;
-```
-
-- Server side grid paging is now available without requiring the `enableBetaFeatures` flag in `$.ig.RevealSdkSettings`. Paging is supported in the following providers: SQL Server, MySQL, BigQuery, PostgreSQL, SyBase, Athena, and Oracle. The providers that support stored procedures will have grid paging disabled when a stored procedure is selected as these can't be queried like tables to return a range of rows. Additionally, paging is not available when processing data on server is false, as well as when using blended data.
-- Added visualization-level descriptions. When editing a visualization, you can now enter a description if desired.
-- Visualizations now automatically support dashboard linking. The default functionality can still be overridden using the instructions from the [Linking Dashboards](https://help.revealbi.io/web/linking-dashboards/) topic.
-- Visualizations can now individually be exported to PDF through their overflow menu when maximized.
-- The filter summary page can now be hidden in exports by setting the `includeFiltersSummaryPage` property on the `ExportOptions` object. The exception to this is NodeJS, on that platform the filters summary page is not included regardless of the setting.
-- The background overlay when clicking overflow menus or filter search boxes is now lighter.
-- Added the ability to define hidden fields in Grid visualization, which can be used to define a URL or dashboard link.
-- (Beta) Compare filtered data within the same visualization. The series tooltip includes an option to filter by the selected value. The rest of the visualization will display both the filtered values and the original ones for easy comparison. In this release support was added for funnel, treemap, and gauges. This functionality is currently supported in the following chart types: Column, Bar, Line, Time Series, Area, Step Area, Spline, Stacked Column, Stacked Area, Stacked Bar, Funnel, Treemap, and Gauges. To enable this functionality, set `interactiveFilteringEnabled` to `true` on the RevealView.
-- Image export is now supported in headless export.
-- Sql Server Analysis Services data sources now support the `EffectiveUserName` property, which makes it possible to impersonate the given user. The property can be leveraged to achieve single sign on, e.g. by setting the property in the `IRVDataSourceProvider` implementation with the value of the current user, as set in the userContext.
-
-#### ASP.NET & Node
-
-- Windows Integrated Authentication is now supported in the Sql Server Analysis Services data source. To enable it, return a new instance of `RVIntegratedAuthenticationCredential` in your 'IRVAuthenticationProvider' implementation.
-
-#### Java
-
-- Added support for Spring Boot v3. With this support comes the news that Spring Boot v2.x isn't supported anymore. To use Spring Boot v3 you'll need to use JDK 17+ and will need a Jakarta EE 9 compliant server to host your application.
-- Added ARM64 support for ExportTool
-
-### Bugs
-
-#### All Platforms
-
-- Cached files were not removing .tmp file after adding an entry to the Reveal cache.
-- Misaligned placeholder on textarea fields after changing font-size.
-- Configured sorting in the value or label field not reflected in Pie visualization.
-- Editing a dashboard that includes only a TextBox may lead to a crash.
-- The date filters for "Today" and "Yesterday" show incorrect values in different time zones.
-- Wrong background color on clickable elements when the mouse is down.
-- Excel export generates wrong chart when there are null values for date fields.
-- Stacked column chart colors disappear when using a category.
-- Choropleth charts show some states green.
-- Changing labels using `onFieldsInitializing` is not reflected in the field selection of the dashboard filter.
-- Field formatting loss when changing visualization types and exporting to Excel.
-- Headless export `InitScript` not working for Visualizations.
-- Map shapes loaded from http not https.
-- Dashboard description is added as child of body tag.
-- Dashboard linking doesn't work for null or empty string values.
-- Changing the title or description of a dashboard when using web components causes those fields to revert to defaults.
-- Snowflake metadata browser showing tables from all schemas.
-
-## 1.6.7 (June 26th, 2024)
-
-### New Features
-
-#### All Platforms
-
-- Added API to programmatically access visualization filters (aka Quick Filters) and modify their selected values.
-
-```js
-//Add a selected value, specified by index from the list of available values, to a field given its name.
-function addSelValueToFilter(fieldName, valueIdx) {
- var flt = revealView.dashboard.visualizations[0].filters.getByFieldName(fieldName);
- var valuesPromise = flt.getFilterValues(); //Retrieve the selectable values for the filter
- valuesPromise.then(function (values) {
- var selValues = flt.selectedValues;
- selValues.push(values[valueIdx]); //Add the specified value to the selection
- flt.selectedValues = selValues;
- });
-}
-```
-- (Beta) Compare filtered data within the same visualization. The series tooltip includes an option to filter by the selected value. The rest of the visualization will display both the filtered values and the original ones for easy comparison. Currently supported in the following chart types: Column, Bar, Line, Time Series, Area, Step Area, Spline, Stacked Column, Stacked Area, Stacked Bar. To enable this functionality, set `highlightedFilteringEnabled` to `true` on the RevealView.
-- (Beta) Visualization toolbar was added to quickly access trend-lines, labels, zooming, etc. To enable this functionality, set `enableNewToolbar` to `true` on `$.ig.RevealSdkSettings`.
-- Removed the ability to provide a custom query client-side on SQL-based data sources.
-- Removed RVGoogleAnalyticsDataSource and RVGoogleAnalyticsDataSourceItem as Google will sunset the API for that connector on July 1st, 2024.
-- Added `onDashboardChanged` event to RevealView.
-
-```js
-revealView.onDashboardChanged = function (args: DashboardChangedEventArgs) {
- console.log('Dashboard has changed.');
- console.log('Old Dashboard:', args.oldValue);
- console.log('New Dashboard:', args.newValue);
-
- // Accessing filters for the old and new dashboard
- if(args.oldValue) {
- console.log('Old Dashboard Filters:', args.oldValue.filters);
- }
- if(args.newValue) {
- console.log('New Dashboard Filters:', args.newValue.filters);
- }
-};
-```
-- Tables in the data source dialog are now sorted alphabetically. This change applies to connectors for: SQL Server, MySql, Postgres, Redshift, Oracle, and Snowflake.
-- Headless export now includes grid data.
-- RVGoogleAnalytics4DataSource now includes `accountId` & `propertyId` properties, and deprecating the corresponding properties in RVGoogleAnalytics4DataSourceItem.
-
-#### Java
-
-- Added a default RVDashboardProvider to enable the saving of dashboards to the server without needing to implement a provider.
-
-### Bug Fixes
-
-#### All Platforms
-
-- Excel export crash when exporting a XMLA-based visualization that has no field set in the Label section.
-- Incorrect DataSource ID in ChangeDataSourceItemAsync.
-- Exception caused when a Sparkline visualization was loaded with the dashboard.
-- Exception caused by invalid cast in the Grid visualization.
-- Stored procedures are shown as a valid additional data source in the blending UI.
-- Error reading DateTime.MaxValue from database.
-- Exporting an Excel file with a widget with no title crashes.
-- Excel export containing expanded rows in the Pivot visualization mixes up columns.
-- Null row header when exporting Line chart visualization.
-- Reserved characters aren't filtered correctly when exporting to Excel.
-- Date formatting is not applied on Excel export.
-- Filter editor fields list affects the expression editor fields list.
-- SharePoint O365 datasource doesn't work.
-- Calculated expression `datediff` works with double quotes not single quotes.
-- Wrong BigQuery date precision handling.
-- Editor search bar rendered multiple times.
-- Filtered field list is incorrect after adding a calculated field.
-
-#### ASP.NET & Java
-
-- RDASH properties take precedence over what is set on the server.
-
-#### Java
-
-- ExportTool is created in wrong path.
-
-## 1.6.6 (April 19th, 2024)
-
-### New Features
-
-#### All Platforms
-
-- Added an optional description text box, controlled by the property `showDescription`, to the RevealView.
-- Exporting a grid or pivot to PDF will now generate "overflow" tables containing the columns that would otherwise not fit the width of the page.
-- Grid column width is now respected on PDF export.
-- Improved pivot grid visualization appearance in exports to Excel.
-- (Beta) Added server side paging support to the grid visualization. To enable this functionality and have it appear in the visualization editor Settings pane, set `$.ig.RevealSdkSettings.enableBetaFeatures` to `true`. Paging is supported in the following providers: SQL Server, MySQL, BigQuery, PostgreSQL, SyBase, Athena, and Oracle. The providers that support stored procedures will have grid paging disabled when a stored procedure is selected as these can't be queried like tables to return a range of rows. Additionally, paging is not available when processing data on server is false, as well as when using blended data.
-- `SkiaSharp`, `SkiaSharp.HarfBuzz`, and `SkiaSharp.NativeAssets.Linux` v2.88.3 dependency updated to v2.88.7.
-- A flag was added to the RevealView to control whether or not data tooltip previews in the visualization editor. They are turned off by default to prevent a query getting the first 5 rows. To enable this tooltip, set `isPreviewDataInVisualizationEditorEnabled` to `true`.
-- Blending is now supported in MySql when using process data on server.
-- Radial charts have a new look & feel. The old L&F are deprecated but if needed, they can be restored by setting `RevealSdkSettings.EnableNewCharts = false`.
-- Bar and column charts now include an overlap and gap setting in the visualization editor Settings pane. This allows you to control the amount of overlap between the bars and the amount of space between the groups.
-- The Treemap visualization now shows a tooltip on hover and highlights the node.
-- `Playwright` v1.27.2 dependency updated to v1.42.0.
-
-#### Node
-- Added `dataSourceItemFilter` property to the RevealOptions that allows the filtering of data sources items in the data source dialog
-```ts
-dataSourceItemFilter?: (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => Promise
-```
-
-### Bug Fixes
-
-#### All Platforms
-
-- Pie & Doughnut charts are not displayed when exporting from UI.
-- Deleting a data blend while a calculated field depends on it won't delete the calculated field.
-- Calling a function in Redshift produces an error.
-- Postgres functions not working.
-- RevealView positioning and sizing when using transform:scale style on the container or any ancestor element.
-- Setting `canAddDateFilter` causes exception.
-- Save event `args.isNew` is `false` if dashboard property is set to null or undefined.
-- Stored procedures parameter screen will sometimes pull previous data or nothing at all.
-- Scroll stops working on pop-up element when using search bar.
-- Scatter Map indicators hover region shifts with zoom.
-- Fraction digits are not shown in Choropleth Map tooltip.
-- Filter value above 3000+ is not preserved.
-- Errors with renamed pivot fields in post-calculated field UI.
-- Preview data cell is not being reused causing it to be rendered multiple times.
-- Grids crash on MacOS ARM64.
-- Pie chart legend disappears when there is enough space to show it.
-- MySql blending with Process Data on Server off produces error.
-- Hover event not behaving as intended on slice charts.
-- Grand Totals are not shown in the Pivot Grid visualizations.
-- Incorrect grand totals values shown when using Analysis Services data provider.
-- Dashboard and visualization filters with wrong grand totals when using Analysis Services data provider.
-- Field name modifications lost after reordering values on Pivot Grid.
-- Error "...hierarchy already appears in the Axis1 axis." in Analysis Services.
-- Wrong results when applying 'Top N' filter in Analysis Services.
-- Resource based visualization fetches wrong cache entry.
-- Wrong cache entry is hit when using blending.
-- Can't set focus to search box after the browser goes to background.
-
-## 1.6.4 (February 14th, 2024)
-
-### Breaking Changes
-
-- Property name `showExportToPowerpoint` changed to `showExportToPowerPoint`
-- Scatter and Bubble Charts have a new look & feel. The old look & feel are deprecated, if needed they can be restored by doing `RevealSdkSettings.enableNewCharts = false`
-
-### New Features
-
-#### All Platforms
-
-- Exposed `description` property on `RVDashboard`
-- Added dashboard title to individual Excel sheets
-- Include dashboard filters when exporting to Excel and PDF
-- Removed PostgreSQL stored procedures from tab as they're not currently supported
-
-### Bug Fixes
-
-#### All Platforms
-
-- Athena error message not helpful when missing data source item setting
-- S3 DS "Region has not been set" error when source item provider is not implemented
-- Redshift DS "Host can't be null" error when source item provider is not implemented
-- MySql "unable to connect" error when source item provider is not implemented
-- Postgres error selecting table when data source item provider is not implemented
-- Wrong case-insensitive grid sorting in some scenarios
-- FilterChanged event does not fire when changes are made to selected items
-- Wrong initialization of "Process Data On Server" flag
-- Error on formatting uncaught "TypeError: t.mkFormat is not a function"
-- SQLite exceptions cause crash on M1 Mac/ARM64
-- Incorrect `CURRENTTIMEZONE()` when adding fields from another data source
-- KPI vs Time Now Showing Empty Values in Current Month
-- Malfunction of date type column sorting in grid or pivot type visualizations
-- Multiple popups displayed when exporting while visualizations are being loaded
-- When exporting an 413 error is thrown
-- Multiple instances of RevealView not supported
-- Map location name comparison is case sensitive
-
-#### Java
-
-- Number rounding is not working for SSRS or CSV data
-- MySql setting custom query doesn't work
-- Export timing out and producing error
-
-#### Node
-
-- Current Chromium version not working in Node + MAC M1
-
-## 1.6.3 (January 15th, 2024)
-
-- Patch release to fix dependency conflict for projects targeting **ASP.NET 7.0**. Updated `System.Security.Cryptography.Pkcs` 6.0.3 => 7.0.0
-
-## 1.6.2 (January 5th, 2024)
-
-### New Features
-
-#### All Platforms
-
-- The visualization background color picker was updated to use [Coloris](https://github.com/mdbassit/Coloris). With this enhancement the property `canChangeVisualizationBackgroundColor` has been marked as obsolete because we are now enabling the visibility of background color setting by default. Additionally, the [Spectrum](https://bgrins.github.io/spectrum/) dependency is no longer required.
-- The sqlite storage for cache file `tabulardata.sqlite` is now disabled by default to prevent growing without limit
-- When `$.ig.RevealSdkSettings.enableActionsOnHoverTooltip` is enabled, the actions tooltip is now available on the Pivot visualization. Hovering on a chart visualization will now show the tooltip when within a certain number of pixels from the data point.
-- Support for calculated fields using the following functions on a SQL Server data source with "Process Data on Server" enabled; `fyear`, `and`, `or`, `concatenate`, `replace`, `date`, `time`, `hour`, `minute`, `second`, `formatdate`, and `datevalue`.
-- New client event named `onUrlLinkRequested` added to allow for intercepting and modifying URL links in dashboards at runtime
-
-```javascript
-revealView.onUrlLinkRequested = (args) => {
- return args.url + "&webUpdated=true&cellValue=" + args.cell.value();
-};
-```
-
-- Added ability to export a single visualization using server export.
-
-
-
-
-```cs
-var pdfOptions = new PdfExportOptions();
-
-pdfOptions.Visualizations.Add(new VisualizationExport() {Title = "Sales by Product" });
-pdfOptions.Visualizations.Add(new VisualizationExport("9ea0b74d-8944-474c-5e8c-78ce2b30d16c"));
-
-//or
-pdfOptions.Visualizations.AddByTitle("Sales by Product");
-pdfOptions.Visualizations.AddById("9ea0b74d-8944-474c-5e8c-78ce2b30d16c");
-
-
-await _exporter.ExportToPdf(dashboardId, path + ".pdf", pdfOptions);
-```
-
-
-
-
-
-```java
-ArrayList viz = new ArrayList();
-
-viz.add(new VisualizationExport("9ea0b74d-8944-474c-5e8c-78ce2b30d16c"));
-
-VisualizationExport ve = new VisualizationExport();
-ve.setTitle("Sales by Product");
-viz.add(ve);
-
-PdfExportOptions options = new PdfExportOptions();
-options.setVisualizations(viz);
-
-RevealEngineLocator.dashboardExporter.exportToPdf(dashboardId, null, options ,new ExportStreamCallback() {
- @Override
- public void onSuccess(InputStream stream) {
- try {
- Files.copy(stream, Paths.get(filePath), StandardCopyOption.REPLACE_EXISTING);
- asyncResponse.resume(filePath);
- }
- catch(Exception e) {
- asyncResponse.resume(e);
- }
- }
-
- @Override
- public void onFailure(Exception e) {
- asyncResponse.resume(e);
- }
-});
-```
-
-
-
-
-
-```javascript
-import reveal, { ExportFormat, IDashboardExporter, PdfExportOptions, VisualizationExport } from 'reveal-sdk-node';
-
-var options = new PdfExportOptions();
-var ve = new VisualizationExport();
-ve.title = "Spend vs Budget";
-
-options.visualizations.push(ve);
-
-revealServer.exporter.exportPdf("Marketing", fileName, options, null);
-```
-
-
-
-
-
-- Support added for custom colors on client & server export
-
-
-
-
-```cs
-PdfExportOptions options = new PdfExportOptions();
-
-options.InitScript = @"
- function init(revealView){
- $.ig.RevealSdkSettings.theme = new $.ig.MountainDarkTheme();
-
- revealView.refreshTheme();
-
- revealView.onVisualizationSeriesColorAssigning = function (visualization, defaultColor, fieldName, categoryName) {
- if (categoryName === ""Critical"") {
- return ""rgb(0,0,0)"";
- }
- return defaultColor;
- }
- }";
-
-await _exporter.ExportToPdf(dashboardId, path, options);
-```
-
-
-
-
-
-```java
-PdfExportOptions options = new PdfExportOptions();
-
-options.setInitScript("function init(revealView){\r\n"
- + " $.ig.RevealSdkSettings.theme = new $.ig.MountainDarkTheme(); \r\n"
- + "\r\n"
- + " revealView.refreshTheme(); \r\n"
- + "\r\n"
- + " revealView.onVisualizationSeriesColorAssigning = function (visualization, defaultColor, fieldName, categoryName) {\r\n"
- + " if (categoryName === \"Critical\") {\r\n"
- + " return \"rgb(0,0,0)\";\r\n"
- + " }\r\n"
- + " return defaultColor;\r\n"
- + " }\r\n"
- + " }");
-
-String filePath = rootFileName + dashboardId + "_stream.pdf";
-
-RevealEngineLocator.dashboardExporter.exportToPdf(dashboardId, null, options ,new ExportStreamCallback() {
-
- @Override
- public void onSuccess(InputStream stream) {
- //Do something
- }
-
- @Override
- public void onFailure(Exception e) {
- asyncResponse.resume(e);
- }
-
-});
-```
-
-
-
-
-
-```javascript
-var options = new PdfExportOptions();
-options.initScript = `
-function init(revealView){
- $.ig.RevealSdkSettings.theme = new $.ig.MountainDarkTheme();
-
- revealView.refreshTheme();
-
- revealView.onVisualizationSeriesColorAssigning = function (visualization, defaultColor, fieldName, categoryName) {
- if (categoryName === "Critical") {
- return "rgb(0,0,0)";
- }
- return defaultColor;
- }
-}`;
-
-revealServer.exporter.exportPdf("Cybersecurity_Sample_ManyFilters_Values", "c:\\Temp\\Exports\\export_node.pdf", options, new RVUserContext("someone"));
-```
-
-
-
-
-
-- Added the ability to control edit mode
- - `enterEditMode()`
- - `exitEditMode(applyChanges: boolean)`
- - `onEditModeEntered`
- - `onEditModeExited`
-
-```javascript
-Start editing
-Stop editing (discard)
-Stop editing (save)
-
-
-
-
-
-
-
-```
-- Added a `role` property to `RVSnowflakeDataSoure` to allow for accessing different databases for different connections
-- Added support for stored procedures in the MySQL connector
-- Added a `maxFilterSize` property to `RevealSdkSettings` for controlling the maximum number of values displayed in a dashboard filter
-
-#### ASP.NET
-
-- Added support for setting global filters for headless exports
-
-```cs
-PdfExportOptions options = new PdfExportOptions();
-options.DateFilter = new RVDateDashboardFilter(RVDateFilterType.CustomRange,
- new RVDateRange(new DateTime(2022,4,1), DateTime.Now)
- );
-
-options.Filters.Add(new RVDashboardFilter("incident_severity", new List { "Medium", "Critical" }));
-options.Filters.Add(new RVDashboardFilter("team", new List { "Digital Security Center"}));
-
-await _exporter.ExportToPdf(dashboardId, path, options);
-```
-
-#### ASP.NET & Node
-
-- Added custom query support for the MongoDB connector
-- Added support for data blending (joining) on server for the MongoDB connector
-- Added support for ARM64 for ASP.NET and Node on MacOS and Linux
-
-#### Java
-
-- JavaScript SDK distributions will no longer be available at https://maven.revealbi.io/repository/public/com/infragistics/reveal/sdk/reveal-sdk-distribution/x.y.z/reveal-sdk-distribution-x.y.z-js.zip. Instead, the location will be https://dl.infragistics.com/reveal/libs/x.y.z/reveal-sdk-distribution-js.zip.
-- Added support for setting global filters for headless exports
-
-```java
-PdfExportOptions options = new PdfExportOptions();
-
-RVDateDashboardFilter dateFilter = new RVDateDashboardFilter(RVDateFilterType.CUSTOM_RANGE,
- new RVDateRange( new GregorianCalendar(2022,4,1), new GregorianCalendar())
- );
-
-options.setDateFilter(dateFilter);
-
-options.getFilters().add(new RVDashboardFilter("incident_severity", new ArrayList(Arrays.asList("Medium", "Critical"))));
-```
-
-### Bug Fixes
-
-#### All Platforms
-
-- Setting `canAddDateFilter` caused an exception
-- Redshift filters don't show values besides the 3k limit when using search on select values
-- The text "Show Data Labels" is not translated when viewing field settings in the visualization editor
-- Pivot grid when using the SSAS connector mixed up rows when sorting
-- KPI vs Time - overlapping text when state changes from having data to having no data to display
-- Pointer cursor shows when hovering over "add your first visualization" when there is no click event
-- Localization issue on server side when client is using another language
-- REST connector crashes when no url is provided in client
-- Tooltip showing blank hint in the New Calculated Field window
-- Data source items should not copy over the data source subtitle
-- Grid visualization takes forever to load when there's a lot of data
-- Spanish translation for Snowflake host shows "Anfitrion" and it shouldn't
-- When configuring `chartTypes` the `AreaChart` doesn't seem to respond to any changes
-- Server-side dashboard export problem due to build number appending to version
-
-#### ASP.NET & Node
-
-- The MongoDB connector wasn't filtering documents without a field set when filtering by empty fields.
-
-## 1.6.1 (October 25th, 2023)
-
-### Breaking Changes
-
-#### All Platforms
-
-- Enabling single visualization mode now automatically sets these properties to `false` on the `RevealView`: `showChangeVisualization`, `canEdit`, `showMenu`, `showStatisticalFunctions`, `showFilters`.
-- The `window.revealDisableKeyboardManagement` property is now set to `true` by default. When set to `true` tab focus does not stop on the RevealView.
-- Slice Charts (pie, funnel, and donut) have a new look & feel. The old L&F is deprecated but if needed, they can be restored by doing `RevealSdkSettings.enableNewCharts = false`.
-
-### New Features
-
-#### All Platforms
-
-- Headless export of a individual visualization
-- The `noopener` attribute added to external dashboard links
-- The property `VisualizationMargin` was added to `RevealTheme` for changing the margin between visualizations
-- Improvements to the single visualization; 1) Dashboard title, and breadcrumb control using the properties `showBreadcrumb` & `showBreadcrumbDashboardTitle`, 2) the property `showTitle` was added to `RVVisualization`, and 3) the properties `RevealView`: `showChangeVisualization`, `canEdit`, `showMenu`, `showStatisticalFunctions`, `showFilters` are automatically set to `false` when enabling single visualization mode
-- SQL-based stored procedure output their query to the log and inform of data type mismatches
-
-#### ASP.NET & Node
-
-- New Data Source: MongoDB
-
-### Bug Fixes
-
-#### All Platforms
-
-- Postgres extremely slow when loading list of tables when having hundreds of schemas. Schemas are now filtered on the server to improve performance
-- The `window.revealDisableKeyboardManagement` property is now set to `true` by default. When set to `true` tab focus does not stop on the RevealView.
-- Repeated uses of the chart chooser would cause the app to become non-responsive
-- Scatter map not correctly showing values that use decimal places
-- Can't filter null values
-- RevealView not supporting backup fonts specified in font-family
-- Tables and views tabs not visible when using a dark theme
-- Choropleth chart displays green color on areas with no data when language is not set to English
-- Exception when exiting editor after changing calculated field used with the KPI visualization
-- Treemap not visible in PowerPoint and PDF export
-- Error dialog when using an image or PDF with an `RVWebResourceDataItem`
-- Export options popover doesn't close once an option is selected
-- `RVODataDataSource`'s `url` property was being copied over to the `RVODataDataSourceItem`
-- Assigning color to series offset colors when "Others" category was visible
-
-#### Java
-
-- Headless export not working on Linux
-
-## 1.6.0 (August 28th, 2023)
-
-### Breaking Changes
-
-#### All Platforms
-* Changes in license keys: License key is now required, even for trial mode. The SDK will fail to initialize if the license key is missing or invalid. In addition, the license format has changed and the new format is the only one supported. Request your new license key to your sales rep. Trial license keys are available by registering [here](https://www.revealbi.io/download-sdk).
-* `availableChartTypes` property has been removed. It's replacement is the 'chartTypes' property described in the 'New Features' section below.
-* The dependency to 'libgdiplus' has been removed to enhance our cross-platform performance.
-* The SDK no longer depends on Quill.js.
-
-#### ASP.NET
-* Most data sources have been removed from the core package. They're now available as separate packages. Data Source packages are **REQUIRED** to be [registered](/web/datasources#installing-data-sources). The information about the supported data sources and the corresponding add-in nuget packages can be found [here](/web/datasources#supported-data-sources).
-* Reveal now requires .net 6.0 or newer.
-* Data related objects have been moved into the `Reveal.Sdk.Data` namespace
-* Data Source objects (ex: RVSqlServerDataSource) have been moved into their respective namespaces (ex: `Reveal.Sdk.Data.Microsoft.SqlServer`)
-
-### New Features
-
-#### All Platforms
-
-* Ability to add custom visualization as Chart Types in the visualization editor. The new `chartTypes' property allows this, as well as modifying the icon, title and grouping of existing chart types, or making them unavailable:
-
-```
-//Update existing configuration
-var barConfig = revealView.chartTypes.find(x => x.chartType == 'BarChart');
-barConfig.icon = 'https://host:port/images/bar-chart.png';
-barConfig.groups = ["Enterprise Visualizations", "HR", "Category"];
-
-//Add pre-configured custom visualization
-revealView.chartTypes.push({
- title: "Custom Visualization",
- url: "https://host:port/customViz.html",
- icon: "https://host:port/icon.png",
- groups: ["HR"]
- });
-
-//Delete Grid configuration
-var gridConfig = revealView.chartTypes.find(x => x.chartType == 'Grid');
-revealView.chartTypes.splice(revealView.chartTypes.indexOf(gridConfig), 1);
-```
-
-* (Beta) Chart actions available while hovering the mouse. Turn on using `$.ig.RevealSdkSettings.enableActionsOnHoverTooltip = true`.
-* Calculated fields expression language now support decimals specified without a leading '0' (e.g. '.5' meaning '0.5').
-* Added support in BigQuery data source for the following calculated-fields functions: YEAR, QUARTER, MONTH, DAY, HOUR, MINUTE, SECOND, REPLACE, WEEKDAY, MONTHNAME, MONTHSHORTNAME, EMPTY, RANDBETWEEN.
-* Improved Copy & Paste. Now it works across browser tabs / pages refreshes.
-* Make the RevealView resize itself when its container is resized.
-* Add Stored procedure support to Oracle data source (not yet available in Java).
-* Allow joining Athena datasources.
-
-### Bug Fixes
-
-#### All Platforms
-* Pushing multiple menu items with menuItem action functions calls the last action function.
-* Donut chart doesn't show legend for `` values but shows a section for them.
-* Export for Pdf is not taking the assigned Theme.
-* Unable to click text "X Selected"/"Show All" on a filter.
-* Cell background is not full wide on filters for text "X Selected"/"Show All".
-* Using custom theme font doesn't affect the KPI visualization.
-* "No providerid specified..." error in Oracle data source defined on javascript client.
-* The position of the search bar in the data selection view is not reset, in a certain scenario.
-* Search table on data source dialog causes error/crash after scrolling tables.
-* DefaultRefreshRate of 0 prevents image/pdf web resource from loading.
-* Number formatting is not applied in Sparkline.
-* Tooltip for gauge does not display number formatting.
-* The "NUMERIC" data type in BigQuery isn't properly supported and causes Error.
-* BigQuery is missing Quarter aggregation.
-* The "MOD" function in BigQuery does not allow you to use two different types of numeric data (e.g. float64 and int64).
-* 'Function does not exist' error in postgres when schema is not set in the datasourceItem.
-* Statistical functions are not displayed when viewing data as grid.
-* Export xlsx for charts visualization is not correct when changing them in reveal sdk.
-* Inconsistent checkbox state in when scrolling a large list of data sets in BigQuery add data source screen.
-* BigQuery DataSourceItem doesn't work if the project id is set only on the DS.
-* When data is obtained from an excel cell that has a custom format that includes any of the letters 'y', 'm', 'd' or 'h' it is always interpreted as date type.
-* Treemap does not respect number formatting.
-* Number formatting is not displayed in Financial chart tooltip.
-* Number formatting is not displayed in the tooltip of the Radial chart.
-* Athena and BigQuery don't show the 100k cell limit warning.
-* Math function Log stopped working for Athena.
-
-#### ASP.NET
-* Export -both headless and interactive- doesn't work on linux.
-* Fix issue when Microsoft.Data.SqlClient >= 5.0.0 is used by a Asp.net project.
-* Verify Credentials error on Oracle data source.
-
-#### Node
-* Request headers do not work for RVRESTDataSource when using the NodeSDK.
-
-#### Java
-* Encoding issues in data read from BigQuery if the system's default charset is not UTF-8.
-* Getting null IRVUserContext in IRVDataSourceProvider.changeDataSourceItem in createwidget API.
-
-## 1.5.0 (May 4th, 2023)
-
-### Breaking Changes
-* In some scenarios, the information set in IRVDataSourceProvider was visible to the client and also stored in the dashboard file. That was not a desirable behavior, but it also produced some hard to reproduce issues when editing dashboards. Starting on 1.5.0, the datasource information set in IRVDataSourceProvider does not leave the server. Depending on the specific implementation of IRVDataSourceProvider, this might have a big impact. To make sure your implementation is right, generally speaking, make sure that if you have a non-trivial implementation of ChangeDataSource, then you also implement ChangeDataSourceItem, and that this ChangeDataSourceItem invokes ChangeDataSource on the dataSourceItem.dataSource object. In addition, when working with CSV, Json, Excel files coming from datasources like S3, Rest, etc., please take into account that you might receive a call to ChangeDataSourceItem with the csv/json/excel datasource item, and in that case you must make sure that the dataSourceItem.resourceItem is properly 'changed', which also means invoking ChangeDataSource for dataSourceItem.resourceItem.dataSource.
-* IRVDataSourceProvider now requires the implementation of ChangeDataSourceAsync.
-* We're no longer releasing an installer for the asp.net SDK. To get started, check the documentation at https://help.revealbi.io/web/getting-started-server/
-
-### Bug Fixes
-
-#### All Platforms
-* Headless export: landscape is now the default orientation.
-* Fixes and performance improvements for the new category charts
-* Setting the Host property in MsSql provider in the IRVDataSourceProvider but not in the client causes error
-* Redshift queries fail if the Schema property is not set in the dataSourceItem (should use the default, 'public', schema)
-* Financial charts were not working properly
-* host property had always a value of null in IRVAuthenticationProvider for RVSqlServerDataSource.
-* All database datasources required the Database property to be set in the DataSourceItem (even if it was set in the DataSource). Now the property has been deprecated in the DataSourceItem, and setting it in the Database just works.
-* Opening a linked dashboard caused a crash
-* Treemap showing Redshift/Postgres data failed
-* Error using Standard Deviation aggregation with Redshift or Postgres
-* Setting a different Sheet for an Excel datasource using IRVDataSourceProvider didn't work
-* Error if clicking in blank space between the title and statistics icon while in Visualization Editor mode.
-* Cannot change the title of a new visualization (when it is initialized as a blank title)
-* If a JSON attribute name begins with a number the extracted value is always empty
-* Data Blending field panels don't scroll with mouse wheel or trackpad
-* Unable to move filter when there are 10+ of them in edit mode
-* Sybase ds item wrapper with configured custom query property still returns all data
-* Replacing Analysis Services data source doesn't work
-* Dynamics CRM - NRE is thrown when you try to get data using a data source item
-* An exception is thrown when no image is set in DashboardEmptyState
-* RVReportingServicesDataSourceItem seems to be missing properties for configuring parameters
-* It is not possible to render a pdf report using RVReportingServicesDataSourceItem
-* "No Url specified for web resource" error replacing DataSource WebResource URL
-* Calls to `IRVDataSourceProvider.ChangeDataSourceItemAsync` always has null for dashboardId argument
-* KPI Indicators - "There's no data to display" has wrong style
-* Some global filters are being reset when start selecting their options
-* Null Reference Exception thrown when using a specific Excel sheet with custom styles.
-* MySQL timestamp columns are read as UTC datetimes when they're actually in the session timezone.
-* The nuget files contains more dependencies than it should
-* Very bad performance on Redshift blending when using a RVRedshiftDataSourceItem
-* Error when using InMemory datasource in SDK
-* Error in Salesforce visualization when using Lead's ConvertedDate as a filter
-* S3 Excel resource item not working after replace DS/DSI scenario (app kept in loading after sheet selection when creating widget)
-* The Rest API URL should not be shown in errors
-* Change RVDashboard.visualizations type in d.ts to VisualizationsArray
-
-#### Node
-* Several improvements on headless export for the Node.js SDK. Now it is available for Linux/MacOS.
-
-#### Java
-* 'Schema' property for the Snowflake DataSource was being ignored.
-* Asset visualization not working when using the java SDK.
-* Redshift queries for tables using column of type 'timestamptz' failed if it contained null values.
-* MaxDownloadSize limit is being ignored in Java SDK
-
-## 1.4.0 (Feb-2023)
-
-### Breaking Changes
-* Category Charts have a new look & feel. The old L&F is deprecated but if needed for whatever reason, they're can be restored by doing `revealSdkSettings.enableNewCharts = false`.
-* Subtitles for Data Source Items are no longer autogenerated. Only the Subtitle property is considered.
-
-### New Features
-
-#### All Platforms
-* New API `onFieldsInitializing` that makes it possible to customize the list of fields shown in the visualization editor, by removing, renaming or reordering fields. Usage example:
-```
-revealView.onFieldsInitializing = function (args) {
- args.fields = args.fields.filter(f => !["Avg.CPC", "Avg. CPC"].some(e => e == f.name));
-};
-```
-* BigQuery, Snowflake and Athena now support the `CustomQuery` property
-* Snowflake - Allow setting `Warehouse` property from sdk
-
-#### Node
-* (Beta) Headless Export for node.js SDK. Currently, it only works on the Windows platform.
-* `RVHeadersDataSourceCredentials` now available for Node.js SDK.
-
-### Bug Fixes
-
-#### All Platforms
-* When trying to join a third dataset the app freezes
-* Using a RVDashboardDataSource causes a crash when the Id property is not set (Web only)
-* Inconsistent time part for dates sent in the range parameter of onDateFilterChanged
-* Inconsistent day shown in the global filter range selector, when using 'Today' or 'Yesterday' two different days were displayed.
-* Data blending editor doesn't show the field used for joining when that field comes from a previous data blending.
-* The Athena DataSourceItem errors out unless you specify the Database property on the Client (Web only)
-* RVSnowflakeDataSourceItem Does Not Work
-
-#### ASP.NET
-* Headless export fails if DocumentExportOptions is used.
-
-#### Java
-* "Fail to retrieve row count for first arrow chunk" error in Snowflake (Java only)
-
-## 1.3.1 (Jan-2023)
-
-### BREAKING CHANGES
-
-#### ASP.NET
-- The `Reveal.Sdk.Web.AspNetCore.Trial` nuget package has been **deprecated** and is **no longer updated**.
-- The new `Reveal.Sdk.AspNetCore` nuget package is now available on [nuget.org](https://www.nuget.org/packages/Reveal.Sdk.AspNetCore), and will work as both a Trial and Licensed version. To unlock the Trial, set the license key in the SDK.
-- The license key is now set in the initialization parameters of the Reveal SDK (previously, this was done in the installer). Here's how to set it:
-
-```cs
-services
- .AddMvc()
- .AddReveal(builder =>
- {
- builder
- .AddSettings(settings =>
- {
- settings.License = "XYZ123";
- });
- });
-```
-
-#### Node
-- Renamed `RVUserNamePasswordDataSourceCredential` to `RVUsernamePasswordDataSourceCredential`. Changed the uppercase "N" to lowercase "n".
-
-### Bug Fixes
-
-#### All Platforms
-- Several improvements to headless export:
- - Improved API.
- - Visualization using Maps now show correctly.
- - Decreased memory footprint when running.
- - Fixed issue where a missing title in the dashboard would make the export fail.
-- Fixed issue: when creating a REST datasource using parameters. If the back button was pressed, values were already populated but they were not really applied.
-- Fixed issue: Dashboard filter list of available values was always refreshed when opening a dashboard, no matter what expiration setting was set.
-- Fixed issue: Dashboard filter expiration value was not saved.
-- Fixed issue: Dashboard horizontal filter lost when maximizing and then restoring.
-- Fixed issue: the kebab menu in the dashboard view was not reachable using the keyboard (tab).
-- Fixed issue: Dashboard linking stops working after selecting a dashboard filter in the linked visualization.
-- Fixed issue: Wrong value shown for Scatter Map mouseover tooltip.
-- Fixed issue: Cancelling the MenuOpening event didn't really cancel.
-- Fixed issue: In ChangeDataSourceItemAsync method, the userContext parameter was coming with null value.
-
-#### Java
-- Fixed issue: "Login failed due to client TLS version..." error when connecting to mssql in Azure.
-- Fixed issue: Could not add Google Analytics 4 interactively.
-
-## 1.3.0 (Nov-2022)
-
-### New Features
-- Export dashboards from the backend:
-
-
-
-
-```cs
-var pdfStream = await dashboardExporter.ExportToPdf(dashboardId);
-```
-
-
-
-
-
-```java
-RevealEngineLocator.dashboardExporter.exportToPdf(dashboardId, new ExportStreamCallback() {
- @Override
- public void onSuccess(InputStream stream) {
- // result PDF to be read from the stream parameter
- }
- @Override
- public void onFailure(Exception e) {
- // the export failed :(
- }
-});
-```
-
-
-
-
-
-
-- New Data Source: Google Analytics 4.
-- Interactive Dashboard Filtering: Filter all visualizations using the same data source by clicking on a chart or pivot table data point. Enable with: `revealView.interactiveFilteringEnabled = true`.
-- Methods containing a callback now include an additional signature allowing for promise method handling:
-
-```javascript
-$.ig.RevealUtility.loadDashboard(dashboardId).then(dashboard => {
- revealView.dashboard = dashboard;
-});
-```
-
-If using async/await:
-
-```javascript
-let dashboard = await $.ig.RevealUtility.loadDashboard(dashboardId);
-revealView.dashboard = dashboard;
-```
-
-- Manually loading of default fonts using the `ensureFontsLoadedAsync` method from `$.ig.revealSdkSettings` is no longer required.
-- New function 'DateDiff' for calculated fields.
-
-### Bug Fixes
-
-#### All Platforms
-- Fix error when filtering boolean values in Postgres & Redshift ("operator does not exist")
-- Fix localization not working when the locale contains an hyphen
-- Fix for `IRVDataSourceProvider.ChangeDataSourceItem` not invoked when creating a new visualization from a REST data source.
-- Removed new http header 'XRID' that was accidentally added in v1.2.3 and was causing issues with CORS.
-
-#### Java
-- sdk-ext: updated commons-text library.
-- Fix for very slow response times when processing some Excel files.
-
-
+## 2.0.0 (May 6th, 2026)
diff --git a/docs/web/upgrade-guide-v2.0.0.md b/docs/web/upgrade-guide-v2.0.0.md
new file mode 100644
index 00000000..b482a9c1
--- /dev/null
+++ b/docs/web/upgrade-guide-v2.0.0.md
@@ -0,0 +1,49 @@
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Upgrading to 2.0.0
+
+This guide covers the breaking changes introduced in Reveal SDK 2.0 and the steps required to upgrade an existing 1.x application to 2.0.
+
+:::note Coming from a version older than 1.8.4?
+First follow the [1.x upgrade guides in the 1.8.4 documentation](/1.8.4/web/upgrade-guide-v1.6.0/) to bring your project up to 1.8.4, then return to this page to complete the move to 2.0.
+:::
+
+## Overview of Breaking Changes
+
+
+
+## Step-by-Step Upgrade
+
+### 1. Update package versions
+
+
+
+### 2. Update API usage
+
+
+
+
+
+ ```csharp
+ // before
+ ```
+
+
+ ```csharp
+ // after
+ ```
+
+
+
+### 3. Update configuration
+
+
+
+## Removed APIs
+
+
+
+## Need help?
+
+If you run into issues during the upgrade, [open an issue](https://github.com/RevealBi/Reveal.Sdk/issues) or reach out via the in-app chat.
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index c28c2a22..1aee97eb 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -6,7 +6,14 @@ import replace from './plugins/remark/replace-variables';
import apiDocs from './plugins/remark/api-docs';
import { chatButtonSettings, searchBarSettings } from './inkeep.config';
-const sdkVersion = "1.8.4";
+// SDK version: exact build referenced by CodePreview's CDN URL — must match a real release.
+const sdkVersion = "2.0.0";
+const sdkVersion_v1 = "1.8.4";
+
+// Docs version: human-readable label shown in the page version badge ("Version: X").
+// Bump this as the 2.x docs evolve — no need to archive the version.
+const docsVersion = "2.0";
+const docsVersion_v1 = "1.8.4";
const config: Config = {
title: 'Reveal',
@@ -18,9 +25,18 @@ const config: Config = {
favicon: 'img/favicon.ico',
trailingSlash: true,
- // this is used in places like the CodePreview component to load the correct SDK version
+ // Per-version values exposed to client components. Keyed by docs version id ("current" or the snapshot label).
customFields: {
sdkVersion: sdkVersion,
+ sdkVersions: {
+ current: sdkVersion,
+ "1.8.4": sdkVersion_v1,
+ },
+ // Used by the swizzled DocVersionBadge to show "Version: " on each page.
+ docsVersions: {
+ current: docsVersion,
+ "1.8.4": docsVersion_v1,
+ },
},
// GitHub pages deployment config.
@@ -59,15 +75,31 @@ const config: Config = {
breadcrumbs: false,
sidebarPath: './sidebars.ts',
editUrl: 'https://github.com/RevealBi/documentation/tree/master/',
+ lastVersion: 'current',
+ versions: {
+ current: {
+ label: 'Current',
+ path: '',
+ },
+ '1.8.4': {
+ label: '1.8.4',
+ path: '1.8.4',
+ },
+ },
beforeDefaultRemarkPlugins: [
[apiDocs, {}]
],
remarkPlugins: [
[npm2yarn, { sync: true }],
[replace, {
- variables: [
- { name: "sdkVersion", value: sdkVersion }
- ]
+ variablesByVersion: {
+ current: [
+ { name: "sdkVersion", value: sdkVersion }
+ ],
+ "1.8.4": [
+ { name: "sdkVersion", value: sdkVersion_v1 }
+ ],
+ },
}],
],
},
@@ -120,6 +152,10 @@ const config: Config = {
{ label: "Videos", to: "https://www.youtube.com/@RevealBI" }
]
},
+ {
+ type: "docsVersionDropdown",
+ position: "right",
+ },
{
type: "localeDropdown",
position: "right"
diff --git a/i18n/en/docusaurus-plugin-content-docs/current.json b/i18n/en/docusaurus-plugin-content-docs/current.json
index bd5ed2d7..ce73ac0f 100644
--- a/i18n/en/docusaurus-plugin-content-docs/current.json
+++ b/i18n/en/docusaurus-plugin-content-docs/current.json
@@ -1,6 +1,6 @@
{
"version.label": {
- "message": "Next",
+ "message": "Current",
"description": "The label for version current"
},
"sidebar.webSidebar.doc.Overview": {
@@ -223,10 +223,6 @@
"message": "Release Notes",
"description": "The label for category 'Release Notes' in sidebar 'webSidebar'"
},
- "sidebar.webSidebar.doc.1.6.0 Upgrade Guide": {
- "message": "1.6.0 Upgrade Guide",
- "description": "The label for the doc item '1.6.0 Upgrade Guide' in sidebar 'webSidebar', linking to the doc web/upgrade-guide-v1.6.0"
- },
"sidebar.webSidebar.doc.PostgreSQL": {
"message": "PostgreSQL",
"description": "The label for the doc item 'PostgreSQL' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/postgres"
diff --git a/i18n/ja/docusaurus-plugin-content-docs/current.json b/i18n/ja/docusaurus-plugin-content-docs/current.json
index 42ed7b2a..fb4b4f24 100644
--- a/i18n/ja/docusaurus-plugin-content-docs/current.json
+++ b/i18n/ja/docusaurus-plugin-content-docs/current.json
@@ -1,6 +1,6 @@
{
"version.label": {
- "message": "Next",
+ "message": "Current",
"description": "The label for version current"
},
"sidebar.webSidebar.doc.Overview": {
@@ -223,10 +223,6 @@
"message": "リリース ノート",
"description": "The label for category 'Release Notes' in sidebar 'webSidebar'"
},
- "sidebar.webSidebar.doc.1.6.0 Upgrade Guide": {
- "message": "1.6.0 アップグレード ガイド",
- "description": "The label for the doc item '1.6.0 Upgrade Guide' in sidebar 'webSidebar', linking to the doc web/upgrade-guide-v1.6.0"
- },
"sidebar.webSidebar.doc.PostgreSQL": {
"message": "PostgreSQL",
"description": "The label for the doc item 'PostgreSQL' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/postgres"
@@ -539,6 +535,10 @@
"message": "ダッシュボードの読み込み",
"description": "The label for the doc item 'Loading Dashboards' in sidebar 'webSidebar', linking to the doc web/web-component-wrappers/reveal-view/loading-dashboards"
},
+ "sidebar.webSidebar.doc.Accessibility": {
+ "message": "アクセシビリティ",
+ "description": "The label for the doc item 'Accessibility' in sidebar 'webSidebar', linking to the doc web/accessibility"
+ },
"sidebar.webSidebar.doc.Beta Features": {
"message": "ベータ機能",
"description": "The label for the doc item 'Beta Features' in sidebar 'webSidebar', linking to the doc web/beta-features"
diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/web/accessibility.md b/i18n/ja/docusaurus-plugin-content-docs/current/web/accessibility.md
new file mode 100644
index 00000000..04104920
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/current/web/accessibility.md
@@ -0,0 +1,38 @@
+# アクセシビリティ
+
+## キーボード アクセシビリティ
+
+Reveal SDK は表示モードでキーボード ナビゲーションをサポートしており、マウスを使用せずにダッシュボードを操作できます。すべてのインタラクティブ要素には、フォーカス インジケーターが表示され、論理的なタブ順序に従います。
+
+### ダッシュボードのナビゲーション
+
+ダッシュボードのナビゲーションと操作には、以下のキーボード ショートカットを使用します:
+
+| キー | 操作 |
+|-----|--------|
+| **Tab** | 次のインタラクティブ要素にフォーカスを移動する |
+| **Shift + Tab** | 前のインタラクティブ要素にフォーカスを移動する |
+| **矢印キー** | ダッシュボード上の視覚化間、またはリスト、グリッド、メニュー内を移動する |
+| **Enter** | フォーカスされたコントロールをアクティブにする (例: 視覚化を最大化する、選択を確認する、メニューを開く) |
+| **Space** | フォーカスされた要素のチェックボックスを切り替える |
+| **Escape** | 開いているダイアログ、メニュー、またはポップアップを閉じる |
+
+### ダッシュボード表示のナビゲーション
+
+ダッシュボードが表示モードのとき:
+
+- **矢印キー**を使用して、ダッシュボード上の視覚化間でフォーカスを移動できます。
+- フォーカスされた視覚化で **Enter** を押すと、最大化ボタンにフォーカスが移動します。
+
+### リストおよびグリッド コンポーネント
+
+リスト、ドロップダウン、またはグリッドベースのコンポーネント内にフォーカスがある場合は、**矢印キー**を使用してアイテム間を移動します。**Enter** を押してフォーカスされたアイテムを選択します。
+
+### フォーカスの動作
+
+- フォーカスがインターフェースを移動する際、常に視覚的に表示されます。
+- キーボード ナビゲーションの順序は、論理的で直感的なシーケンスに従います。
+
+### 制限事項
+
+視覚化コンポーネント内でのキーボード ナビゲーションは、散布マップ、グリッド、およびスパークラインでのみサポートされています。その他のすべての視覚化タイプでは、キーボードからアクセス可能なのは視覚化ヘッダーのみです。ピボットのサポートは今後のリリースで予定されています。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4.json b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4.json
new file mode 100644
index 00000000..a6ed705c
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4.json
@@ -0,0 +1,714 @@
+{
+ "version.label": {
+ "message": "1.8.4",
+ "description": "The label for version 1.8.4"
+ },
+ "sidebar.webSidebar.doc.Overview": {
+ "message": "概要",
+ "description": "The label for the doc item 'Overview' in sidebar 'webSidebar', linking to the doc web/overview"
+ },
+ "sidebar.webSidebar.doc.ASP.NET Web API": {
+ "message": "ASP.NET Web API",
+ "description": "The label for the doc item 'ASP.NET Web API' in sidebar 'webSidebar', linking to the doc web/getting-started-server"
+ },
+ "sidebar.webSidebar.doc.Node.js": {
+ "message": "Node.js",
+ "description": "The label for the doc item 'Node.js' in sidebar 'webSidebar', linking to the doc web/getting-started-server-node"
+ },
+ "sidebar.webSidebar.doc.Node.js - TypeScript": {
+ "message": "Node.js - TypeScript",
+ "description": "The label for the doc item 'Node.js - TypeScript' in sidebar 'webSidebar', linking to the doc web/getting-started-server-node-typescript"
+ },
+ "sidebar.webSidebar.doc.Spring Boot - Jersey": {
+ "message": "Spring Boot - Jersey",
+ "description": "The label for the doc item 'Spring Boot - Jersey' in sidebar 'webSidebar', linking to the doc web/getting-started-spring-boot-jersey"
+ },
+ "sidebar.webSidebar.doc.Angular": {
+ "message": "Angular",
+ "description": "The label for the doc item 'Angular' in sidebar 'webSidebar', linking to the doc web/getting-started-angular"
+ },
+ "sidebar.webSidebar.doc.ASP.NET Core Web App": {
+ "message": "ASP.NET Core Web App",
+ "description": "The label for the doc item 'ASP.NET Core Web App' in sidebar 'webSidebar', linking to the doc web/getting-started-aspnet"
+ },
+ "sidebar.webSidebar.doc.HTML/JavaScript": {
+ "message": "HTML/JavaScript",
+ "description": "The label for the doc item 'HTML/JavaScript' in sidebar 'webSidebar', linking to the doc web/getting-started-javascript"
+ },
+ "sidebar.webSidebar.doc.React": {
+ "message": "React",
+ "description": "The label for the doc item 'React' in sidebar 'webSidebar', linking to the doc web/getting-started-react"
+ },
+ "sidebar.webSidebar.doc.Creating": {
+ "message": "作成",
+ "description": "The label for the doc item 'Creating' in sidebar 'webSidebar', linking to the doc web/creating-dashboards"
+ },
+ "sidebar.webSidebar.doc.Loading": {
+ "message": "読み込み",
+ "description": "The label for the doc item 'Loading' in sidebar 'webSidebar', linking to the doc web/loading-dashboards"
+ },
+ "sidebar.webSidebar.doc.Filtering": {
+ "message": "フィルタリング",
+ "description": "The label for the doc item 'Filtering' in sidebar 'webSidebar', linking to the doc web/filtering-dashboards"
+ },
+ "sidebar.webSidebar.doc.Editing": {
+ "message": "編集",
+ "description": "The label for the doc item 'Editing' in sidebar 'webSidebar', linking to the doc web/editing-dashboards"
+ },
+ "sidebar.webSidebar.doc.Saving": {
+ "message": "保存",
+ "description": "The label for the doc item 'Saving' in sidebar 'webSidebar', linking to the doc web/saving-dashboards"
+ },
+ "sidebar.webSidebar.doc.Linking": {
+ "message": "リンク",
+ "description": "The label for the doc item 'Linking' in sidebar 'webSidebar', linking to the doc web/linking-dashboards"
+ },
+ "sidebar.webSidebar.doc.Exporting": {
+ "message": "エクスポート",
+ "description": "The label for the doc item 'Exporting' in sidebar 'webSidebar', linking to the doc web/exporting-dashboards"
+ },
+ "sidebar.webSidebar.doc.Theming": {
+ "message": "テーマ設定",
+ "description": "The label for the doc item 'Theming' in sidebar 'webSidebar', linking to the doc web/theming-dashboards"
+ },
+ "sidebar.webSidebar.doc.Excel File": {
+ "message": "Excel ファイル",
+ "description": "The label for the doc item 'Excel File' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/excel-file"
+ },
+ "sidebar.webSidebar.doc.In Memory Data": {
+ "message": "インメモリ データ",
+ "description": "The label for the doc item 'In Memory Data' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/in-memory-data"
+ },
+ "sidebar.webSidebar.doc.MS SQL Server": {
+ "message": "MS SQL Server",
+ "description": "The label for the doc item 'MS SQL Server' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/ms-sql-server"
+ },
+ "sidebar.webSidebar.doc.Authentication": {
+ "message": "認証",
+ "description": "The label for the doc item 'Authentication' in sidebar 'webSidebar', linking to the doc web/authentication"
+ },
+ "sidebar.webSidebar.doc.User Context": {
+ "message": "ユーザー コンテキスト",
+ "description": "The label for the doc item 'User Context' in sidebar 'webSidebar', linking to the doc web/user-context"
+ },
+ "sidebar.webSidebar.doc.Obfuscate Connection Data": {
+ "message": "接続データの難読化",
+ "description": "The label for the doc item 'Obfuscate Connection Data' in sidebar 'webSidebar', linking to the doc web/obfuscate-connection-data"
+ },
+ "sidebar.webSidebar.doc.Maximizing Visualizations": {
+ "message": "表示形式の最大化",
+ "description": "The label for the doc item 'Maximizing Visualizations' in sidebar 'webSidebar', linking to the doc web/maximizing-visualizations"
+ },
+ "sidebar.webSidebar.doc.Responding to Click Events": {
+ "message": "クリック イベントへの応答",
+ "description": "The label for the doc item 'Responding to Click Events' in sidebar 'webSidebar', linking to the doc web/click-events"
+ },
+ "sidebar.webSidebar.doc.Tooltips": {
+ "message": "ツールチップ",
+ "description": "The label for the doc item 'Tooltips' in sidebar 'webSidebar', linking to the doc web/tooltips"
+ },
+ "sidebar.webSidebar.doc.Known Issues": {
+ "message": "既知の問題",
+ "description": "The label for the doc item 'Known Issues' in sidebar 'webSidebar', linking to the doc web/known-issues"
+ },
+ "sidebar.webSidebar.doc.Third-Party Software": {
+ "message": "サードパーティ ソフトウェア",
+ "description": "The label for the doc item 'Third-Party Software' in sidebar 'webSidebar', linking to the doc web/third-party-software"
+ },
+ "sidebar.webSidebar.doc.Data Limits": {
+ "message": "データ サイズの制限",
+ "description": "The label for the doc item 'Data Limits' in sidebar 'webSidebar', linking to the doc web/data-size-limits"
+ },
+ "sidebar.webSidebar.category.General": {
+ "message": "一般",
+ "description": "The label for category 'General' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Working with Data Sources": {
+ "message": "データ ソースの使用",
+ "description": "The label for category 'Working with Data Sources' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Release Information": {
+ "message": "リリース情報",
+ "description": "The label for category 'Release Information' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Getting Started - Server": {
+ "message": "作業の開始 - サーバー",
+ "description": "The label for category 'Getting Started - Server' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Getting Started - Client": {
+ "message": "作業の開始 - クライアント",
+ "description": "The label for category 'Getting Started - Client' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Data Sources": {
+ "message": "データ ソース",
+ "description": "The label for category 'Data Sources' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Using the Reveal View": {
+ "message": "Reveal ビューの使用",
+ "description": "The label for category 'Using the Reveal View' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Visualizations": {
+ "message": "表示形式",
+ "description": "The label for category 'Visualizations' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Installation": {
+ "message": "インストール",
+ "description": "The label for category 'Installation' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.doc.System Requirements": {
+ "message": "システム要件",
+ "description": "The label for the doc item 'System Requirements' in sidebar 'webSidebar', linking to the doc web/system-requirements"
+ },
+ "sidebar.webSidebar.doc.Adding a License Key": {
+ "message": "ライセンス キーの追加",
+ "description": "The label for the doc item 'Adding a License Key' in sidebar 'webSidebar', linking to the doc web/adding-license-key"
+ },
+ "sidebar.webSidebar.doc.Install Server SDK": {
+ "message": "Server SDK のインストール",
+ "description": "The label for the doc item 'Install Server SDK' in sidebar 'webSidebar', linking to the doc web/install-server-sdk"
+ },
+ "sidebar.webSidebar.doc.Install Client SDK": {
+ "message": "Client SDK のインストール",
+ "description": "The label for the doc item 'Install Client SDK' in sidebar 'webSidebar', linking to the doc web/install-client-sdk"
+ },
+ "sidebar.webSidebar.category.Getting Started": {
+ "message": "作業の開始",
+ "description": "The label for category 'Getting Started' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Server Export": {
+ "message": "サーバーのエクスポート",
+ "description": "The label for category 'Server Export' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.doc.Logging": {
+ "message": "ログ",
+ "description": "The label for the doc item 'Logging' in sidebar 'webSidebar', linking to the doc web/logging"
+ },
+ "sidebar.webSidebar.doc.Configure Export": {
+ "message": "エクスポートの構成",
+ "description": "The label for the doc item 'Configure Export' in sidebar 'webSidebar', linking to the doc web/configure-export"
+ },
+ "sidebar.webSidebar.doc.Google Sheets": {
+ "message": "Google スプレッドシート",
+ "description": "The label for the doc item 'Google Sheets' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/google-sheets"
+ },
+ "sidebar.webSidebar.doc.Google Big Query": {
+ "message": "Google Big Query",
+ "description": "The label for the doc item 'Google Big Query' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/google-big-query"
+ },
+ "sidebar.webSidebar.doc.Amazon S3": {
+ "message": "Amazon S3",
+ "description": "The label for the doc item 'Amazon S3' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/amazon-s3"
+ },
+ "sidebar.webSidebar.doc.CSV": {
+ "message": "CSV",
+ "description": "The label for the doc item 'CSV' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/csv"
+ },
+ "sidebar.webSidebar.doc.JSON": {
+ "message": "JSON",
+ "description": "The label for the doc item 'JSON' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/json"
+ },
+ "sidebar.webSidebar.doc.REST": {
+ "message": "REST",
+ "description": "The label for the doc item 'REST' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/rest"
+ },
+ "sidebar.webSidebar.doc.Amazon Athena": {
+ "message": "Amazon Athena",
+ "description": "The label for the doc item 'Amazon Athena' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/amazon-athena"
+ },
+ "sidebar.webSidebar.doc.Chart Types": {
+ "message": "チャート タイプ",
+ "description": "The label for the doc item 'Chart Types' in sidebar 'webSidebar', linking to the doc web/chart-types"
+ },
+ "sidebar.webSidebar.category.Release Notes": {
+ "message": "リリース ノート",
+ "description": "The label for category 'Release Notes' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.doc.1.6.0 Upgrade Guide": {
+ "message": "1.6.0 アップグレード ガイド",
+ "description": "The label for the doc item '1.6.0 Upgrade Guide' in sidebar 'webSidebar', linking to the doc web/upgrade-guide-v1.6.0"
+ },
+ "sidebar.webSidebar.doc.PostgreSQL": {
+ "message": "PostgreSQL",
+ "description": "The label for the doc item 'PostgreSQL' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/postgres"
+ },
+ "sidebar.webSidebar.doc.MongoDB": {
+ "message": "MongoDB",
+ "description": "The label for the doc item 'MongoDB' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/mongodb"
+ },
+ "sidebar.webSidebar.doc.Snowflake": {
+ "message": "Snowflake",
+ "description": "The label for the doc item 'Snowflake' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/snowflake"
+ },
+ "sidebar.webSidebar.doc.MySQL": {
+ "message": "MySQL",
+ "description": "The label for the doc item 'MySQL' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/mysql"
+ },
+ "sidebar.webSidebar.doc.MariaDB": {
+ "message": "MariaDB",
+ "description": "The label for the doc item 'MariaDB' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/mariadb"
+ },
+ "sidebar.webSidebar.doc.Custom Queries": {
+ "message": "カスタム クエリ",
+ "description": "The label for the doc item 'Custom Queries' in sidebar 'webSidebar', linking to the doc web/custom-queries"
+ },
+ "sidebar.webSidebar.doc.Oracle": {
+ "message": "Oracle",
+ "description": "The label for the doc item 'Oracle' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/oracle"
+ },
+ "sidebar.webSidebar.doc.Caching": {
+ "message": "キャッシュ",
+ "description": "The label for the doc item 'Caching' in sidebar 'webSidebar', linking to the doc web/caching"
+ },
+ "sidebar.webSidebar.doc.Custom Menu Items": {
+ "message": "カスタム メニュー項目",
+ "description": "The label for the doc item 'Custom Menu Items' in sidebar 'webSidebar', linking to the doc web/custom-menu-items"
+ },
+ "sidebar.webSidebar.doc.Localizing": {
+ "message": "ローカライズ",
+ "description": "The label for the doc item 'Localizing' in sidebar 'webSidebar', linking to the doc web/localizing"
+ },
+ "sidebar.webSidebar.doc.Customizing Map Tiles": {
+ "message": "マップ タイルのカスタマイズ",
+ "description": "The label for the doc item 'Customizing Map Tiles' in sidebar 'webSidebar', linking to the doc web/customizing-map-tiles"
+ },
+ "sidebar.webSidebar.doc.Custom Visualizations": {
+ "message": "カスタム表示形式",
+ "description": "The label for the doc item 'Custom Visualizations' in sidebar 'webSidebar', linking to the doc web/custom-visualizations"
+ },
+ "sidebar.userSideBar.category.Dashboards": {
+ "message": "ダッシュボード",
+ "description": "The label for category 'Dashboards' in sidebar 'userSideBar'"
+ },
+ "sidebar.userSideBar.category.Exporting": {
+ "message": "エクスポート",
+ "description": "The label for category 'Exporting' in sidebar 'userSideBar'"
+ },
+ "sidebar.userSideBar.category.Visualizations": {
+ "message": "表示形式",
+ "description": "The label for category 'Visualizations' in sidebar 'userSideBar'"
+ },
+ "sidebar.userSideBar.category.Chart Types": {
+ "message": "チャート タイプ",
+ "description": "The label for category 'Chart Types' in sidebar 'userSideBar'"
+ },
+ "sidebar.userSideBar.category.Choropleth ": {
+ "message": "階級区分図",
+ "description": "The label for category 'Choropleth ' in sidebar 'userSideBar'"
+ },
+ "sidebar.userSideBar.category.Fields ": {
+ "message": "フィールド",
+ "description": "The label for category 'Fields ' in sidebar 'userSideBar'"
+ },
+ "sidebar.userSideBar.category.Calculated Fields ": {
+ "message": "計算フィールド",
+ "description": "The label for category 'Calculated Fields ' in sidebar 'userSideBar'"
+ },
+ "sidebar.userSideBar.category.Filters": {
+ "message": "フィルター",
+ "description": "The label for category 'Filters' in sidebar 'userSideBar'"
+ },
+ "sidebar.userSideBar.category.Tutorials": {
+ "message": "チュートリアル",
+ "description": "The label for category 'Tutorials' in sidebar 'userSideBar'"
+ },
+ "sidebar.userSideBar.doc.Exporting to PDF": {
+ "message": "PDF へのエクスポート",
+ "description": "The label for the doc item 'Exporting to PDF' in sidebar 'userSideBar', linking to the doc user/dashboard-export-pdf"
+ },
+ "sidebar.userSideBar.doc.Exporting to Excel": {
+ "message": "Excel へのエクスポート",
+ "description": "The label for the doc item 'Exporting to Excel' in sidebar 'userSideBar', linking to the doc user/dashboard-export-excel"
+ },
+ "sidebar.userSideBar.doc.Exporting to Image": {
+ "message": "画像へのエクスポート",
+ "description": "The label for the doc item 'Exporting to Image' in sidebar 'userSideBar', linking to the doc user/dashboard-export-image"
+ },
+ "sidebar.userSideBar.doc.Exporting to PowerPoint": {
+ "message": "PowerPoint へのエクスポート",
+ "description": "The label for the doc item 'Exporting to PowerPoint' in sidebar 'userSideBar', linking to the doc user/dashboard-export-powerpoint"
+ },
+ "sidebar.userSideBar.doc.Linking": {
+ "message": "リンク",
+ "description": "The label for the doc item 'Linking' in sidebar 'userSideBar', linking to the doc user/dashboard-linking"
+ },
+ "sidebar.userSideBar.doc.Visualization Editor": {
+ "message": "表示形式エディター",
+ "description": "The label for the doc item 'Visualization Editor' in sidebar 'userSideBar', linking to the doc user/visualization-editor"
+ },
+ "sidebar.userSideBar.doc.Category": {
+ "message": "カテゴリ",
+ "description": "The label for the doc item 'Category' in sidebar 'userSideBar', linking to the doc user/chart-types/category-charts"
+ },
+ "sidebar.userSideBar.doc.Location Data": {
+ "message": "場所データ",
+ "description": "The label for the doc item 'Location Data' in sidebar 'userSideBar', linking to the doc user/chart-types/location-data-requirements"
+ },
+ "sidebar.userSideBar.doc.Settings": {
+ "message": "設定",
+ "description": "The label for the doc item 'Settings' in sidebar 'userSideBar', linking to the doc user/chart-types/settings-choropleth-map"
+ },
+ "sidebar.userSideBar.doc.Combo": {
+ "message": "複合",
+ "description": "The label for the doc item 'Combo' in sidebar 'userSideBar', linking to the doc user/chart-types/combo-charts"
+ },
+ "sidebar.userSideBar.doc.Financial": {
+ "message": "財務",
+ "description": "The label for the doc item 'Financial' in sidebar 'userSideBar', linking to the doc user/chart-types/financial-charts"
+ },
+ "sidebar.userSideBar.doc.Gauges": {
+ "message": "ゲージ",
+ "description": "The label for the doc item 'Gauges' in sidebar 'userSideBar', linking to the doc user/chart-types/gauge-charts"
+ },
+ "sidebar.userSideBar.doc.Grid": {
+ "message": "グリッド",
+ "description": "The label for the doc item 'Grid' in sidebar 'userSideBar', linking to the doc user/chart-types/grid-chart"
+ },
+ "sidebar.userSideBar.doc.Image": {
+ "message": "画像",
+ "description": "The label for the doc item 'Image' in sidebar 'userSideBar', linking to the doc user/chart-types/image-chart"
+ },
+ "sidebar.userSideBar.doc.KPI": {
+ "message": "KPI",
+ "description": "The label for the doc item 'KPI' in sidebar 'userSideBar', linking to the doc user/chart-types/kpi-gauge"
+ },
+ "sidebar.userSideBar.doc.Pivot": {
+ "message": "ピボット",
+ "description": "The label for the doc item 'Pivot' in sidebar 'userSideBar', linking to the doc user/chart-types/pivot-table"
+ },
+ "sidebar.userSideBar.doc.Radial": {
+ "message": "ラジアル",
+ "description": "The label for the doc item 'Radial' in sidebar 'userSideBar', linking to the doc user/chart-types/radial-charts"
+ },
+ "sidebar.userSideBar.doc.Scatter and Bubble": {
+ "message": "散布図・バブル",
+ "description": "The label for the doc item 'Scatter and Bubble' in sidebar 'userSideBar', linking to the doc user/chart-types/scatter-bubble-charts"
+ },
+ "sidebar.userSideBar.doc.Scatter Map": {
+ "message": "散布マップ",
+ "description": "The label for the doc item 'Scatter Map' in sidebar 'userSideBar', linking to the doc user/chart-types/scatter-map"
+ },
+ "sidebar.userSideBar.doc.Sparkline": {
+ "message": "スパークライン",
+ "description": "The label for the doc item 'Sparkline' in sidebar 'userSideBar', linking to the doc user/chart-types/sparkline-charts"
+ },
+ "sidebar.userSideBar.doc.Text Box": {
+ "message": "テキスト ボックス",
+ "description": "The label for the doc item 'Text Box' in sidebar 'userSideBar', linking to the doc user/chart-types/text-box"
+ },
+ "sidebar.userSideBar.doc.Text View": {
+ "message": "テキスト ビュー",
+ "description": "The label for the doc item 'Text View' in sidebar 'userSideBar', linking to the doc user/chart-types/text-view"
+ },
+ "sidebar.userSideBar.doc.Time Series": {
+ "message": "時系列",
+ "description": "The label for the doc item 'Time Series' in sidebar 'userSideBar', linking to the doc user/chart-types/time-series-charts"
+ },
+ "sidebar.userSideBar.doc.Tree Map": {
+ "message": "ツリー マップ",
+ "description": "The label for the doc item 'Tree Map' in sidebar 'userSideBar', linking to the doc user/chart-types/treemap-charts"
+ },
+ "sidebar.userSideBar.doc.Field Settings": {
+ "message": "フィールド設定",
+ "description": "The label for the doc item 'Field Settings' in sidebar 'userSideBar', linking to the doc user/fields/field-settings"
+ },
+ "sidebar.userSideBar.doc.Sort by Field": {
+ "message": "並べ替えフィールド",
+ "description": "The label for the doc item 'Sort by Field' in sidebar 'userSideBar', linking to the doc user/fields/sort-by-field"
+ },
+ "sidebar.userSideBar.doc.Ad-Hoc Hierarchies": {
+ "message": "アドホック階層",
+ "description": "The label for the doc item 'Ad-Hoc Hierarchies' in sidebar 'userSideBar', linking to the doc user/fields/adhoc-hierarchies"
+ },
+ "sidebar.userSideBar.doc.Conditional Formatting": {
+ "message": "条件付き書式",
+ "description": "The label for the doc item 'Conditional Formatting' in sidebar 'userSideBar', linking to the doc user/fields/conditional-formatting"
+ },
+ "sidebar.userSideBar.doc.Field Filters and Rules": {
+ "message": "フィールド フィルターとルール",
+ "description": "The label for the doc item 'Field Filters and Rules' in sidebar 'userSideBar', linking to the doc user/fields/field-filters-rules"
+ },
+ "sidebar.userSideBar.doc.Aggregation": {
+ "message": "集計",
+ "description": "The label for the doc item 'Aggregation' in sidebar 'userSideBar', linking to the doc user/fields/calculated/aggregation"
+ },
+ "sidebar.userSideBar.doc.Date": {
+ "message": "日付",
+ "description": "The label for the doc item 'Date' in sidebar 'userSideBar', linking to the doc user/fields/calculated/date"
+ },
+ "sidebar.userSideBar.doc.Information": {
+ "message": "情報",
+ "description": "The label for the doc item 'Information' in sidebar 'userSideBar', linking to the doc user/fields/calculated/information"
+ },
+ "sidebar.userSideBar.doc.Logic": {
+ "message": "論理",
+ "description": "The label for the doc item 'Logic' in sidebar 'userSideBar', linking to the doc user/fields/calculated/logic"
+ },
+ "sidebar.userSideBar.doc.Lookup & Reference": {
+ "message": "検索/行列",
+ "description": "The label for the doc item 'Lookup & Reference' in sidebar 'userSideBar', linking to the doc user/fields/calculated/lookup-reference"
+ },
+ "sidebar.userSideBar.doc.Math": {
+ "message": "数学",
+ "description": "The label for the doc item 'Math' in sidebar 'userSideBar', linking to the doc user/fields/calculated/math"
+ },
+ "sidebar.userSideBar.doc.String": {
+ "message": "文字列",
+ "description": "The label for the doc item 'String' in sidebar 'userSideBar', linking to the doc user/fields/calculated/string"
+ },
+ "sidebar.userSideBar.doc.Samples and Tips": {
+ "message": "サンプルとヒント",
+ "description": "The label for the doc item 'Samples and Tips' in sidebar 'userSideBar', linking to the doc user/fields/calculated/samples"
+ },
+ "sidebar.userSideBar.doc.Reusing Visualizations": {
+ "message": "表示形式の再利用",
+ "description": "The label for the doc item 'Reusing Visualizations' in sidebar 'userSideBar', linking to the doc user/reusing-visualizations"
+ },
+ "sidebar.userSideBar.doc.Statistical Functions": {
+ "message": "統計関数",
+ "description": "The label for the doc item 'Statistical Functions' in sidebar 'userSideBar', linking to the doc user/statistical-functions"
+ },
+ "sidebar.userSideBar.doc.Dashboard Filters": {
+ "message": "ダッシュボード フィルター",
+ "description": "The label for the doc item 'Dashboard Filters' in sidebar 'userSideBar', linking to the doc user/filters-dashboard"
+ },
+ "sidebar.userSideBar.doc.Dashboard Filter Properties": {
+ "message": "ダッシュボード フィルターのプロパティ",
+ "description": "The label for the doc item 'Dashboard Filter Properties' in sidebar 'userSideBar', linking to the doc user/filters-dashboard-properties"
+ },
+ "sidebar.userSideBar.doc.Connecting Filters": {
+ "message": "フィルターの接続",
+ "description": "The label for the doc item 'Connecting Filters' in sidebar 'userSideBar', linking to the doc user/filters-connecting"
+ },
+ "sidebar.userSideBar.doc.Date Range Filter": {
+ "message": "日付範囲フィルター",
+ "description": "The label for the doc item 'Date Range Filter' in sidebar 'userSideBar', linking to the doc user/filters-date-range"
+ },
+ "sidebar.userSideBar.doc.Visualization Filters": {
+ "message": "表示形式のフィルター",
+ "description": "The label for the doc item 'Visualization Filters' in sidebar 'userSideBar', linking to the doc user/filters-visualization"
+ },
+ "sidebar.userSideBar.doc.Candlestick Charts": {
+ "message": "ローソク足表示形式",
+ "description": "The label for the doc item 'Candlestick Charts' in sidebar 'userSideBar', linking to the doc user/tutorials-candlestick"
+ },
+ "sidebar.userSideBar.doc.Gauge Charts": {
+ "message": "ゲージ チャート",
+ "description": "The label for the doc item 'Gauge Charts' in sidebar 'userSideBar', linking to the doc user/tutorials-gauge"
+ },
+ "sidebar.userSideBar.doc.Image Charts": {
+ "message": "画像チャート",
+ "description": "The label for the doc item 'Image Charts' in sidebar 'userSideBar', linking to the doc user/tutorials-image"
+ },
+ "sidebar.userSideBar.doc.KPI Gauges": {
+ "message": "KPI チャート",
+ "description": "The label for the doc item 'KPI Gauges' in sidebar 'userSideBar', linking to the doc user/tutorials-kpi-gauge"
+ },
+ "sidebar.userSideBar.doc.OHLC Charts": {
+ "message": "OHLC チャート",
+ "description": "The label for the doc item 'OHLC Charts' in sidebar 'userSideBar', linking to the doc user/tutorials-ohlc"
+ },
+ "sidebar.userSideBar.doc.Simple-Series Charts": {
+ "message": "シンプル シリーズ チャート",
+ "description": "The label for the doc item 'Simple-Series Charts' in sidebar 'userSideBar', linking to the doc user/tutorials-simple-charts"
+ },
+ "sidebar.userSideBar.doc.Sparkline Charts": {
+ "message": "スパークライン チャート",
+ "description": "The label for the doc item 'Sparkline Charts' in sidebar 'userSideBar', linking to the doc user/tutorials-sparkline-charts"
+ },
+ "sidebar.userSideBar.doc.Stacked Charts": {
+ "message": "積層型チャート",
+ "description": "The label for the doc item 'Stacked Charts' in sidebar 'userSideBar', linking to the doc user/tutorials-stacked-charts"
+ },
+ "sidebar.webSidebar.category.Web Component Wrappers": {
+ "message": "Web Component ラッパー",
+ "description": "The label for category 'Web Component Wrappers' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Reveal View": {
+ "message": "Reveal ビュー",
+ "description": "The label for category 'Reveal View' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.category.Vizualization Viewer": {
+ "message": "表示形式ビューアー",
+ "description": "The label for category 'Vizualization Viewer' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.doc.NestJS": {
+ "message": "NestJS",
+ "description": "The label for the doc item 'NestJS' in sidebar 'webSidebar', linking to the doc web/getting-started-server-nest"
+ },
+ "sidebar.webSidebar.doc.Loading Dashboards": {
+ "message": "ダッシュボードの読み込み",
+ "description": "The label for the doc item 'Loading Dashboards' in sidebar 'webSidebar', linking to the doc web/web-component-wrappers/reveal-view/loading-dashboards"
+ },
+ "sidebar.webSidebar.doc.Beta Features": {
+ "message": "ベータ機能",
+ "description": "The label for the doc item 'Beta Features' in sidebar 'webSidebar', linking to the doc web/beta-features"
+ },
+ "sidebar.webSidebar.doc.Databricks": {
+ "message": "Databricks",
+ "description": "The label for the doc item 'Databricks' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/databricks"
+ },
+ "sidebar.webSidebar.doc.Elasticsearch": {
+ "message": "Elasticsearch",
+ "description": "The label for the doc item 'Elasticsearch' in sidebar 'webSidebar', linking to the doc web/adding-data-sources/elasticsearch"
+ },
+ "sidebar.webSidebar.category.web-component-wrappers-installation": {
+ "message": "Installation",
+ "description": "The label for category 'Installation' in sidebar 'webSidebar'"
+ },
+ "sidebar.webSidebar.doc.web-component-wrappers-overview": {
+ "message": "Overview",
+ "description": "The label for the doc item 'Overview' in sidebar 'webSidebar', linking to the doc web/web-component-wrappers/index"
+ },
+ "sidebar.webSidebar.doc.web-component-wrappers-installation-angular": {
+ "message": "Angular",
+ "description": "The label for the doc item 'Angular' in sidebar 'webSidebar', linking to the doc web/web-component-wrappers/installation-angular"
+ },
+ "sidebar.webSidebar.doc.web-component-wrappers-installation-react": {
+ "message": "React",
+ "description": "The label for the doc item 'React' in sidebar 'webSidebar', linking to the doc web/web-component-wrappers/installation-react"
+ },
+ "sidebar.webSidebar.doc.web-component-wrappers-reveal-view-options": {
+ "message": "Options",
+ "description": "The label for the doc item 'Options' in sidebar 'webSidebar', linking to the doc web/web-component-wrappers/reveal-view/options"
+ },
+ "sidebar.webSidebar.doc.web-component-wrappers-visualization-viewer-options": {
+ "message": "Options",
+ "description": "The label for the doc item 'Options' in sidebar 'webSidebar', linking to the doc web/web-component-wrappers/visualization-viewer/options"
+ },
+ "sidebar.userSideBar.doc.user-visualizations-overview": {
+ "message": "Overview",
+ "description": "The label for the doc item 'Overview' in sidebar 'userSideBar', linking to the doc user/visualizations-overview"
+ },
+ "sidebar.userSideBar.doc.user-filters-overview": {
+ "message": "Overview",
+ "description": "The label for the doc item 'Overview' in sidebar 'userSideBar', linking to the doc user/filters-overview"
+ },
+ "sidebar.userSideBar.doc.user-tutorials-overview": {
+ "message": "Overview",
+ "description": "The label for the doc item 'Overview' in sidebar 'userSideBar', linking to the doc user/tutorials-overview"
+ },
+ "sidebar.userSideBar.doc.user-tutorials-text-view": {
+ "message": "Text View",
+ "description": "The label for the doc item 'Text View' in sidebar 'userSideBar', linking to the doc user/tutorials-text-view"
+ },
+ "sidebar.aiSidebar.category.ai-getting-started-header": {
+ "message": "はじめに",
+ "description": "The label for category 'Getting Started' in sidebar 'aiSidebar'"
+ },
+ "sidebar.aiSidebar.category.Installation": {
+ "message": "インストール",
+ "description": "The label for category 'Installation' in sidebar 'aiSidebar'"
+ },
+ "sidebar.aiSidebar.category.Metadata": {
+ "message": "メタデータ",
+ "description": "The label for category 'Metadata' in sidebar 'aiSidebar'"
+ },
+ "sidebar.aiSidebar.category.Using the SDK": {
+ "message": "SDK の使い方",
+ "description": "The label for category 'Using the SDK' in sidebar 'aiSidebar'"
+ },
+ "sidebar.aiSidebar.category.API Reference": {
+ "message": "API リファレンス",
+ "description": "The label for category 'API Reference' in sidebar 'aiSidebar'"
+ },
+ "sidebar.aiSidebar.category.Guides": {
+ "message": "ガイド",
+ "description": "The label for category 'Guides' in sidebar 'aiSidebar'"
+ },
+ "sidebar.aiSidebar.doc.Overview": {
+ "message": "概要",
+ "description": "The label for the doc item 'Overview' in sidebar 'aiSidebar', linking to the doc ai/overview"
+ },
+ "sidebar.aiSidebar.doc.System Requirements": {
+ "message": "システム要件",
+ "description": "The label for the doc item 'System Requirements' in sidebar 'aiSidebar', linking to the doc ai/system-requirements"
+ },
+ "sidebar.aiSidebar.doc.Install Server SDK": {
+ "message": "サーバー SDK のインストール",
+ "description": "The label for the doc item 'Install Server SDK' in sidebar 'aiSidebar', linking to the doc ai/install-server-sdk"
+ },
+ "sidebar.aiSidebar.doc.Install Client SDK": {
+ "message": "クライアント SDK のインストール",
+ "description": "The label for the doc item 'Install Client SDK' in sidebar 'aiSidebar', linking to the doc ai/install-client-sdk"
+ },
+ "sidebar.aiSidebar.doc.Getting Started - HTML/JS": {
+ "message": "はじめに - HTML/JS",
+ "description": "The label for the doc item 'Getting Started - HTML/JS' in sidebar 'aiSidebar', linking to the doc ai/getting-started-html"
+ },
+ "sidebar.aiSidebar.doc.Metadata Catalog": {
+ "message": "メタデータカタログ",
+ "description": "The label for the doc item 'Metadata Catalog' in sidebar 'aiSidebar', linking to the doc ai/metadata-catalog"
+ },
+ "sidebar.aiSidebar.doc.ai-sdk-overview": {
+ "message": "概要",
+ "description": "The label for the doc item 'Overview' in sidebar 'aiSidebar', linking to the doc ai/sdk-overview"
+ },
+ "sidebar.aiSidebar.doc.Insights": {
+ "message": "インサイト",
+ "description": "The label for the doc item 'Insights' in sidebar 'aiSidebar', linking to the doc ai/sdk-insights"
+ },
+ "sidebar.aiSidebar.doc.Chat": {
+ "message": "チャット",
+ "description": "The label for the doc item 'Chat' in sidebar 'aiSidebar', linking to the doc ai/sdk-chat"
+ },
+ "sidebar.aiSidebar.doc.Streaming Responses": {
+ "message": "ストリーミングレスポンス",
+ "description": "The label for the doc item 'Streaming Responses' in sidebar 'aiSidebar', linking to the doc ai/sdk-streaming"
+ },
+ "sidebar.aiSidebar.doc.Error Handling": {
+ "message": "エラーハンドリング",
+ "description": "The label for the doc item 'Error Handling' in sidebar 'aiSidebar', linking to the doc ai/sdk-error-handling"
+ },
+ "sidebar.aiSidebar.doc.Insights Endpoint": {
+ "message": "インサイトエンドポイント",
+ "description": "The label for the doc item 'Insights Endpoint' in sidebar 'aiSidebar', linking to the doc ai/insights"
+ },
+ "sidebar.aiSidebar.doc.Chat Endpoint": {
+ "message": "チャットエンドポイント",
+ "description": "The label for the doc item 'Chat Endpoint' in sidebar 'aiSidebar', linking to the doc ai/chat"
+ },
+ "sidebar.aiSidebar.doc.Insights with Context Menus": {
+ "message": "コンテキストメニューによるインサイト",
+ "description": "The label for the doc item 'Insights with Context Menus' in sidebar 'aiSidebar', linking to the doc ai/guide-insights-context-menus"
+ },
+ "sidebar.aiSidebar.doc.Building a Chat Interface": {
+ "message": "チャットインターフェースの構築",
+ "description": "The label for the doc item 'Building a Chat Interface' in sidebar 'aiSidebar', linking to the doc ai/guide-chat-interface"
+ },
+ "sidebar.aiSidebar.doc.Streaming Markdown Display": {
+ "message": "ストリーミング Markdown 表示",
+ "description": "The label for the doc item 'Streaming Markdown Display' in sidebar 'aiSidebar', linking to the doc ai/guide-streaming-display"
+ },
+ "sidebar.aiSidebar.category.Providers": {
+ "message": "Providers",
+ "description": "The label for category 'Providers' in sidebar 'aiSidebar'"
+ },
+ "sidebar.aiSidebar.doc.ai-providers-overview": {
+ "message": "Overview",
+ "description": "The label for the doc item 'Overview' in sidebar 'aiSidebar', linking to the doc ai/providers-overview"
+ },
+ "sidebar.aiSidebar.doc.OpenAI": {
+ "message": "OpenAI",
+ "description": "The label for the doc item 'OpenAI' in sidebar 'aiSidebar', linking to the doc ai/providers-openai"
+ },
+ "sidebar.aiSidebar.doc.Azure OpenAI": {
+ "message": "Azure OpenAI",
+ "description": "The label for the doc item 'Azure OpenAI' in sidebar 'aiSidebar', linking to the doc ai/providers-azure-openai"
+ },
+ "sidebar.aiSidebar.doc.Anthropic": {
+ "message": "Anthropic",
+ "description": "The label for the doc item 'Anthropic' in sidebar 'aiSidebar', linking to the doc ai/providers-anthropic"
+ },
+ "sidebar.aiSidebar.doc.Google Gemini": {
+ "message": "Google Gemini",
+ "description": "The label for the doc item 'Google Gemini' in sidebar 'aiSidebar', linking to the doc ai/providers-google-gemini"
+ },
+ "sidebar.aiSidebar.doc.Custom Endpoints": {
+ "message": "Custom Endpoints",
+ "description": "The label for the doc item 'Custom Endpoints' in sidebar 'aiSidebar', linking to the doc ai/providers-custom-endpoints"
+ },
+ "sidebar.aiSidebar.doc.Building a Custom Provider": {
+ "message": "Building a Custom Provider",
+ "description": "The label for the doc item 'Building a Custom Provider' in sidebar 'aiSidebar', linking to the doc ai/providers-building-custom"
+ }
+}
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/chat.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/chat.md
new file mode 100644
index 00000000..b0bcf435
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/chat.md
@@ -0,0 +1,213 @@
+---
+sidebar_label: チャットエンドポイント
+---
+
+
+# チャットエンドポイント
+
+AI チャットはデータ分析を会話に変換します。ダッシュボードを手動で作成したりクエリを記述したりする代わりに、ユーザーは見たいものや理解したいことを説明するだけです。AI がリクエストを解釈し、データを処理し、インサイトや説明を返したり、ダッシュボードを自動的に生成・修正したりします(現在のユーザーメッセージと会話履歴の両方に基づきます)。
+
+### 主な機能
+
+**自然言語によるダッシュボード生成**
+必要なものを説明してダッシュボードを作成します:「Q4の地域別売上を表示して」や「カテゴリ別の収益を比較するチャートを作成して」など。
+
+**ダッシュボードの編集**
+既存のダッシュボードを会話形式で修正します:「日付範囲のフィルターを追加して」や「円グラフを棒グラフに変更して」など。
+
+**データ分析**
+データについて質問します:「収益上位5社の顧客は?」や「顧客満足度スコアのトレンドを表示して」など。
+
+**会話コンテキスト**
+AI は会話履歴を保持し、フォローアップの質問や改善を可能にします:「それを月別に分解して」や「テクノロジーカテゴリだけにフィルターして」など。
+
+---
+
+## エンドポイント
+
+**メッセージ送信**
+```
+POST /api/reveal/ai/chat
+```
+
+**セッションクリア**
+```
+DELETE /api/reveal/ai/chat/session
+```
+
+## リクエスト形式
+
+```typescript
+{
+ // Required
+ datasourceId: string, // Datasource identifier for context
+
+ // Message (one required)
+ message?: string, // Natural language message/request
+
+ // Optional context
+ dashboard?: string, // Dashboard JSON for editing/analysis
+ visualizationId?: string, // Visualization ID for visualization-specific operations
+
+ // Optional configuration
+ model?: string, // LLM model override
+ stream?: boolean // Return SSE stream instead of JSON (default: false)
+}
+```
+
+### リクエストパラメーター
+
+| パラメーター | 型 | 必須 | 説明 |
+|-----------|------|----------|-------------|
+| `datasourceId` | string | はい | クエリ対象のデータソースの識別子 |
+| `message` | string | 条件付き* | ユーザーの自然言語メッセージまたはリクエスト |
+| `dashboard` | string | いいえ | 編集または分析コンテキスト用のダッシュボード JSON(RDash 形式) |
+| `visualizationId` | string | いいえ | ビジュアライゼーション固有の操作のためのビジュアライゼーション識別子 |
+| `model` | string | いいえ | このリクエストに使用する特定の LLM モデル名 |
+| `stream` | boolean | いいえ | `true` の場合、プログレスイベント、テキストチャンク、最終完了イベントを含む `text/event-stream`(SSE)レスポンスを返します。`false`(デフォルト)の場合、プレーンな `application/json` レスポンスを返します。 |
+
+\* `message` または `intent` のいずれかを指定する必要があります
+
+**パラメーターの詳細:**
+
+- **`datasourceId`**: すべてのリクエストで必須です。利用可能なデータ構造に関するコンテキストを提供します。
+- **`dashboard`**: 既存のダッシュボードを編集する場合やダッシュボードの内容を分析する場合に指定します。
+
+## レスポンス形式
+
+### 非ストリーミング(デフォルト)
+
+`stream` が `false` または省略された場合、エンドポイントはプレーンな JSON レスポンスを返します:
+
+```json
+{
+ "explanation": "Based on your data, I've created a dashboard showing sales by region...",
+ "dashboard": "{...rdash JSON...}"
+}
+```
+
+エラー時は、適切な HTTP ステータスコード(400 または 500)とともにエラーメッセージを含むレスポンスが返されます:
+
+```json
+{
+ "error": "Error message"
+}
+```
+
+### ストリーミング
+
+`stream` が `true` の場合、エンドポイントは以下のイベントタイプを持つ Server-Sent Events(SSE)を返します:
+
+#### progress イベント
+処理中に現在のステータスを示すために送信されます。
+
+```json
+event: progress
+data: {"message": "Creating a new dashboard"}
+```
+
+一般的なプログレスメッセージ:
+- "Creating a new dashboard"
+- "Analyzing the current dashboard"
+- "Adding filters to visualizations"
+- "Modifying visualization"
+
+#### text イベント
+生成された説明テキストのフラグメントを含みます。
+
+```json
+event: text
+data: {"content": "Based on your data, I've created"}
+```
+
+テキストチャンクは約8語のセグメントで、20ms の遅延で配信され、ChatGPT のような自然なストリーミングを実現します。
+
+#### complete イベント
+処理が正常に完了したときに送信されます。常に完全な結果を含みます。
+
+```json
+event: complete
+data: {
+ "message": "Chat processed successfully",
+ "result": {
+ "explanation": "Based on your data, I've created a dashboard showing sales by region...",
+ "dashboard": "{...rdash JSON...}"
+ }
+}
+```
+
+**結果の構造:**
+- `explanation`: 実行された内容の自然言語による説明
+- `dashboard`: 生成または修正されたダッシュボード JSON(該当する場合)
+
+#### error イベント
+処理が失敗した場合に送信されます。
+
+```json
+event: error
+data: {"error": "Datasource not found"}
+```
+
+## 会話履歴
+
+チャットはユーザーおよびデータソースごとにサーバー側の会話履歴を保持します。これにより、コンテキストに基づいたフォローアップの質問や反復的な改善が可能になります。
+
+**履歴の仕組み:**
+
+1. **ユーザーごとのセッション**: 各ユーザーはデータソースごとに個別の会話セッションを取得します
+2. **自動コンテキスト**: 以前の質問と回答は、新しいリクエストのコンテキストとして自動的に含まれます
+3. **永続的な状態**: 履歴は明示的にクリアされるまで複数のリクエストにわたって保持されます
+4. **プロンプト内のコンテキスト**: 完全な会話履歴が LLM に提供されます:
+ ```
+ Conversation history:
+ - User: Show me sales by region
+ - Agent: I've created a dashboard with a map visualization...
+ - User: Now filter to Q4 only
+ ```
+
+**履歴の管理:**
+
+- **履歴のクリア**: `DELETE /api/reveal/ai/chat/session` を送信してセッションをリセットします
+
+## サーバー側の実装
+
+チャットエンドポイントは、ASP.NET Core アプリケーションで Reveal AI を構成すると自動的に登録されます:
+
+```csharp title="Program.cs"
+using Reveal.Sdk;
+using Reveal.Sdk.AI;
+
+var builder = WebApplication.CreateBuilder(args);
+
+// Add Reveal SDK
+builder.Services.AddControllers().AddReveal(revealBuilder =>
+{
+ // Configure datasource provider
+ revealBuilder.AddDataSourceProvider();
+});
+
+// Add Reveal AI - automatically registers chat endpoints
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = builder.Configuration["OpenAI:ApiKey"];
+ options.ModelId = "gpt-4.1";
+ });
+
+var app = builder.Build();
+
+app.MapControllers();
+app.Run();
+```
+
+追加のコントローラーやルーティング構成は不要です。`AddRevealAI()` を呼び出すだけで、POST と DELETE の両方のエンドポイントが使用可能になります。
+
+## メタデータ構成
+
+チャットにはデータソースの構造を理解するための**メタデータカタログ**が必要です。チャットリクエストの `datasourceId` パラメーターは、カタログで定義された `Id` と一致する必要があります。
+
+:::info
+
+完全なカタログスキーマ、構成オプション、および例については、[メタデータカタログ](./metadata-catalog.md) トピックを参照してください。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/getting-started-html.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/getting-started-html.md
new file mode 100644
index 00000000..3cdf559a
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/getting-started-html.md
@@ -0,0 +1,298 @@
+---
+sidebar_label: はじめに - HTML/JavaScript
+---
+
+
+# Reveal SDK AI をはじめよう - HTML/JavaScript
+
+このガイドでは、バニラ HTML と JavaScript を使用して、初めての AI 搭載アナリティクスアプリケーションを作成する手順を説明します。ダッシュボードデータから AI インサイトを生成するシンプルなアプリケーションを構築します。
+
+**所要時間**: 15〜20分
+
+## 構築するもの
+
+以下の機能を備えた Web アプリケーションを構築します:
+- Reveal ダッシュボードの表示
+- ダッシュボードへの AI 搭載コンテキストメニュー項目の追加
+- AI インサイト(サマリー、分析、予測)の生成
+
+## 前提条件
+
+始める前に、[システム要件](system-requirements.md)を満たしていることを確認し、以下を準備してください:
+
+1. [Reveal SDK サーバー](/web/install-server-sdk)のインストールと設定が完了していること
+2. [Reveal SDK AI サーバー](install-server-sdk.md)がインストールされていること
+3. **LLM プロバイダー API キー** - [OpenAI](https://platform.openai.com/api-keys)、[Anthropic](https://platform.anthropic.com/account/keys)、または [Google Cloud](https://cloud.google.com/vertex-ai) から取得
+
+## ステップ 1: ASP.NET Core サーバーの作成
+
+### 1.1 新しい ASP.NET Core Web API プロジェクトの作成
+
+ターミナルを開き、以下を実行します:
+
+```bash
+dotnet new webapi -n RevealAiServer
+cd RevealAiServer
+```
+
+### 1.2 AI NuGet パッケージのインストール
+
+Reveal AI パッケージをインストールします(Reveal.Sdk.AspNetCore が自動的に含まれます):
+
+```bash
+dotnet add package Reveal.Sdk.AI.AspNetCore
+```
+
+### 1.3 サーバーの設定
+
+`Program.cs` を開き、内容を以下に置き換えます:
+
+```csharp title="Program.cs"
+using Reveal.Sdk;
+using Reveal.Sdk.AI;
+using RevealAiServer.Reveal;
+
+var builder = WebApplication.CreateBuilder(args);
+
+// Add CORS for local development
+builder.Services.AddCors(options =>
+{
+ options.AddPolicy("AllowAll",
+ policy => policy.AllowAnyOrigin()
+ .AllowAnyHeader()
+ .AllowAnyMethod());
+});
+
+// Add Reveal SDK with data source provider
+builder.Services.AddControllers().AddReveal(builder =>
+{
+ builder.AddDataSourceProvider();
+});
+
+// Add Reveal AI with OpenAI provider
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = builder.Configuration["RevealAI:OpenAI:ApiKey"];
+ options.ModelId = "gpt-4.1";
+ });
+
+var app = builder.Build();
+
+app.UseCors("AllowAll");
+app.MapControllers();
+
+app.Run();
+```
+
+### 1.4 API キーの設定
+
+**オプション A: appsettings.json を使用する方法**(本番環境には非推奨)
+
+`appsettings.json` を作成または変更します:
+
+```json title="appsettings.json"
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "AllowedHosts": "*",
+ "RevealAI": {
+ "OpenAI": {
+ "ApiKey": "sk-your-openai-api-key-here"
+ }
+ }
+}
+```
+
+**オプション B: User Secrets を使用する方法**(開発時に推奨)
+
+```bash
+dotnet user-secrets init
+dotnet user-secrets set "RevealAI:OpenAI:ApiKey" "sk-your-openai-api-key-here"
+```
+
+:::danger API キーをコミットしないでください
+
+API キーをソース管理にコミットしないでください。常に User Secrets、環境変数、またはセキュアなキー管理サービスを使用してください。
+
+:::
+
+### 1.5 DataSource プロバイダーの作成
+
+Reveal SDK にはデータソースプロバイダーが必要です。このサンプルでは、データソースをそのまま返すだけの最小限のプロバイダーを作成します。
+
+新しいフォルダ `Reveal` を作成し、`DataSourceProvider.cs` を追加します:
+
+```csharp title="Reveal/DataSourceProvider.cs"
+using Reveal.Sdk.Data;
+
+namespace RevealAiServer.Reveal;
+
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public Task ChangeDataSourceItemAsync(
+ IRVUserContext userContext,
+ string dashboardId,
+ RVDataSourceItem dataSourceItem)
+ {
+ return Task.FromResult(dataSourceItem);
+ }
+
+ public Task ChangeDataSourceAsync(
+ IRVUserContext userContext,
+ RVDashboardDataSource dataSource)
+ {
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+### 1.6 サンプルダッシュボードとデータの追加
+
+プロジェクトルートに必要なフォルダを作成します:
+
+```bash
+mkdir Dashboards
+mkdir Data
+```
+
+必要なファイルをダウンロードし、正しいフォルダに配置します:
+
+**1. ダッシュボードファイル** → `Dashboards/` フォルダに保存:
+- ダウンロード: [Accounts.rdash](https://github.com/RevealBi/sdk-samples-ai/raw/ad93b8eae04f32778e4eaf2b0168cf26dda10888/insights/server/aspnet/RevealSdkServer/Dashboards/Accounts.rdash)
+- 配置場所: `Dashboards/Accounts.rdash`
+
+**2. データファイル** → `Data/` フォルダに保存:
+- ダウンロード: [NorthwindInvoices.xlsx](https://github.com/RevealBi/sdk-samples-ai/raw/refs/heads/main/insights/server/aspnet/RevealSdkServer/Data/NorthwindInvoices.xlsx)
+- 配置場所: `Data/NorthwindInvoices.xlsx`
+
+プロジェクト構成は以下のようになります:
+```
+RevealAiServer/
+├── Dashboards/
+│ └── Accounts.rdash
+├── Data/
+│ └── NorthwindInvoices.xlsx
+├── Reveal/
+│ └── DataSourceProvider.cs
+└── Program.cs
+```
+
+### 1.7 サーバーの起動
+
+```bash
+dotnet run
+```
+
+サーバーが `https://localhost:5111`(または類似の URL)で起動します。この URL はクライアントで使用するため、メモしておいてください。
+
+## ステップ 2: HTML クライアントの作成
+
+### 2.1 index.html の作成
+
+プロジェクトルート(または別の `client` フォルダ)に新しいファイル `index.html` を作成します:
+
+```html title="index.html"
+
+
+
+
+
+ Reveal AI - Insights Demo
+
+
+
+
+
+
Use the dashboard overflow menu and select an AI insight option.
+
+
+
+
+
+
+
+
+
+```
+
+## ステップ 3: アプリケーションの実行
+
+### 3.1 サーバーの起動
+
+まだ起動していない場合:
+
+```bash
+dotnet run
+```
+
+### 3.2 クライアントを開く
+
+`index.html` を Web ブラウザで開きます。以下の方法があります:
+
+- VS Code の Live Server 拡張機能を使用する
+- ファイルをダブルクリックする
+
+### 3.3 AI インサイトのテスト
+
+1. ダッシュボードが読み込まれるまで待ちます
+2. ダッシュボードのオーバーフローメニュー(ケバブアイコン)をクリックします
+3. **Summary**、**Analysis**、または **Forecast** を選択します
+4. AI が生成したインサイトが右パネルに表示されます
+
+ここから、[SDK の使い方](./sdk-overview.md)セクションを参照して、ストリーミングレスポンス、ビジュアライゼーションレベルのインサイト、チャットなどについて学びましょう。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/guide-chat-interface.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/guide-chat-interface.md
new file mode 100644
index 00000000..47b11272
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/guide-chat-interface.md
@@ -0,0 +1,99 @@
+---
+sidebar_label: チャットインターフェースの構築
+---
+
+
+# チャットインターフェースの構築
+
+このガイドでは、Reveal SDK AI Chat API を使用して、メッセージ履歴とストリーミングレスポンスを備えた完全なチャット UI を構築する方法を説明します。
+
+## 完全なチャット実装
+
+```typescript
+const client = RevealSdkClient.getInstance();
+const messages: Array<{role: 'user' | 'assistant', content: string}> = [];
+
+async function sendChatMessage(userInput: string) {
+ // Add user message to UI
+ messages.push({ role: 'user', content: userInput });
+ renderMessages();
+
+ let currentMessage = '';
+
+ const stream = await client.ai.chat.sendMessage({
+ message: userInput,
+ datasourceId: 'my-datasource',
+ stream: true,
+ });
+
+ stream.on('progress', (message) => {
+ showProgressIndicator(message);
+ });
+
+ stream.on('text', (content) => {
+ currentMessage += content;
+ // Update streaming message in UI
+ updateStreamingMessage(currentMessage);
+ scrollToBottom();
+ });
+
+ stream.on('error', (error) => {
+ showError(error);
+ });
+
+ const result = await stream.finalResponse();
+
+ // Finalize message
+ messages.push({ role: 'assistant', content: currentMessage });
+ renderMessages();
+
+ if (result.dashboard) {
+ loadDashboard(result.dashboard);
+ }
+
+ hideProgressIndicator();
+}
+
+// Clear conversation
+async function resetConversation() {
+ await client.ai.chat.resetContext();
+ messages.length = 0;
+ renderMessages();
+}
+```
+
+## 主要コンセプト
+
+### メッセージ履歴
+
+`messages` 配列はローカルの UI 状態を追跡します。サーバーは独自の会話履歴を自動的に保持するため、各リクエストで以前のメッセージを送信する必要はありません。
+
+### ダッシュボードの処理
+
+チャットレスポンスには、生成または修正されたダッシュボード JSON を含む `dashboard` フィールドが含まれる場合があります。各レスポンスの後にこのフィールドを確認し、RevealView に読み込みます:
+
+```typescript
+const result = await stream.finalResponse();
+
+if (result.dashboard) {
+ // Load the new or modified dashboard
+ revealView.dashboard = await RVDashboard.loadFromJson(result.dashboard);
+}
+```
+
+### 既存ダッシュボードの編集
+
+チャットを通じてユーザーが既存のダッシュボードを編集できるようにするには、リクエストにダッシュボードを含めます:
+
+```typescript
+const stream = await client.ai.chat.sendMessage({
+ message: 'Add a date filter to this dashboard',
+ datasourceId: 'my-datasource',
+ dashboard: revealView.dashboard, // Pass the current dashboard
+ stream: true,
+});
+```
+
+### コンテキストのリセット
+
+新しいトピックを開始する場合やデータソースを切り替える場合は、`resetContext()` を呼び出します。これにより、サーバー側の会話履歴がクリアされ、以前のメッセージが新しいレスポンスに影響を与えなくなります。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/guide-insights-context-menus.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/guide-insights-context-menus.md
new file mode 100644
index 00000000..9fbe6e36
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/guide-insights-context-menus.md
@@ -0,0 +1,110 @@
+---
+sidebar_label: コンテキストメニューによるインサイト
+---
+
+
+# コンテキストメニューによるインサイト
+
+このガイドでは、RevealView ダッシュボードのコンテキストメニューに AI を活用したインサイトオプションを追加する方法を説明します。ユーザーはダッシュボードや個々のビジュアライゼーションを右クリックして、要約、分析、予測を生成できるようになります。
+
+## インサイトメニュー項目の追加
+
+`onMenuOpening` イベントを使用して、AI インサイトをトリガーするカスタムメニュー項目を追加します:
+
+```typescript
+const client = RevealSdkClient.getInstance();
+
+revealView.onMenuOpening = function (visualization, args) {
+ // Dashboard-level insights (right-click on dashboard background)
+ if (args.menuLocation === $.ig.RVMenuLocation.Dashboard) {
+ args.menuItems.push(new $.ig.RVMenuItem("Summary", null, async () => {
+ const insight = await client.ai.insights.get({
+ dashboard: revealView.dashboard,
+ type: 'summary',
+ });
+ displayInsight(insight.explanation);
+ }));
+
+ args.menuItems.push(new $.ig.RVMenuItem("Analysis", null, async () => {
+ const insight = await client.ai.insights.get({
+ dashboard: revealView.dashboard,
+ type: 'analysis',
+ });
+ displayInsight(insight.explanation);
+ }));
+
+ args.menuItems.push(new $.ig.RVMenuItem("Forecast", null, async () => {
+ const insight = await client.ai.insights.get({
+ dashboard: revealView.dashboard,
+ type: 'forecast',
+ });
+ displayInsight(insight.explanation);
+ }));
+ }
+
+ // Visualization-level insights (right-click on a specific visualization)
+ if (args.menuLocation === $.ig.RVMenuLocation.Visualization) {
+ args.menuItems.push(new $.ig.RVMenuItem("Analyze This", null, async () => {
+ const insight = await client.ai.insights.get({
+ dashboard: revealView.dashboard,
+ visualizationId: visualization.id,
+ type: 'analysis',
+ });
+ displayInsight(insight.explanation);
+ }));
+ }
+};
+```
+
+## ストリーミングサポートの追加
+
+よりインタラクティブな体験のために、ストリーミングを使用してインサイトを生成しながら表示します:
+
+```typescript
+function createInsightMenuItem(label, dashboard, insightType, visualizationId = null) {
+ return new $.ig.RVMenuItem(label, null, async () => {
+ const options = {
+ dashboard: dashboard,
+ type: insightType,
+ stream: true,
+ };
+
+ if (visualizationId) {
+ options.visualizationId = visualizationId;
+ }
+
+ let buffer = '';
+ const stream = await client.ai.insights.get(options);
+
+ stream.on('progress', (message) => {
+ showProgressIndicator(message);
+ });
+
+ stream.on('text', (content) => {
+ buffer += content;
+ displayInsight(buffer);
+ });
+
+ stream.on('error', (error) => {
+ showError(error);
+ });
+
+ await stream.finalResponse();
+ hideProgressIndicator();
+ });
+}
+
+// Use the helper in onMenuOpening
+revealView.onMenuOpening = function (visualization, args) {
+ if (args.menuLocation === $.ig.RVMenuLocation.Dashboard) {
+ args.menuItems.push(createInsightMenuItem("Summary", revealView.dashboard, 'summary'));
+ args.menuItems.push(createInsightMenuItem("Analysis", revealView.dashboard, 'analysis'));
+ args.menuItems.push(createInsightMenuItem("Forecast", revealView.dashboard, 'forecast'));
+ }
+
+ if (args.menuLocation === $.ig.RVMenuLocation.Visualization) {
+ args.menuItems.push(createInsightMenuItem("Summary", revealView.dashboard, 'summary', visualization.id));
+ args.menuItems.push(createInsightMenuItem("Analysis", revealView.dashboard, 'analysis', visualization.id));
+ }
+};
+```
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/guide-streaming-display.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/guide-streaming-display.md
new file mode 100644
index 00000000..a168f5db
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/guide-streaming-display.md
@@ -0,0 +1,67 @@
+---
+sidebar_label: ストリーミング Markdown 表示
+---
+
+
+# ストリーミング Markdown 表示
+
+このガイドでは、リアルタイムの Markdown レンダリングを使用してストリーミング AI レスポンスを表示する方法を説明します。ストリームからテキストチャンクが到着すると、それらが蓄積され、Markdown ライブラリを使用してフォーマットされた HTML としてレンダリングされます。
+
+## marked.js の使用
+
+[marked](https://www.npmjs.com/package/marked) ライブラリは Markdown を HTML に変換し、ストリーミングテキストとの相性が良好です:
+
+```typescript
+import { marked } from 'marked';
+
+let buffer = '';
+
+const stream = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'summary',
+ stream: true,
+});
+
+stream.on('text', (content) => {
+ buffer += content;
+ // Re-render the full buffer as markdown on each chunk
+ document.getElementById('output').innerHTML = marked.parse(buffer);
+});
+
+const result = await stream.finalResponse();
+console.log('Streaming complete:', result.explanation);
+```
+
+## プログレスメッセージとの組み合わせ
+
+メインコンテンツのストリーミングが開始される前に、プログレスステータスを表示します:
+
+```typescript
+let buffer = '';
+const output = document.getElementById('output');
+
+const stream = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'analysis',
+ stream: true,
+});
+
+stream.on('progress', (message) => {
+ buffer += `*${message}*\n\n`;
+ output.innerHTML = marked.parse(buffer);
+});
+
+stream.on('text', (content) => {
+ buffer += content;
+ output.innerHTML = marked.parse(buffer);
+ output.scrollTop = output.scrollHeight; // Auto-scroll
+});
+
+await stream.finalResponse();
+```
+
+## ヒント
+
+- 各チャンクで HTML フラグメントを追加するのではなく、**バッファー全体を再レンダリング**してください。部分的な Markdown(例:閉じられていない `**bold**`)は、さらにテキストが到着するまで正しくレンダリングされません。
+- ストリーミング中に最新のテキストが表示されるように、コンテナを**自動スクロール**してください。
+- 以前のレスポンスのコンテンツが混在しないように、新しいリクエストを開始する前に**バッファーをクリア**してください。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/insights.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/insights.md
new file mode 100644
index 00000000..afe298c4
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/insights.md
@@ -0,0 +1,125 @@
+---
+sidebar_label: インサイトエンドポイント
+---
+
+
+# インサイトエンドポイント
+
+AI インサイトは、ダッシュボードやビジュアライゼーションを自動的に分析し、自然言語による説明の生成、トレンドやパターンの特定、将来の値の予測を行います。Reveal SDK AI は、高度なアナリティクスの専門知識がなくてもユーザーがデータを理解できるよう、3 種類のインサイトを生成します。
+
+**サマリー** - 主要な指標、トップパフォーマー、全体的なトレンドを強調した簡潔な概要です。
+
+> *"Sales revenue reached $2.4M in Q4 2024, up 18% from Q3. The Technology category led growth with $890K in sales, while the West region showed the strongest performance at $1.1M."*
+
+**分析** - データ内のパターン、異常値、トレンド、相関関係を特定する詳細な解釈です。
+
+> *"Analysis reveals a strong seasonal pattern with peaks in Q4 driven by holiday shopping. The Technology category shows consistent month-over-month growth averaging 12%, while Office Supplies demonstrate more volatility. A notable spike in October coincides with the new product launch campaign."*
+
+**予測** - 過去のデータのトレンドに基づく将来の値の予測です。何期間先まで予測するかを指定できます。
+
+> *"Based on historical trends, Q1 2025 sales are forecasted at $2.1M, with continued growth expected through mid-year. The model predicts Technology category sales will reach $950K by March 2025, representing 15% growth from the current period."*
+
+インサイトは 2 つのレベルで生成できます:
+
+- **ダッシュボードレベル**: ダッシュボード全体を分析し、すべてのビジュアライゼーションを総合的に考慮して包括的なインサイトを提供します
+- **ビジュアライゼーションレベル**: 単一のビジュアライゼーションに焦点を当て、そのビジュアライゼーションのデータに特化した詳細な分析を提供します
+
+---
+
+## エンドポイント
+
+```
+POST /api/reveal/ai/insights
+```
+
+## リクエストフォーマット
+
+```typescript
+{
+ // Dashboard source (use ONE of these)
+ dashboardJson?: string, // Dashboard as JSON string (RDash format)
+ dashboardId?: string, // Dashboard ID (when using IRVDashboardProvider)
+
+ // Optional parameters
+ visualizationId?: string, // Visualization ID for visualization-level insights
+ insightType?: string, // "Summary" | "Analysis" | "Forecast" (default: "Summary")
+ forecastPeriods?: number, // Number of periods to forecast (default: 6, only for Forecast type)
+ stream?: boolean, // Return SSE stream instead of JSON (default: false)
+ model?: string // Optional LLM model override
+}
+```
+
+### リクエストパラメーター
+
+| パラメーター | 型 | 必須 | 説明 |
+|-----------|------|----------|-------------|
+| `dashboardJson` | string | * | ダッシュボードの JSON 文字列。これまたは `dashboardId` を使用します |
+| `dashboardId` | string | * | ダッシュボード識別子。これまたは `dashboardJson` を使用します |
+| `visualizationId` | string | いいえ | 分析するビジュアライゼーション ID。省略した場合、ダッシュボード全体を分析します |
+| `insightType` | string | いいえ | インサイトの種類: `"Summary"`、`"Analysis"`、または `"Forecast"`(デフォルト: `"Summary"`) |
+| `forecastPeriods` | number | いいえ | 予測する期間数(デフォルト: 6)。`insightType` が `"Forecast"` の場合のみ使用されます |
+| `stream` | boolean | いいえ | `true` の場合、プログレスイベント、テキストチャンク、および最終 complete イベントを含む `text/event-stream`(SSE)レスポンスを返します。`false`(デフォルト)の場合、プレーンな `application/json` レスポンスを返します。 |
+| `model` | string | いいえ | このリクエストで使用する特定の LLM モデルの名前 |
+
+\* `dashboardJson` または `dashboardId` のいずれかを指定する必要があります
+
+## レスポンスフォーマット
+
+### 非ストリーミング(デフォルト)
+
+`stream` が `false` または省略された場合、エンドポイントはプレーンな JSON レスポンスを返します。
+
+```json
+{
+ "explanation": "Sales revenue reached $2.4M in Q4 2024, up 18% from Q3..."
+}
+```
+
+エラーの場合、レスポンスには適切な HTTP ステータスコード(400 または 500)とともにエラーメッセージが含まれます。
+
+```json
+{
+ "error": "Error message"
+}
+```
+
+### ストリーミング
+
+`stream` が `true` の場合、エンドポイントは以下のイベントタイプを含む Server-Sent Events(SSE)を返します。
+
+#### progress イベント
+インサイト生成中に現在のステータスを示すために送信されます。
+
+```json
+event: progress
+data: {"message": "Analyzing dashboard data..."}
+```
+
+#### text イベント
+生成された説明テキストのフラグメントを含みます。
+
+```json
+event: text
+data: {"content": "Sales revenue reached $2.4M in Q4 2024"}
+```
+
+#### complete イベント
+インサイトの生成が正常に完了したときに送信されます。常に完全な説明を含みます。
+
+```json
+event: complete
+data: {
+ "message": "Insights generated successfully",
+ "result": {
+ "explanation": "Sales revenue reached $2.4M in Q4 2024, up 18% from Q3..."
+ }
+}
+```
+
+#### error イベント
+インサイトの生成が失敗した場合に送信されます。
+
+```json
+event: error
+data: {"error": "Error message"}
+```
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/install-client-sdk.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/install-client-sdk.md
new file mode 100644
index 00000000..632eaced
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/install-client-sdk.md
@@ -0,0 +1,146 @@
+---
+sidebar_label: クライアント SDK のインストール
+---
+
+
+# AI クライアント SDK のインストール
+
+Reveal SDK AI クライアントは、ウェブアプリケーションに AI 機能を提供する TypeScript/JavaScript ライブラリです。ベースの Reveal SDK と連携して、インサイト、ダッシュボード生成、会話型 AI などのインテリジェントな機能を追加します。
+
+## 前提条件
+
+AI クライアント SDK をインストールする前に、以下を確認してください:
+
+1. ベースの [Reveal SDK サーバー](/web/install-server-sdk) がインストールおよび設定済みであること
+2. [Reveal SDK AI サーバー](install-server-sdk.md) がインストールおよび設定済みであること
+3. Node.js 18+ および npm 9+ がインストール済みであること(パッケージベースのインストールの場合)
+
+## インストール方法
+
+### npm を使用したインストール(推奨)
+
+AI クライアント SDK のインストールには npm の使用を推奨します:
+
+```bash npm2yarn
+npm install @revealbi/api
+```
+
+### CDN を使用したインストール
+
+クイックプロトタイピングやデモ用には、unpkg CDN を使用できます:
+
+```html
+
+```
+
+または jsDelivr を使用する場合:
+
+```html
+
+```
+
+## TypeScript サポート
+
+AI クライアント SDK は TypeScript で記述されており、完全な型定義を含んでいます。追加の `@types` パッケージは必要ありません。
+
+## フレームワーク別のセットアップ
+
+### バニラ JavaScript
+
+#### ES Modules を使用する場合
+
+```html
+
+
+
+ Reveal AI
+
+
+
+
+
+
+
+```
+
+#### UMD バンドルを使用する場合
+
+```html
+
+
+
+ Reveal AI
+
+
+
+
+
+
+
+
+```
+
+### Angular
+
+`main.ts` ファイルで、アプリケーションのブートストラップ前に初期化します:
+
+```typescript
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+import { RevealSdkClient } from '@revealbi/api';
+import { AppModule } from './app/app.module';
+
+RevealSdkClient.initialize({
+ hostUrl: 'https://your-server.com'
+});
+
+platformBrowserDynamic()
+ .bootstrapModule(AppModule)
+ .catch(err => console.error(err));
+```
+
+### React
+
+`index.tsx` または `main.tsx` ファイルで、レンダリング前に初期化します:
+
+```typescript
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+import { RevealSdkClient } from '@revealbi/api';
+import App from './App';
+
+RevealSdkClient.initialize({
+ hostUrl: 'https://your-server.com'
+});
+
+ReactDOM.createRoot(document.getElementById('root')!).render(
+
+
+
+);
+```
+
+### Vue
+
+`main.ts` ファイルで、アプリケーションのマウント前に初期化します:
+
+```typescript
+import { createApp } from 'vue';
+import { RevealSdkClient } from '@revealbi/api';
+import App from './App.vue';
+
+RevealSdkClient.initialize({
+ hostUrl: 'https://your-server.com'
+});
+
+createApp(App).mount('#app');
+```
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/install-server-sdk.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/install-server-sdk.md
new file mode 100644
index 00000000..c6efb19a
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/install-server-sdk.md
@@ -0,0 +1,183 @@
+---
+sidebar_label: サーバー SDK のインストール
+---
+
+
+# AI サーバー SDK のインストール
+
+Reveal SDK AI サーバーは、アプリケーションで AI 機能を動作させるために必要なバックエンドサービスを提供します。LLM プロバイダーと統合し、インサイト生成、ダッシュボード作成、会話型アナリティクスなどの AI 操作を管理します。
+
+## 前提条件
+
+AI サーバー SDK をインストールする前に、以下を確認してください:
+
+1. ベースの [Reveal SDK サーバー](/web/install-server-sdk) がインストールおよび設定済みであること
+2. .NET 8.0 以上
+3. 少なくとも1つの LLM プロバイダー(OpenAI、Anthropic、Google など)へのアクセス
+4. LLM プロバイダーの API キーが設定済みであること
+
+## インストール方法
+
+### ASP.NET Core
+
+ASP.NET Core 用の AI サーバー SDK は NuGet パッケージとして配布されています。
+
+#### ステップ 1: NuGet パッケージのインストール
+
+ソリューションまたはプロジェクトを右クリックし、**Manage NuGet Packages** for Solution を選択します。
+
+
+
+パッケージマネージャーダイアログで **Browse** タブを開き、**Reveal.Sdk.AI.AspNetCore** NuGet パッケージをプロジェクトにインストールします。
+
+**パッケージ名:** `Reveal.Sdk.AI.AspNetCore`
+
+または Package Manager Console を使用する場合:
+
+```bash
+Install-Package Reveal.Sdk.AI.AspNetCore
+```
+
+または .NET CLI を使用する場合:
+
+```bash
+dotnet add package Reveal.Sdk.AI.AspNetCore
+```
+
+#### ステップ 2: サービスの設定
+
+`Program.cs` ファイルを開いて変更し、AI サービスを追加します。AI SDK はベースの Reveal SDK を拡張するため、両方の設定が必要です:
+
+```csharp
+using Reveal.Sdk;
+using Reveal.Sdk.AI;
+
+var builder = WebApplication.CreateBuilder(args);
+
+// Add Reveal SDK (required)
+builder.Services.AddControllers().AddReveal();
+
+// Add Reveal AI services
+builder.Services.AddRevealAI();
+
+var app = builder.Build();
+app.Run();
+```
+
+#### ステップ 3: LLM プロバイダーのインストールと設定
+
+各 LLM プロバイダーは個別の NuGet パッケージとして配布されています。選択したプロバイダーのパッケージをインストールし、`AddRevealAI()` の後に登録します。
+
+例えば、OpenAI を使用する場合:
+
+```bash
+dotnet add package Reveal.Sdk.AI.OpenAI
+```
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = builder.Configuration["RevealAI:OpenAI:ApiKey"];
+ });
+```
+
+各プロバイダーの詳細なセットアップ手順については、[プロバイダー](/ai/providers-overview) セクションを参照してください:
+
+| プロバイダー | NuGet パッケージ | ガイド |
+|----------|--------------|-------|
+| OpenAI | `Reveal.Sdk.AI.OpenAI` | [セットアップガイド](/ai/providers-openai) |
+| Azure OpenAI | `Reveal.Sdk.AI.AzureOpenAI` | [セットアップガイド](/ai/providers-azure-openai) |
+| Anthropic | `Reveal.Sdk.AI.Anthropic` | [セットアップガイド](/ai/providers-anthropic) |
+| Google Gemini | `Reveal.Sdk.AI.Google` | [セットアップガイド](/ai/providers-google-gemini) |
+
+:::danger API キーをコミットしないでください
+
+API キーをソースコントロールにコミットしないでください。常に環境変数、User Secrets、または安全なキー管理サービスを使用してください。
+
+:::
+
+#### 完全な例
+
+AI 機能が設定された完全な `Program.cs` の例を以下に示します:
+
+```csharp title="Program.cs"
+using Reveal.Sdk;
+using Reveal.Sdk.AI;
+
+var builder = WebApplication.CreateBuilder(args);
+
+// Add CORS for cross-origin requests
+builder.Services.AddCors(options =>
+{
+ options.AddDefaultPolicy(policy =>
+ {
+ policy.WithOrigins("http://localhost:4200")
+ .AllowAnyMethod()
+ .AllowAnyHeader();
+ });
+});
+
+// Add base Reveal SDK
+builder.Services.AddControllers().AddReveal(revealBuilder =>
+{
+ revealBuilder.AddSettings(settings =>
+ {
+ settings.LocalFileStoragePath = "Data";
+ });
+});
+
+// Add Reveal AI with OpenAI provider
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = builder.Configuration["RevealAI:OpenAI:ApiKey"];
+ options.Model = "gpt-4.1";
+ });
+
+var app = builder.Build();
+
+app.UseCors();
+app.MapControllers();
+
+app.Run();
+```
+
+### Node.js(近日公開)
+
+AI サーバー SDK の Node.js サポートは現在開発中であり、将来のリリースで提供される予定です。
+
+現時点では、AI 機能には ASP.NET Core が推奨サーバープラットフォームです。
+
+### Java(近日公開)
+
+AI サーバー SDK の Java サポートは現在開発中であり、将来のリリースで提供される予定です。
+
+現時点では、AI 機能には ASP.NET Core が推奨サーバープラットフォームです。
+
+## インストールの確認
+
+インストール後、AI SDK が正しく設定されていることを確認します:
+
+### ステップ 1: アプリケーションの実行
+
+```bash
+dotnet run
+```
+
+### ステップ 2: AI エンドポイントの確認
+
+AI SDK は `/api/reveal/ai/` 配下にいくつかのエンドポイントを追加します:
+
+プロバイダーエンドポイントをテストします:
+
+```bash
+curl http://localhost:5000/api/reveal/ai/providers
+```
+
+期待されるレスポンス:
+```json
+{
+ "providers": ["openai", "anthropic"]
+}
+```
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/metadata-catalog.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/metadata-catalog.md
new file mode 100644
index 00000000..af84c7a7
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/metadata-catalog.md
@@ -0,0 +1,321 @@
+---
+sidebar_label: メタデータカタログ
+---
+
+
+# メタデータカタログ
+
+**メタデータカタログ**は、Reveal SDK AI で利用可能なデータソースの中心的な定義です。AI に対して、どのようなデータ接続が存在し、各接続がどのプロバイダーを使用し、オプションでそのデータベース、テーブル、フィールドを記述します。**チャット**と**メタデータサービス**の両機能は、データの全体像を理解するためにカタログに依存しています。
+
+## 仕組み
+
+メタデータシステムには、3つの異なる責務があります:
+
+| 関心事 | 目的 |
+|---------|---------|
+| **メタデータカタログ** | どのデータソースが存在し、どのような構造になっているか |
+| **メタデータマネージャー** | 生成されたメタデータファイルがディスク上のどこに書き込まれるか |
+| **メタデータサービス** | メタデータ生成がいつ実行されるか(起動時、スケジュール) |
+
+設定が必要なのは**カタログ**のみです。マネージャーとサービスには適切なデフォルト値があり、設定は任意です。
+
+---
+
+## カタログスキーマ
+
+カタログは `Datasources` 配列を持つ JSON オブジェクトです。各エントリは、プロバイダーとオプションのスキーマ詳細を含むデータソースを定義します。
+
+### 最小限の例
+
+最低限、各データソースには `Id` と `Provider` が必要です:
+
+```json
+{
+ "Datasources": [
+ {
+ "Id": "MyDatabase",
+ "Provider": "SQLServer"
+ }
+ ]
+}
+```
+
+### 完全なスキーマ
+
+```json
+{
+ "Datasources": [
+ {
+ "Id": "MyDatabase",
+ "Provider": "SQLServer",
+ "Databases": [
+ {
+ "Name": "Northwind",
+ "DiscoveryMode": "Default",
+ "Tables": [
+ {
+ "Name": "dbo.Orders",
+ "Description": "Customer purchase orders",
+ "Fields": [
+ {
+ "Name": "OrderDate",
+ "Alias": "Order Date",
+ "Description": "Date the order was placed"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
+```
+
+### スキーマリファレンス
+
+#### データソース
+
+| プロパティ | 型 | 必須 | 説明 |
+|----------|------|----------|-------------|
+| `Id` | string | はい | データソースの一意の識別子。API リクエストで `datasourceId` として使用されます。 |
+| `Provider` | string | はい | データプロバイダーの種類(以下の[プロバイダータイプ](#provider-types)を参照) |
+| `Databases` | array | いいえ | このデータソースで利用可能なデータベーススキーマのリスト |
+
+#### データベース
+
+| プロパティ | 型 | 必須 | 説明 |
+|----------|------|----------|-------------|
+| `Name` | string | はい | データベースの名前 |
+| `DiscoveryMode` | string | いいえ | `"Default"`(すべてのテーブルを検出)または `"Restricted"`(リストされたテーブルのみ)。デフォルトは `"Default"` です。 |
+| `Tables` | array | いいえ | このデータベース内のテーブルスキーマのリスト |
+
+#### テーブル
+
+| プロパティ | 型 | 必須 | 説明 |
+|----------|------|----------|-------------|
+| `Name` | string | はい | 完全修飾テーブル名(例: `"dbo.Orders"`) |
+| `Description` | string | いいえ | 人間が読める説明。テーブルの内容を AI が理解するのに役立ちます。 |
+| `Fields` | array | いいえ | このテーブル内のフィールドスキーマのリスト |
+
+#### フィールド
+
+| プロパティ | 型 | 必須 | 説明 |
+|----------|------|----------|-------------|
+| `Name` | string | はい | データベース内の実際のカラム名 |
+| `Alias` | string | いいえ | フィールドの表示エイリアス(例: `"OrderDate"` に対して `"Order Date"`) |
+| `Description` | string | いいえ | 人間が読める説明。フィールドが何を表しているかを AI が理解するのに役立ちます。 |
+
+### プロバイダータイプ {#provider-types}
+
+一般的なプロバイダー値:
+
+| プロバイダー | 説明 |
+|----------|-------------|
+| `SQLServer` | Microsoft SQL Server |
+| `PostgreSQL` | PostgreSQL |
+| `MySQL` | MySQL |
+| `Oracle` | Oracle(サービス名) |
+| `OracleSID` | Oracle(SID) |
+| `SSAS` | SQL Server Analysis Services |
+| `SSASHTTP` | SQL Server Analysis Services(HTTP) |
+| `Snowflake` | Snowflake |
+| `BigQuery` | Google BigQuery |
+| `AmazonAthena` | Amazon Athena |
+| `AmazonRedshift` | Amazon Redshift |
+| `MongoDB` | MongoDB |
+| `WebService` | Web サービス / REST API / Excel ファイル |
+
+---
+
+## カタログソース
+
+カタログは、ディスク上の JSON ファイルから読み込むか、完全なカスタムプロバイダー(例: データベースバックエンド)から読み込むことができます。
+
+### オプション 1: ディスク上の JSON ファイル
+
+カタログを独立した JSON ファイルに保存します。これは最もシンプルなアプローチで、データソース定義をアプリケーション設定とは別に管理したい場合、環境間で共有したい場合、または CI/CD パイプラインから生成したい場合に便利です。
+
+**1. カタログファイルの作成:**
+
+```json title="config/catalog.json"
+{
+ "Datasources": [
+ {
+ "Id": "NorthwindDB",
+ "Provider": "SQLServer",
+ "Databases": [
+ {
+ "Name": "Northwind",
+ "DiscoveryMode": "Restricted",
+ "Tables": [
+ { "Name": "dbo.Orders", "Description": "Customer purchase orders" },
+ { "Name": "dbo.Customers", "Description": "Customer contact information" },
+ { "Name": "dbo.Products", "Description": "Product catalog" }
+ ]
+ }
+ ]
+ }
+ ]
+}
+```
+
+**2. ビルダーでファイルを指定:**
+
+```csharp title="Program.cs"
+builder.Services.AddRevealAI()
+ .UseMetadataCatalogFile("config/catalog.json")
+ .AddOpenAI();
+```
+
+絶対パスと相対パスの両方がサポートされています。相対パスはアプリケーションの現在の作業ディレクトリを基準に解決されます。
+
+### オプション 2: カスタムプロバイダー
+
+`IMetadataCatalogProvider` を実装して、任意のソース(データベース、API、キー保管庫など)からデータソース定義を読み込みます。
+
+**1. インターフェースの実装:**
+
+```csharp title="DatabaseCatalogProvider.cs"
+using Reveal.Sdk.AI.Metadata.Catalog;
+
+public class DatabaseCatalogProvider : IMetadataCatalogProvider
+{
+ private readonly IMyDatasourceRepository _repository;
+
+ public DatabaseCatalogProvider(IMyDatasourceRepository repository)
+ {
+ _repository = repository;
+ }
+
+ public async Task GetCatalogAsync()
+ {
+ var datasources = await _repository.GetAllDatasourcesAsync();
+
+ return new MetadataCatalog
+ {
+ Datasources = datasources.Select(ds => new DatasourceSchema
+ {
+ Id = ds.Id,
+ Provider = Enum.Parse(ds.ProviderType)
+ }).ToList()
+ };
+ }
+}
+```
+
+**2. プロバイダーの登録:**
+
+```csharp title="Program.cs"
+builder.Services.AddRevealAI()
+ .UseMetadataCatalogProvider()
+ .AddOpenAI();
+```
+
+プロバイダークラスは依存性注入を通じて解決されるため、コンストラクタで必要なサービスを注入できます。
+
+---
+
+## メタデータマネージャーオプション
+
+**メタデータマネージャー**は、生成されたメタデータファイルがディスク上のどこに書き込まれるかを制御します。これらのファイルは一時的なものであり、自動的に生成され、いつでも再生成できます。
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "MetadataManager": {
+ "OutputPath": "D:\\metadata\\output"
+ }
+ }
+}
+```
+
+| プロパティ | 型 | 必須 | 説明 |
+|----------|------|----------|-------------|
+| `OutputPath` | string | いいえ | 生成されたメタデータファイルが保存されるディレクトリ。デフォルトは `{user-home}/reveal/ai/metadata` です。 |
+
+---
+
+## メタデータサービスオプション
+
+**メタデータサービス**は、メタデータがいつ生成されるかを制御します。アプリケーション起動時、定期的なスケジュール、またはその両方で生成をトリガーできます。
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "MetadataService": {
+ "GenerateOnStartup": true,
+ "CronSchedule": "0 0 * * *"
+ }
+ }
+}
+```
+
+| プロパティ | 型 | 必須 | 説明 |
+|----------|------|----------|-------------|
+| `GenerateOnStartup` | boolean | いいえ | `true` の場合、アプリケーション起動時にメタデータを生成します。デフォルトは `false` です。 |
+| `CronSchedule` | string | いいえ | 定期的なメタデータ生成のための Cron 式(例: 毎日深夜に実行する場合は `"0 0 * * *"`)。 |
+
+---
+
+## 完全な設定例
+
+カタログファイル、マネージャーとサービスオプション用の `appsettings.json`、および `Program.cs` のセットアップを示す完全な例を以下に示します:
+
+```json title="config/catalog.json"
+{
+ "Datasources": [
+ {
+ "Id": "NorthwindDB",
+ "Provider": "SQLServer",
+ "Databases": [
+ {
+ "Name": "Northwind",
+ "DiscoveryMode": "Restricted",
+ "Tables": [
+ {
+ "Name": "dbo.Orders",
+ "Description": "Customer purchase orders",
+ "Fields": [
+ { "Name": "OrderDate", "Alias": "Order Date", "Description": "Date the order was placed" },
+ { "Name": "ShipCountry", "Alias": "Ship Country" }
+ ]
+ },
+ {
+ "Name": "dbo.Customers",
+ "Description": "Customer contact information"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "Id": "SalesExcel",
+ "Provider": "WebService"
+ }
+ ]
+}
+```
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "OpenAI": {
+ "ApiKey": "sk-your-api-key-here"
+ },
+ "MetadataManager": {
+ "OutputPath": "D:\\metadata\\output"
+ },
+ "MetadataService": {
+ "GenerateOnStartup": true,
+ "CronSchedule": "0 0 * * *"
+ }
+ }
+}
+```
+
+```csharp title="Program.cs"
+builder.Services.AddRevealAI()
+ .UseMetadataCatalogFile("config/catalog.json")
+ .AddOpenAI();
+```
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/overview.md
new file mode 100644
index 00000000..eab65079
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/overview.md
@@ -0,0 +1,95 @@
+---
+sidebar_label: 概要
+---
+
+
+# Reveal SDK AI の概要
+
+Reveal SDK AI は、Reveal BI アプリケーションに強力な人工知能機能を追加し、ユーザーが自然言語を通じてインサイトを取得しデータと対話できるようにします。
+
+## Reveal SDK AI とは?
+
+Reveal SDK AI は、大規模言語モデル(LLM)を統合して以下の機能を提供する Reveal SDK の拡張機能です:
+
+- **AI 生成インサイト**: ダッシュボードやビジュアライゼーションのサマリー、分析、予測を自動的に生成します
+- **会話型アナリティクス**: データとチャットして、情報の探索、分析、可視化を行います
+
+## 主な機能
+
+### AI インサイト
+
+3種類の分析により、データからインテリジェントなインサイトを生成します:
+
+- **サマリー**: データが示す内容の簡潔な説明を取得します
+- **分析**: トレンド、パターン、異常値の詳細な解釈を受け取ります
+- **予測**: 過去のデータに基づいて将来の値を予測します
+
+すべてのインサイトは、ChatGPT のようなユーザーエクスペリエンスを実現するために、リアルタイムでストリーミングできます。
+
+### 会話型 AI チャット
+
+ユーザーが以下のことを行えるチャットインターフェースを構築します:
+
+- 自然言語でデータに関する質問をする
+- 会話を通じてダッシュボードを生成・変更する
+- フォローアップの質問のために会話コンテキストを維持する
+- レスポンスをリアルタイムでストリーミングする
+
+### 柔軟な API パターン
+
+ユースケースに合ったパターンを選択できます:
+
+**Await パターン** - シンプルで直感的:
+```typescript
+const result = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ insightType: InsightType.Summary
+});
+console.log(result.explanation);
+```
+
+**ストリーミングパターン** - リアルタイム更新:
+```typescript
+const stream = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ insightType: InsightType.Summary,
+ stream: true,
+});
+
+stream.on('text', (content) => {
+ // Display text as it arrives
+ console.log(content);
+});
+
+const result = await stream.finalResponse();
+console.log('Complete!');
+```
+
+## アーキテクチャ
+
+Reveal SDK AI は2つの主要コンポーネントで構成されています:
+
+### クライアント SDK (TypeScript/JavaScript)
+
+クライアント SDK はウェブアプリケーション内で動作し、以下を提供します:
+
+- シンプルな初期化と設定
+- すべての AI 操作に対する型安全な API
+- Server-Sent Events (SSE) による組み込みストリーミングサポート
+- リクエストのキャンセルとエラーハンドリング
+
+### サーバー SDK (ASP.NET Core)
+
+サーバー SDK は以下を処理します:
+
+- LLM プロバイダーの統合 (OpenAI、Anthropic、Google など)
+- データソースメタデータの生成とキャッシング
+- インテントベースの LLM ルーティング
+- 会話型 AI のコンテキスト管理
+- セキュリティと認証
+
+## ベータ版について
+
+Reveal SDK AI は現在ベータ版です。コア機能は安定しており開発に使用できますが、ユーザーのフィードバックに基づいて API が変更される可能性があります。ぜひお試しいただき、ご感想をお聞かせください。
+
+一緒にインテリジェントなアナリティクス体験を構築しましょう!
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-anthropic.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-anthropic.md
new file mode 100644
index 00000000..5ed830e3
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-anthropic.md
@@ -0,0 +1,105 @@
+---
+sidebar_label: Anthropic
+---
+
+
+# Anthropic プロバイダー
+
+Anthropic プロバイダーは、Reveal SDK AI を Anthropic の Claude モデルと統合し、Claude ファミリーの AI アシスタントへのアクセスを提供します。
+
+## インストール
+
+Anthropic プロバイダーの NuGet パッケージをインストールします:
+
+```bash
+dotnet add package Reveal.Sdk.AI.Anthropic
+```
+
+## 設定
+
+### 基本セットアップ
+
+`Program.cs` で Anthropic プロバイダーを追加します:
+
+```csharp
+using Reveal.Sdk;
+using Reveal.Sdk.AI;
+
+var builder = WebApplication.CreateBuilder(args);
+
+builder.Services.AddControllers().AddReveal();
+
+builder.Services.AddRevealAI()
+ .AddAnthropic(options =>
+ {
+ options.ApiKey = builder.Configuration["RevealAI:Anthropic:ApiKey"];
+ });
+
+var app = builder.Build();
+app.MapControllers();
+app.Run();
+```
+
+### appsettings.json の使用
+
+プロバイダーは `RevealAI:Anthropic` 設定セクションに自動的にバインドされます:
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "Anthropic": {
+ "ApiKey": "sk-ant-your-api-key-here",
+ "Model": "claude-opus-4-1",
+ "MaxTokens": 4096
+ }
+ }
+}
+```
+
+設定バインディングを使用する場合、コードでのオプション設定は不要です:
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddAnthropic();
+```
+
+## オプション
+
+| プロパティ | 型 | デフォルト | 説明 |
+|----------|------|---------|-------------|
+| `ApiKey` | `string` | `""` | **必須。** Anthropic API キー。 |
+| `Model` | `string` | `"claude-opus-4-1"` | 使用する Claude モデル。 |
+| `MaxTokens` | `int` | `4096` | レスポンスで生成するトークンの最大数。 |
+
+## 利用可能なモデル
+
+Anthropic はいくつかの Claude モデルを提供しています。一般的に使用されるモデルは以下の通りです:
+
+| モデル | 説明 |
+|-------|-------------|
+| `claude-opus-4-1` | 複雑なタスクに最も高い能力を持つモデル(デフォルト) |
+| `claude-sonnet-4-5` | パフォーマンスと速度のバランスが取れたモデル |
+| `claude-haiku-3-5` | 最も高速でコスト効率の良いモデル |
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddAnthropic(options =>
+ {
+ options.ApiKey = builder.Configuration["RevealAI:Anthropic:ApiKey"];
+ options.Model = "claude-sonnet-4-5";
+ options.MaxTokens = 8192;
+ });
+```
+
+## API キーの取得
+
+1. [console.anthropic.com](https://console.anthropic.com) でアカウントを作成します
+2. コンソールで **API Keys** に移動します
+3. 新しい API キーを作成します
+4. User Secrets または環境変数を使用して安全に保管します
+
+:::danger API キーをコミットしないでください
+
+API キーをソースコントロールにコミットしないでください。常に環境変数、User Secrets、または安全なキー管理サービスを使用してください。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-azure-openai.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-azure-openai.md
new file mode 100644
index 00000000..04d4cfa0
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-azure-openai.md
@@ -0,0 +1,115 @@
+---
+sidebar_label: Azure OpenAI
+---
+
+
+# Azure OpenAI プロバイダー
+
+Azure OpenAI プロバイダーは、Reveal SDK AI を Azure の OpenAI Service と統合し、エンタープライズグレードのセキュリティとコンプライアンスを備えた独自の Azure サブスクリプションにデプロイされた OpenAI モデルを使用できます。
+
+## インストール
+
+Azure OpenAI プロバイダーの NuGet パッケージをインストールします:
+
+```bash
+dotnet add package Reveal.Sdk.AI.AzureOpenAI
+```
+
+## 設定
+
+### 基本セットアップ
+
+`Program.cs` で Azure OpenAI プロバイダーを追加します:
+
+```csharp
+using Reveal.Sdk;
+using Reveal.Sdk.AI;
+
+var builder = WebApplication.CreateBuilder(args);
+
+builder.Services.AddControllers().AddReveal();
+
+builder.Services.AddRevealAI()
+ .AddAzureOpenAI(options =>
+ {
+ options.ApiKey = builder.Configuration["RevealAI:AzureOpenAI:ApiKey"];
+ options.Endpoint = "https://your-resource-name.openai.azure.com/";
+ options.DeploymentName = "gpt-4o";
+ });
+
+var app = builder.Build();
+app.MapControllers();
+app.Run();
+```
+
+### appsettings.json の使用
+
+プロバイダーは `RevealAI:AzureOpenAI` 設定セクションに自動的にバインドされます:
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "AzureOpenAI": {
+ "ApiKey": "your-azure-api-key",
+ "Endpoint": "https://your-resource-name.openai.azure.com/",
+ "DeploymentName": "gpt-4o",
+ "Temperature": 0.0,
+ "MaxTokens": 4096
+ }
+ }
+}
+```
+
+設定バインディングを使用する場合、コードでのオプション設定は不要です:
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddAzureOpenAI();
+```
+
+## オプション
+
+| プロパティ | 型 | デフォルト | 説明 |
+|----------|------|---------|-------------|
+| `ApiKey` | `string` | `""` | **必須。** Azure OpenAI API キー。 |
+| `Endpoint` | `string` | `""` | **必須。** Azure OpenAI エンドポイント URL(例: `https://your-resource-name.openai.azure.com/`)。 |
+| `DeploymentName` | `string` | `""` | **必須。** Azure でのモデルデプロイメント名。 |
+| `Temperature` | `float?` | `0.0` | ランダム性を制御(0.0 〜 2.0)。低い値ほど決定論的です。 |
+| `MaxTokens` | `int?` | `4096` | レスポンスで生成するトークンの最大数。 |
+| `TopP` | `float?` | `1.0` | Nucleus サンプリングパラメータ。 |
+| `ReasoningEffort` | `string?` | `null` | 推論モデル(o3、o4 など)の推論努力レベル。 |
+
+## Azure セットアップの前提条件
+
+Azure OpenAI プロバイダーを使用する前に、以下が必要です:
+
+1. Azure OpenAI Service にアクセスできる **Azure サブスクリプション**
+2. Azure ポータルで作成された **Azure OpenAI リソース**
+3. そのリソース内の **モデルデプロイメント**(例: GPT-4o、GPT-4.1)
+4. Azure ポータルからの **API キー** と **エンドポイント**
+
+API キーとエンドポイントは、Azure ポータルの Azure OpenAI リソースの **Keys and Endpoint** セクションで確認できます。
+
+## 推論モデル
+
+OpenAI プロバイダーと同様に、Azure OpenAI プロバイダーも推論モデルのデプロイメント(o1、o3、o4、gpt-5)を自動的に検出し、動作を調整します:
+
+- 推論モデルでは Temperature が無効化されます
+- 推論努力を設定できます
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddAzureOpenAI(options =>
+ {
+ options.ApiKey = builder.Configuration["RevealAI:AzureOpenAI:ApiKey"];
+ options.Endpoint = "https://your-resource.openai.azure.com/";
+ options.DeploymentName = "o3";
+ options.ReasoningEffort = "Medium";
+ });
+```
+
+:::danger API キーをコミットしないでください
+
+API キーをソースコントロールにコミットしないでください。常に環境変数、User Secrets、または安全なキー管理サービスを使用してください。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-building-custom.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-building-custom.md
new file mode 100644
index 00000000..12ba4fa7
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-building-custom.md
@@ -0,0 +1,209 @@
+---
+sidebar_label: カスタムプロバイダーの構築
+---
+
+
+# カスタムプロバイダーの構築
+
+標準でサポートされていない LLM サービスと統合する必要がある場合、`IAIProvider` インターフェースを実装し、SDK に登録することでカスタムプロバイダーを作成できます。
+
+## ステップ 1: プロバイダークラスの作成
+
+`IAIProvider` インターフェースを実装します:
+
+```csharp
+using Reveal.Sdk.AI;
+
+public class MyCustomProvider : IAIProvider
+{
+ private readonly string _apiKey;
+ private readonly string _model;
+
+ public MyCustomProvider(string apiKey, string model)
+ {
+ _apiKey = apiKey;
+ _model = model;
+ }
+
+ public async Task SendPromptAsync(
+ ProviderRequest request,
+ CancellationToken cancellationToken = default)
+ {
+ var model = request.Model ?? _model;
+
+ // ここで LLM サービスを呼び出します
+ var result = await CallMyLLMService(request.Prompt, model, cancellationToken);
+
+ return new ProviderResponse
+ {
+ Content = result.Text,
+ FinishReason = FinishReason.Stop,
+ Usage = new TokenUsage
+ {
+ InputTokens = result.InputTokens,
+ OutputTokens = result.OutputTokens
+ },
+ Model = model
+ };
+ }
+
+ private async Task CallMyLLMService(
+ string prompt, string model, CancellationToken cancellationToken)
+ {
+ // LLM 統合ロジックをここに実装します
+ throw new NotImplementedException();
+ }
+}
+```
+
+### IAIProvider インターフェース
+
+`IAIProvider` インターフェースは単一のメソッドを定義します:
+
+```csharp
+public interface IAIProvider
+{
+ Task SendPromptAsync(
+ ProviderRequest request,
+ CancellationToken cancellationToken = default);
+}
+```
+
+### ProviderRequest
+
+リクエストオブジェクトには以下が含まれます:
+
+| プロパティ | 型 | 説明 |
+|----------|------|-------------|
+| `Prompt` | `string` | LLM に送信するプロンプト。 |
+| `Intent` | `string` | リクエストのインテント(例: `"default"`)。 |
+| `Model` | `string?` | オプションのモデルオーバーライド。`null` の場合、プロバイダーのデフォルトモデルを使用します。 |
+
+### ProviderResponse
+
+プロバイダーは `ProviderResponse` を返す必要があります:
+
+| プロパティ | 型 | 説明 |
+|----------|------|-------------|
+| `Content` | `string` | 生成されたテキストコンテンツ。 |
+| `FinishReason` | `FinishReason` | 生成が停止した理由: `Stop`、`Length`、または `ContentFilter`。 |
+| `Usage` | `TokenUsage?` | オプションのトークン使用量情報。 |
+| `Model` | `string?` | 実際に使用されたモデル。 |
+
+## ステップ 2: プロバイダーの登録
+
+`IRevealAIBuilder` の `AddProvider` メソッドを使用してカスタムプロバイダーを登録します:
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddProvider("my-custom", sp =>
+ {
+ var config = sp.GetRequiredService();
+ return new MyCustomProvider(
+ apiKey: config["RevealAI:MyCustom:ApiKey"],
+ model: config["RevealAI:MyCustom:Model"] ?? "default-model"
+ );
+ });
+```
+
+最初のパラメータは **プロバイダーキー** — プロバイダーを解決するために使用される一意の文字列識別子です。2番目のパラメータは、依存性注入用の `IServiceProvider` を受け取るファクトリ関数です。
+
+## ステップ 3: デフォルトとして設定(オプション)
+
+カスタムプロバイダーをデフォルトにするには:
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "DefaultProvider": "my-custom"
+ }
+}
+```
+
+## 完全な例
+
+設定バインディングを使用した完全な例を以下に示します:
+
+```csharp title="MyCustomProvider.cs"
+using Reveal.Sdk.AI;
+
+public class MyCustomOptions
+{
+ public string ApiKey { get; set; } = string.Empty;
+ public string Model { get; set; } = "default-model";
+ public int MaxTokens { get; set; } = 4096;
+}
+
+public class MyCustomProvider : IAIProvider
+{
+ private readonly MyCustomOptions _options;
+
+ public MyCustomProvider(MyCustomOptions options)
+ {
+ _options = options ?? throw new ArgumentNullException(nameof(options));
+ }
+
+ public async Task SendPromptAsync(
+ ProviderRequest request,
+ CancellationToken cancellationToken = default)
+ {
+ var model = request.Model ?? _options.Model;
+
+ // LLM 統合ロジック
+ var responseText = await CallYourService(request.Prompt, model, cancellationToken);
+
+ return new ProviderResponse
+ {
+ Content = responseText,
+ FinishReason = FinishReason.Stop,
+ Model = model
+ };
+ }
+
+ private Task CallYourService(
+ string prompt, string model, CancellationToken cancellationToken)
+ {
+ // LLM サービス呼び出しを実装します
+ throw new NotImplementedException();
+ }
+}
+```
+
+```csharp title="Program.cs"
+using Reveal.Sdk;
+using Reveal.Sdk.AI;
+
+var builder = WebApplication.CreateBuilder(args);
+
+builder.Services.AddControllers().AddReveal();
+
+builder.Services.AddRevealAI()
+ .AddProvider("my-custom", sp =>
+ {
+ var config = sp.GetRequiredService();
+ var options = new MyCustomOptions
+ {
+ ApiKey = config["RevealAI:MyCustom:ApiKey"] ?? "",
+ Model = config["RevealAI:MyCustom:Model"] ?? "default-model",
+ MaxTokens = int.Parse(config["RevealAI:MyCustom:MaxTokens"] ?? "4096")
+ };
+ return new MyCustomProvider(options);
+ });
+
+var app = builder.Build();
+app.MapControllers();
+app.Run();
+```
+
+## ビルトインプロバイダーとの併用
+
+カスタムプロバイダーはビルトインプロバイダーと一緒に登録できます:
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddOpenAI()
+ .AddProvider("my-custom", sp =>
+ {
+ return new MyCustomProvider(/* ... */);
+ });
+```
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-custom-endpoints.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-custom-endpoints.md
new file mode 100644
index 00000000..124f9e35
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-custom-endpoints.md
@@ -0,0 +1,80 @@
+---
+sidebar_label: カスタムエンドポイント
+---
+
+
+# カスタムエンドポイント
+
+OpenAI プロバイダーを使用して、任意の OpenAI 互換 API エンドポイントに接続できます。これは、ローカルモデルサーバー、サードパーティプロバイダー、または OpenAI 互換のチャット補完 API を公開するセルフホスト型モデルに接続する場合に便利です。
+
+## 設定
+
+OpenAI プロバイダーの `Endpoint` オプションを設定して、カスタム API を指定します:
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = "your-api-key";
+ options.Endpoint = "https://your-custom-endpoint.com/v1";
+ options.Model = "your-model-name";
+ });
+```
+
+または `appsettings.json` を使用する場合:
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "OpenAI": {
+ "ApiKey": "your-api-key",
+ "Endpoint": "https://your-custom-endpoint.com/v1",
+ "Model": "your-model-name"
+ }
+ }
+}
+```
+
+## 一般的なユースケース
+
+### ローカルモデルサーバー
+
+[Ollama](https://ollama.ai)、[LM Studio](https://lmstudio.ai)、[vLLM](https://github.com/vllm-project/vllm) などのツールは、直接使用できる OpenAI 互換 API を提供しています:
+
+```csharp
+// Ollama の例
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = "ollama"; // Ollama は実際のキーを必要としません
+ options.Endpoint = "http://localhost:11434/v1";
+ options.Model = "llama3";
+ });
+```
+
+### サードパーティプロバイダー
+
+多くの AI プロバイダーが OpenAI 互換エンドポイントを提供しています:
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = "your-provider-api-key";
+ options.Endpoint = "https://api.provider.com/v1";
+ options.Model = "provider-model-name";
+ });
+```
+
+## 制限事項
+
+カスタムエンドポイントを使用する場合、以下の点にご注意ください:
+
+- エンドポイントは OpenAI Chat Completions API 形式をサポートしている必要があります
+- トークン使用量の報告はエンドポイントの互換性に依存します
+- 推論モデルの検出はモデル名のパターン(o1、o3、o4、gpt-5)に基づいており、カスタムモデルには適用されない場合があります
+- 一部の高度な機能はすべてのカスタムエンドポイントでサポートされるとは限りません
+
+## カスタムプロバイダー
+
+エンドポイントが OpenAI 互換 API 形式に従っていない場合は、代わりに[カスタムプロバイダーの構築](providers-building-custom.md)を検討してください。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-google-gemini.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-google-gemini.md
new file mode 100644
index 00000000..cdb811e2
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-google-gemini.md
@@ -0,0 +1,137 @@
+---
+sidebar_label: Google Gemini
+---
+
+
+# Google Gemini プロバイダー
+
+Google Gemini プロバイダーは、Reveal SDK AI を Google Cloud の Vertex AI プラットフォームと統合し、Google の Gemini ファミリーのモデルへのアクセスを可能にします。
+
+## インストール
+
+Google プロバイダーの NuGet パッケージをインストールします:
+
+```bash
+dotnet add package Reveal.Sdk.AI.Google
+```
+
+## 設定
+
+### 基本セットアップ
+
+`Program.cs` で Google Gemini プロバイダーを追加します:
+
+```csharp
+using Reveal.Sdk;
+using Reveal.Sdk.AI;
+
+var builder = WebApplication.CreateBuilder(args);
+
+builder.Services.AddControllers().AddReveal();
+
+builder.Services.AddRevealAI()
+ .AddGoogle(options =>
+ {
+ options.ProjectId = "your-gcp-project-id";
+ options.CredentialsPath = "/path/to/credentials.json";
+ });
+
+var app = builder.Build();
+app.MapControllers();
+app.Run();
+```
+
+### appsettings.json の使用
+
+プロバイダーは `RevealAI:Google` 設定セクションに自動的にバインドされます:
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "Google": {
+ "ProjectId": "your-gcp-project-id",
+ "CredentialsPath": "/path/to/credentials.json",
+ "Location": "us-central1",
+ "Model": "gemini-2.5-pro"
+ }
+ }
+}
+```
+
+設定バインディングを使用する場合、コードでのオプション設定は不要です:
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddGoogle();
+```
+
+## オプション
+
+| プロパティ | 型 | デフォルト | 説明 |
+|----------|------|---------|-------------|
+| `ProjectId` | `string` | `""` | **必須。** Google Cloud プロジェクト ID。 |
+| `CredentialsPath` | `string` | `""` | Google Cloud 認証情報 JSON ファイルのパス。 |
+| `Location` | `string` | `"us-central1"` | モデルの Google Cloud リージョン。 |
+| `Publisher` | `string` | `"google"` | モデルのパブリッシャー。 |
+| `Model` | `string` | `"gemini-2.5-pro"` | 使用する Gemini モデル。 |
+| `Temperature` | `float` | `0` | ランダム性を制御(0.0 〜 2.0)。低い値ほど決定論的です。 |
+| `MaxTokens` | `int` | `32768` | レスポンスで生成するトークンの最大数。 |
+| `TopP` | `float` | `1` | Nucleus サンプリングパラメータ(0.0 〜 1.0)。 |
+| `TopK` | `float` | `32` | Top-K サンプリングパラメータ。考慮するトップトークン数を制御します。 |
+
+## Google Cloud の前提条件
+
+Google Gemini プロバイダーを使用する前に、以下が必要です:
+
+1. 課金が有効な **Google Cloud プロジェクト**
+2. プロジェクトで **Vertex AI API** が有効化されていること
+3. Vertex AI ユーザーロールを持つ **サービスアカウント**
+4. サービスアカウントの **認証情報 JSON ファイル**
+
+### 認証情報のセットアップ
+
+1. [Google Cloud Console](https://console.cloud.google.com) にアクセスします
+2. **IAM と管理** > **サービスアカウント** に移動します
+3. 新しいサービスアカウントを作成するか、既存のものを選択します
+4. **Vertex AI ユーザー** ロールを付与します
+5. JSON 形式でキーを作成し、ダウンロードします
+6. `CredentialsPath` オプションをダウンロードした JSON ファイルのパスに設定します
+
+プロバイダーは `CredentialsPath` オプションに基づいて、`GOOGLE_APPLICATION_CREDENTIALS` 環境変数を自動的に設定します。
+
+## 利用可能なモデル
+
+| モデル | 説明 |
+|-------|-------------|
+| `gemini-2.5-pro` | 最も高性能な Gemini モデル(デフォルト) |
+| `gemini-2.5-flash` | ほとんどのタスクに高速で効率的 |
+| `gemini-2.0-flash` | 前世代の高速モデル |
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddGoogle(options =>
+ {
+ options.ProjectId = "your-project-id";
+ options.CredentialsPath = "/path/to/credentials.json";
+ options.Model = "gemini-2.5-flash";
+ options.Location = "us-east1";
+ });
+```
+
+## リージョン
+
+`Location` オプションは、リクエストを処理する Google Cloud リージョンを決定します。一般的なオプションは以下の通りです:
+
+- `us-central1`(デフォルト)
+- `us-east1`
+- `europe-west1`
+- `asia-northeast1`
+- `global`
+
+レイテンシーを低減するために、アプリケーションに近いリージョンを選択してください。
+
+:::danger 認証情報をコミットしないでください
+
+Google Cloud 認証情報 JSON ファイルをソースコントロールにコミットしないでください。安全に保管し、環境変数または User Secrets を通じてパスを参照してください。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-openai.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-openai.md
new file mode 100644
index 00000000..92728b89
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-openai.md
@@ -0,0 +1,114 @@
+---
+sidebar_label: OpenAI
+---
+
+
+# OpenAI プロバイダー
+
+OpenAI プロバイダーは、Reveal SDK AI を OpenAI のチャット補完 API と統合し、GPT-4.1、GPT-4o、および o3 や o4 などの推論モデルへのアクセスを可能にします。
+
+## インストール
+
+OpenAI プロバイダーの NuGet パッケージをインストールします:
+
+```bash
+dotnet add package Reveal.Sdk.AI.OpenAI
+```
+
+## 設定
+
+### 基本セットアップ
+
+`Program.cs` で OpenAI プロバイダーを追加します:
+
+```csharp
+using Reveal.Sdk;
+using Reveal.Sdk.AI;
+
+var builder = WebApplication.CreateBuilder(args);
+
+builder.Services.AddControllers().AddReveal();
+
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = builder.Configuration["RevealAI:OpenAI:ApiKey"];
+ });
+
+var app = builder.Build();
+app.MapControllers();
+app.Run();
+```
+
+### appsettings.json の使用
+
+プロバイダーは `RevealAI:OpenAI` 設定セクションに自動的にバインドされます:
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "OpenAI": {
+ "ApiKey": "sk-your-api-key-here",
+ "Model": "gpt-4.1",
+ "Temperature": 0.0,
+ "MaxTokens": 4096
+ }
+ }
+}
+```
+
+設定バインディングを使用する場合、コードでのオプション設定は不要です:
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddOpenAI();
+```
+
+## オプション
+
+| プロパティ | 型 | デフォルト | 説明 |
+|----------|------|---------|-------------|
+| `ApiKey` | `string` | `""` | **必須。** OpenAI API キー。 |
+| `Model` | `string` | `"gpt-4.1"` | チャット補完に使用するモデル。 |
+| `Temperature` | `float?` | `0.0` | ランダム性を制御(0.0 〜 2.0)。低い値ほど決定論的です。 |
+| `MaxTokens` | `int?` | `4096` | レスポンスで生成するトークンの最大数。 |
+| `TopP` | `float?` | `1.0` | Nucleus サンプリングパラメータ。 |
+| `Endpoint` | `string` | `""` | カスタムエンドポイント URL。OpenAI 互換 API に使用します。 |
+| `ReasoningEffort` | `string?` | `null` | 推論モデル(o3、o4 など)の推論努力レベル。 |
+
+## 推論モデル
+
+プロバイダーは推論モデル(o1、o3、o4、gpt-5)を自動的に検出し、動作を調整します:
+
+- 推論モデルでは Temperature が無効化されます
+- `ReasoningEffort` オプションで推論努力を設定できます
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = builder.Configuration["RevealAI:OpenAI:ApiKey"];
+ options.Model = "o3";
+ options.ReasoningEffort = "Medium";
+ });
+```
+
+## カスタムエンドポイント
+
+OpenAI 互換 API(ローカルモデルサーバーなど)を使用している場合、カスタムエンドポイントを指定できます:
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = "your-api-key";
+ options.Endpoint = "https://your-custom-endpoint.com/v1";
+ options.Model = "your-model-name";
+ });
+```
+
+:::danger API キーをコミットしないでください
+
+API キーをソースコントロールにコミットしないでください。常に環境変数、User Secrets、または安全なキー管理サービスを使用してください。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-overview.md
new file mode 100644
index 00000000..ee3980d7
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/providers-overview.md
@@ -0,0 +1,89 @@
+---
+sidebar_label: 概要
+---
+
+
+# AI プロバイダーの概要
+
+Reveal SDK AI は、さまざまな大規模言語モデル(LLM)サービスと統合できるプロバイダーベースのアーキテクチャを採用しています。各プロバイダーは個別の NuGet パッケージとして配布されるため、必要なものだけをインストールできます。
+
+## 利用可能なプロバイダー
+
+| プロバイダー | NuGet パッケージ | 拡張メソッド |
+|----------|--------------|-----------------|
+| [OpenAI](providers-openai.md) | `Reveal.Sdk.AI.OpenAI` | `.AddOpenAI()` |
+| [Azure OpenAI](providers-azure-openai.md) | `Reveal.Sdk.AI.AzureOpenAI` | `.AddAzureOpenAI()` |
+| [Anthropic](providers-anthropic.md) | `Reveal.Sdk.AI.Anthropic` | `.AddAnthropic()` |
+| [Google Gemini](providers-google-gemini.md) | `Reveal.Sdk.AI.Google` | `.AddGoogle()` |
+
+## プロバイダーの仕組み
+
+すべてのプロバイダーは `IAIProvider` インターフェースを実装し、`IRevealAIBuilder` のフルーエント API を通じて登録されます。SDK はキー付きサービスを使用した依存性注入を採用しており、複数のプロバイダーを同時に登録できます。
+
+### プロバイダーの登録
+
+プロバイダーは `AddRevealAI()` の後に拡張メソッドをチェーンして追加します:
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddOpenAI(options =>
+ {
+ options.ApiKey = "your-api-key";
+ })
+ .AddAnthropic(options =>
+ {
+ options.ApiKey = "your-api-key";
+ });
+```
+
+### デフォルトプロバイダー
+
+特定のプロバイダーが指定されていない場合、SDK はデフォルトプロバイダーを使用します。`appsettings.json` で設定できます:
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "DefaultProvider": "openai"
+ }
+}
+```
+
+利用可能なプロバイダーキー: `openai`、`azure-openai`、`anthropic`、`google`。
+
+### 設定のバインディング
+
+すべてのプロバイダーは `appsettings.json` の `RevealAI` セクションからの設定バインディングをサポートしています。コードで設定したオプションは設定ファイルの値よりも優先されます:
+
+```json title="appsettings.json"
+{
+ "RevealAI": {
+ "DefaultProvider": "openai",
+ "OpenAI": {
+ "ApiKey": "sk-...",
+ "Model": "gpt-4.1"
+ },
+ "Anthropic": {
+ "ApiKey": "sk-ant-..."
+ }
+ }
+}
+```
+
+### 複数プロバイダーの使用
+
+複数のプロバイダーを登録でき、SDK はリクエストに基づいて適切なプロバイダーを解決します。以下のようなシナリオで便利です:
+
+- 異なる種類の分析に異なるモデルを使用する
+- フォールバックオプションを提供する
+- 簡単なタスクをより安価なモデルにルーティングしてコストを最適化する
+
+```csharp
+builder.Services.AddRevealAI()
+ .AddOpenAI() // "openai" として登録
+ .AddAnthropic() // "anthropic" として登録
+ .AddGoogle(); // "google" として登録
+```
+
+## カスタムプロバイダー
+
+標準でサポートされていない LLM サービスと統合する必要がある場合は、[カスタムプロバイダーを構築](providers-building-custom.md)できます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-chat.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-chat.md
new file mode 100644
index 00000000..cf344d02
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-chat.md
@@ -0,0 +1,113 @@
+---
+sidebar_label: チャット
+---
+
+
+# チャット
+
+`client.ai.chat.sendMessage()` メソッドは、会話型アナリティクスを実現します。ユーザーが見たいものや理解したいことを自然言語で記述すると、AI がインサイト、説明、またはダッシュボードの生成・変更で応答します。
+
+## 基本的な使い方
+
+```typescript
+import { RevealSdkClient } from '@revealbi/api';
+
+const client = RevealSdkClient.getInstance();
+
+// Send a message and get the complete response
+const response = await client.ai.chat.sendMessage({
+ message: 'Show me sales trends for the last quarter',
+ datasourceId: 'my-datasource',
+});
+
+console.log(response.explanation);
+// "I've analyzed your sales data for Q4 2024..."
+
+if (response.dashboard) {
+ // Load the generated dashboard
+ loadDashboard(response.dashboard);
+}
+```
+
+## 会話の管理
+
+AI はサーバー側で会話履歴を保持しており、文脈に沿ったフォローアップの質問が可能です。履歴をクリアして最初からやり直すことができます。
+
+```typescript
+// Reset the conversation context
+await client.ai.chat.resetContext();
+
+console.log('Conversation history cleared');
+```
+
+以下の場合に使用します:
+- 新しいトピックを開始するとき
+- データソースを切り替えるとき
+- ユーザーが明示的に「最初からやり直す」ことをリクエストしたとき
+
+## ダッシュボードコンテキスト
+
+編集や分析のために既存のダッシュボードを提供します。
+
+```typescript
+// Edit an existing dashboard
+const response = await client.ai.chat.sendMessage({
+ message: 'Add a date filter to this dashboard',
+ datasourceId: 'my-datasource',
+ dashboard: existingDashboardJson, // Provide current dashboard JSON
+});
+
+if (response.dashboard) {
+ // Load the modified dashboard
+ loadDashboard(response.dashboard);
+}
+```
+
+**RVDashboard オブジェクトの使用:**
+
+```typescript
+// From RevealView
+const currentDashboard = revealView.dashboard;
+
+const response = await client.ai.chat.sendMessage({
+ message: 'Explain what this dashboard shows',
+ datasourceId: 'my-datasource',
+ dashboard: currentDashboard, // Accepts RVDashboard object
+});
+
+console.log(response.explanation);
+```
+
+## ストリーミング
+
+任意のリクエストに `stream: true` を追加すると、レスポンスをリアルタイムで受信できます。利用パターンと例については、[ストリーミングレスポンス](./sdk-streaming.md) を参照してください。
+
+---
+
+## リクエストパラメーター
+
+すべてのパラメーターは単一のリクエストオブジェクトで渡します。
+
+| パラメーター | 型 | 必須 | 説明 |
+|-----------|------|----------|-------------|
+| `message` | `string` | はい | ユーザーの自然言語メッセージまたはリクエスト |
+| `datasourceId` | `string` | いいえ | コンテキスト用のデータソース識別子 |
+| `dashboard` | `string \| RVDashboard` | いいえ | 編集・分析用のダッシュボード JSON または RVDashboard オブジェクト |
+| `visualizationId` | `string` | いいえ | ビジュアライゼーション固有のコンテキスト用のビジュアライゼーション ID |
+| `intent` | `string` | いいえ | 自由形式の LLM クエリ用のインテント |
+| `updateChatState` | `boolean` | いいえ | このクエリの後にチャットの状態を更新するかどうか |
+| `model` | `string` | いいえ | 使用する特定の LLM モデルの名前 |
+| `signal` | `AbortSignal` | いいえ | リクエストをキャンセルするための AbortSignal |
+| `stream` | `boolean` | いいえ | ストリーミングモードを有効にする(デフォルト: `false`) |
+
+## レスポンスの型
+
+```typescript
+interface ChatResponse {
+ explanation?: string; // AI-generated explanation
+ dashboard?: string; // Generated/modified dashboard JSON
+ error?: string; // Error message if request failed
+}
+```
+
+`explanation` フィールドには AI の自然言語レスポンスが含まれます。`dashboard` フィールドはダッシュボードが生成または変更された場合に値が設定されます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-error-handling.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-error-handling.md
new file mode 100644
index 00000000..31c31133
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-error-handling.md
@@ -0,0 +1,83 @@
+---
+sidebar_label: エラーハンドリング
+---
+
+
+# エラーハンドリング
+
+このトピックでは、Reveal SDK AI クライアントを使用する際のエラー処理方法について説明します。
+
+## エラーハンドリング
+
+### 非ストリーミング
+
+リクエストを try/catch ブロックで囲みます。
+
+```typescript
+try {
+ const insight = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'summary',
+ });
+ displayInsight(insight.explanation);
+} catch (error) {
+ console.error('Request failed:', error);
+ showErrorMessage(error.message);
+}
+```
+
+チャットにも同じパターンが適用されます。
+
+```typescript
+try {
+ const response = await client.ai.chat.sendMessage({
+ message: 'Show me sales trends',
+ datasourceId: 'my-datasource',
+ });
+ displayResponse(response.explanation);
+
+ if (response.dashboard) {
+ loadDashboard(response.dashboard);
+ }
+} catch (error) {
+ console.error('Chat request failed:', error);
+ showErrorMessage(error.message);
+}
+```
+
+### ストリーミング
+
+ストリームの `error` イベントをリッスンします。
+
+```typescript
+const stream = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'summary',
+ stream: true,
+});
+
+stream.on('text', (content) => appendToUI(content));
+stream.on('error', (error, details) => {
+ console.error('Stream error:', error);
+ showErrorMessage(error);
+});
+
+await stream.finalResponse();
+```
+
+`for-await` パターンでもエラーを処理できます。
+
+```typescript
+const stream = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'summary',
+ stream: true,
+});
+
+for await (const event of stream) {
+ switch (event.type) {
+ case 'text': appendToUI(event.content); break;
+ case 'error': showErrorMessage(event.error); break;
+ }
+}
+```
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-insights.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-insights.md
new file mode 100644
index 00000000..1926b099
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-insights.md
@@ -0,0 +1,107 @@
+---
+sidebar_label: インサイト
+---
+
+
+# インサイト
+
+`client.ai.insights.get()` メソッドは、ダッシュボードやビジュアライゼーションから AI を活用したサマリー、分析、予測を生成します。
+
+## 基本的な使い方
+
+```typescript
+import { RevealSdkClient } from '@revealbi/api';
+
+const client = RevealSdkClient.getInstance();
+
+// Get a summary for an entire dashboard
+const insight = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'summary',
+});
+
+console.log(insight.explanation);
+// "Sales revenue reached $2.4M in Q4 2024..."
+```
+
+## インサイトタイプ
+
+`type` パラメーターを指定して、分析の種類を制御します:
+
+```typescript
+// Summary - concise overview of key metrics
+const summary = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'summary',
+});
+
+// Analysis - detailed interpretation of trends and patterns
+const analysis = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'analysis',
+});
+
+// Forecast - predictions based on historical data
+const forecast = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'forecast',
+ forecastPeriods: 12, // Forecast 12 periods ahead (default: 6)
+});
+```
+
+## ダッシュボードオブジェクトの使用
+
+ダッシュボード ID の代わりに、ダッシュボードオブジェクトを直接渡すこともできます:
+
+```typescript
+// Using RVDashboard object from RevealView
+const insight = await client.ai.insights.get({
+ dashboard: revealView.dashboard, // RVDashboard object
+ type: 'analysis',
+});
+```
+
+## ビジュアライゼーションレベルのインサイト
+
+ビジュアライゼーション ID を指定して、特定のビジュアライゼーションを分析します:
+
+```typescript
+const insight = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ visualizationId: 'sales-by-region-chart', // Specific visualization
+ type: 'summary',
+});
+```
+
+## ストリーミング
+
+任意のリクエストに `stream: true` を追加すると、リアルタイムでレスポンスを受信できます。利用パターンと例については、[ストリーミングレスポンス](./sdk-streaming.md)を参照してください。
+
+---
+
+## リクエストパラメーター
+
+すべてのパラメーターは単一のリクエストオブジェクトで渡します:
+
+| パラメーター | 型 | 必須 | 説明 |
+|-----------|------|----------|-------------|
+| `dashboard` | `string \| RVDashboard` | * | RevealView からのダッシュボードオブジェクトまたは JSON 文字列 |
+| `dashboardId` | `string` | * | ダッシュボード識別子 |
+| `visualizationId` | `string` | いいえ | 分析対象のビジュアライゼーション ID |
+| `type` | `InsightType` | はい | タイプ: `'summary'`、`'analysis'`、`'forecast'` |
+| `forecastPeriods` | `number` | いいえ | 予測する期間数(デフォルト: 6) |
+| `model` | `string` | いいえ | 使用する特定の LLM モデルの名前 |
+| `signal` | `AbortSignal` | いいえ | リクエストをキャンセルするための AbortSignal |
+| `stream` | `boolean` | いいえ | ストリーミングモードを有効にする(デフォルト: `false`) |
+
+\* `dashboard` または `dashboardId` のいずれかを指定する必要があります
+
+## レスポンスタイプ
+
+```typescript
+interface InsightResponse {
+ explanation: string; // Complete AI-generated explanation
+}
+```
+
+`explanation` フィールドには、非ストリーミングモードでもストリーミングモードでも、完全なインサイトテキストが含まれます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-overview.md
new file mode 100644
index 00000000..a9eea992
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-overview.md
@@ -0,0 +1,101 @@
+---
+sidebar_label: 概要
+---
+
+
+# SDK の使い方
+
+Reveal SDK AI クライアントは、Web アプリケーションに AI 機能を提供する TypeScript/JavaScript ライブラリです。**インサイト**(データ分析の生成)と**チャット**(対話型アナリティクス)の2つの主要な API を公開しており、どちらも単一のクライアントインスタンスからアクセスできます。
+
+## 初期化
+
+AI 機能を使用する前に、サーバー URL を指定してクライアントを初期化します:
+
+```typescript
+import { RevealSdkClient } from '@revealbi/api';
+
+RevealSdkClient.initialize({
+ hostUrl: 'https://your-server.com'
+});
+```
+
+UMD/CDN を使用する場合:
+
+```typescript
+rv.RevealSdkClient.initialize({
+ hostUrl: 'https://your-server.com'
+});
+```
+
+:::info
+
+クライアント SDK を使用するには、[AI サーバー SDK](/ai/install-server-sdk) がインストールされ、実行されている必要があります。すべての AI リクエストは、設定された LLM プロバイダーによってサーバーサイドで処理されます。
+
+:::
+
+## クライアントインスタンスの取得
+
+初期化後、アプリケーション内のどこからでも共有クライアントインスタンスを取得できます:
+
+```typescript
+const client = RevealSdkClient.getInstance();
+```
+
+## API サーフェス
+
+クライアントは `client.ai` 名前空間を通じて AI 機能を公開します:
+
+### インサイト
+
+ダッシュボードやビジュアライゼーションからサマリー、分析、予測を生成します:
+
+```typescript
+const insight = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'summary',
+});
+
+console.log(insight.explanation);
+```
+
+詳しくは[インサイト](./sdk-insights.md)をご覧ください。
+
+### チャット
+
+ユーザーが自然言語でデータと対話できる会話型インターフェースを構築します:
+
+```typescript
+const response = await client.ai.chat.sendMessage({
+ message: 'Show me sales by region for Q4',
+ datasourceId: 'my-datasource',
+});
+
+console.log(response.explanation);
+```
+
+詳しくは[チャット](./sdk-chat.md)をご覧ください。
+
+## ストリーミングと非ストリーミング
+
+両方の API で2つのレスポンスモードがサポートされています:
+
+- **非ストリーミング**(デフォルト): 完全なレスポンスを待ちます。シンプルで分かりやすい方式です。
+- **ストリーミング**: テキストが生成されるとリアルタイムで受信し、ChatGPT のような体験を提供します。
+
+ストリーミングを有効にするには、任意のリクエストに `stream: true` を追加します:
+
+```typescript
+const stream = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'summary',
+ stream: true,
+});
+
+stream.on('text', (content) => {
+ console.log(content); // Text arrives in chunks
+});
+
+const result = await stream.finalResponse();
+```
+
+詳しくは[ストリーミングレスポンス](./sdk-streaming.md)をご覧ください。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-streaming.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-streaming.md
new file mode 100644
index 00000000..ae9e2ebc
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/sdk-streaming.md
@@ -0,0 +1,101 @@
+---
+sidebar_label: ストリーミングレスポンス
+---
+
+
+# ストリーミングレスポンス
+
+[インサイト](./sdk-insights.md) と [チャット](./sdk-chat.md) の両方の API はストリーミングモードをサポートしており、生成されたレスポンスをリアルタイムで配信します。これにより、ユーザーは完全なレスポンスを待つのではなく、テキストが徐々に表示される ChatGPT のような体験が得られます。
+
+任意のリクエストに `stream: true` を追加することでストリーミングを有効にできます。ストリーミングが有効な場合、メソッドは直接のレスポンスの代わりに `AIStream` オブジェクトを返します。
+
+## 利用パターン
+
+`AIStream` はイベントを利用する 3 つの方法をサポートしています。ユースケースに合ったパターンを選択してください。
+
+### パターン 1: for-await(フルコントロール)
+
+すべてのイベントを反復処理して、各イベントタイプを最大限に制御します。
+
+```typescript
+const stream = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'summary',
+ stream: true,
+});
+
+for await (const event of stream) {
+ switch (event.type) {
+ case 'progress': console.log('Status:', event.message); break;
+ case 'text': document.getElementById('output').textContent += event.content; break;
+ case 'error': console.error('Error:', event.error); break;
+ }
+}
+```
+
+### パターン 2: イベントリスナー(シンプルな UI 連携)
+
+特定のイベントタイプのハンドラーを登録します。
+
+```typescript
+const stream = await client.ai.chat.sendMessage({
+ message: 'Show me sales by region',
+ datasourceId: 'my-datasource',
+ stream: true,
+});
+
+stream.on('progress', (message) => console.log('Status:', message));
+stream.on('text', (content) => {
+ document.getElementById('output').textContent += content;
+});
+stream.on('error', (error) => console.error('Error:', error));
+
+const result = await stream.finalResponse();
+console.log('Complete:', result.explanation);
+```
+
+### パターン 3: ストリームからの集約結果
+
+通信上はストリーミングを使用しつつ、完全なレスポンスを待ちます。
+
+```typescript
+const stream = await client.ai.insights.get({
+ dashboardId: 'sales-dashboard',
+ type: 'summary',
+ stream: true,
+});
+
+// Wait for completion, returns InsightResponse
+const result = await stream.finalResponse();
+console.log(result.explanation);
+```
+
+これは、個々のイベントを処理せずに、サーバー側のストリーミングのメリット(長時間実行リクエストのタイムアウト回避など)を活用したい場合に便利です。
+
+---
+
+## AIStream リファレンス
+
+`stream: true` の場合、戻り値の型は `AIStream` になります。ここで `T` はレスポンスの型(`InsightResponse` または `ChatResponse`)です。
+
+| メソッド / パターン | 説明 |
+|---------|-------------|
+| `for await (const event of stream)` | イベントが到着するたびに反復処理する |
+| `.on(event, handler)` | イベント固有のリスナーを登録する |
+| `.finalResponse()` | 完全なレスポンスで解決される Promise を返す |
+| `.abort()` | ストリームをキャンセルする |
+
+## ストリームイベント
+
+```typescript
+type AIStreamEvent =
+ | { type: 'progress'; message: string }
+ | { type: 'text'; content: string }
+ | { type: 'error'; error: string; details?: unknown };
+```
+
+| イベントタイプ | 説明 |
+|------------|-------------|
+| `progress` | 生成中のステータスメッセージ(例: "Analyzing dashboard data..."、"Creating a new dashboard") |
+| `text` | 生成されたレスポンスのテキストフラグメント |
+| `error` | 生成が失敗した場合のエラー情報 |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/system-requirements.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/system-requirements.md
new file mode 100644
index 00000000..c4f951d8
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/ai/system-requirements.md
@@ -0,0 +1,59 @@
+---
+sidebar_label: システム要件
+---
+
+
+# システム要件
+
+Reveal SDK AI 機能を使用するには、以下の前提条件が必要です:
+
+## クライアント SDK の要件
+
+### ウェブブラウザー
+
+Reveal SDK AI クライアントは、以下をサポートするモダンなウェブブラウザーで動作します:
+
+- ES2020 JavaScript 機能
+- Async/Await
+- Fetch API
+- Server-Sent Events (SSE)
+
+**サポートされているブラウザー:**
+- Chrome/Edge 90+
+- Firefox 88+
+- Safari 14+
+
+### JavaScript フレームワーク(オプション)
+
+クライアント SDK はバニラ JavaScript でも動作しますが、以下のフレームワークとシームレスに統合できます:
+
+- Angular 15+
+- React 18+
+- Vue 3+
+- またはその他のモダンな JavaScript フレームワーク
+
+## サーバー SDK の要件
+
+### ASP.NET Core
+
+- ASP.NET 8.0 以上
+
+## Reveal SDK の基本要件
+
+Reveal SDK AI はベースの Reveal SDK を拡張するものであるため、標準的な Reveal SDK の要件も満たす必要があります:
+
+- 有効な Reveal SDK ライセンス
+- Reveal SDK Web (JavaScript) パッケージ
+- Reveal.Sdk.AspNetCore パッケージ(互換性のあるバージョン)
+
+### TypeScript サポート
+
+- TypeScript 5.0+(完全な型安全性を実現するため)
+- SDK は TypeScript で記述されており、完全な型定義を提供します
+
+## 次のステップ
+
+お使いの環境がこれらの要件を満たしていることを確認したら:
+
+1. [サーバー SDK のインストール](install-server-sdk.md) - バックエンドコンポーネントをセットアップします
+2. [クライアント SDK のインストール](install-client-sdk.md) - JavaScript パッケージをアプリケーションに追加します
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/category-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/category-charts.md
new file mode 100644
index 00000000..f395bc0a
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/category-charts.md
@@ -0,0 +1,48 @@
+---
+title: 表示形式にカテゴリ チャートを使用する方法
+_description: カテゴリ チャートを使用して表示形式を向上させる方法を説明します。
+_language: ja
+---
+
+# カテゴリ チャート
+
+これらのチャートを使用して、カテゴリを定量的情報に関連付けます。
+
+
+
+データに適している限り、表示形式オプション メニューに表示されたチャート アイコンをどれでも選択できます。Reveal はデータセットの最初の数字の列を選択し、選択したチャート タイプのデータ系列の要件と一致させようと試みます。
+
+
+
+たとえば、柱状チャートでは、すべての数値列がチャートに追加されます。Reveal の列の自動選択は、チャートの設定の構成で変更できます。
+
+## チャートの近似曲線
+
+チャートの設定で近似曲線の表示を有効にできます。このラインはアルゴリズムに基づいてチャートにラインを表示します。近似曲線でデータセットの傾向を把握し、意思決定のためのしきい値を定義できます。サポートされるトレンド ラインは、二次フィット、キュービック フィット、四次フィット、対数フィット、指数フィト、べき乗フィット、単純平均、指数平均、修正平均、累加平均、加重平均です。
+
+
+
+## パーセンテージの配分
+
+積層型シリーズ チャートにもこの機能を構成できます。0-100 のデフォルト スケールを上書きして、チャートで値のパーセンテージ配分を表示形式できます。
+
+
+
+## 開始位置とスライス ラベル
+
+**円チャート**および**ドーナツ型チャート**でチャートのスライスを回転する開始位置を構成し、データの表示順序を変更できます。
+
+
+
+**ファンネル**、**円チャート**、および**ドーナツ型**チャート、値やパーセンテージ、またはその両方を同時に表示するスライス ラベルを構成できます。
+
+
+
+## 値 0 の要素を表示するために円チャートおよびドーナツ チャートの凡例を有効化
+
+円およびドーナツ チャートの表示形式の凡例には、**[ラベル]** に選択されたフィールドのすべてのデータ (値 0 の要素を含む) を表示するオプションがあります。
+
+この設定を有効にするには、以下の画像のように、表示形式エディターの **[設定]** に移動し、**[0 (ゼロ) 値を凡例に表示]** を選択します。
+
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/choropleth-map.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/choropleth-map.md
new file mode 100644
index 00000000..dec67d74
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/choropleth-map.md
@@ -0,0 +1,104 @@
+---
+title: 表示形式に階級区分図を使用する方法
+_description: 階級区分図を使用して地理的データを表示する方法を説明します。
+_language: ja
+---
+
+# 階級区分図
+
+階級区分図は、分割された地理的領域または地域の統計データを表すことを目的とした広範なテーマ別のマップです。マップの各領域は、データ変数に関連して均一な色で塗りつぶされます。
+このトピックでは、マップの領域を「図形」とも呼びます。
+
+
+Reveal では、階級区分図に表示されるマップ タイプは一般的な政治マップです。つまり、マップ内の個々の図形は大陸、国、州、郡、政治組合などです。
+
+マップは以下の 3 つの異なる配色をサポートします。
+
+ * **単色**は、データを含むすべての図形を同じ色でスタイル設定します。データのない図形はグレーアウトされます。
+
+ * **値範囲**は、7 色のいずれかを使用して図形をスタイル設定します。明るい色から暗い色は、低から高へのデータ値を表します。
+
+ * **マップ カラー**は、[マップ カラー] フィールドの一意の識別子にテーマの色を割り当てます。この配色では、図形はその図形の最高値/最低値を持つ識別子に基づいてスタイル設定されます。[この例](#マップ-カラーを使用したマルチカラー階級区分図の作成)を参照してください。
+
+マップ カラーを設定する方法については、[階級区分図の設定](settings-choropleth-map.md)トピックを参照してください。
+
+Reveal の階級区分図では、階層データを[ドリル ダウン](#階層レベルのドリル-アップとドリル-ダウン)することもできます。
+
+## 階級区分図の表示形式の使用
+
+通常、階級区分図は、公開レポート、統計分析、および境界が重要なその他の情報をわかりやすく表示するために使用されます。階級区分図は、数量の密度 (比率) の表示、領域の比較、トレンドの確認、パターンおよび異常の検出に最適です。たとえば、階級区分図を使用して米国のマップで肥満率の高い地域を検索したり、ヨーロッパ全体での殺人率を表示したりできます。
+
+階級区分図でのデータの使用方法に注意してください。大きさであまりにも異なる領域を比較したい場合があります。データをデータ点数 (数値) ではなく、**レート/比率** (パーセンテージ) で表示することをお勧めします。
+
+たとえば、異なる国の交通死を生の数のみで比較した場合、人口により誤解を与える結果が得られます。データ点数が大きいため、中国など人口密度の高い国は常に暗い色で表示されます。
+
+以下は、東アジアの人口 10 万人あたりの交通死を示すマップです。ここでは、大国の人口に惑わされることなく、アジア諸国の運転文化について現実的な結論を出すことができます。
+
+
+
+階級区分図の表示形式のためのデータ選択は、提供したい情報に依存します。地域全体で伝染病の広がりを示したい場合、データ点数を使用することが適切です。
+
+
+## 場所データのデータ要件
+
+Reveal には、階級区分図の表示形式に使用できるさまざまな定義済みマップがあります。データセットで提供するために必要な最低限の情報は以下のとおりです。
+
+ - 特定の場所の定量データ (値)。
+
+ - 場所名。
+
+データセットの**場所名**列は、選択したマップの実際の地理単位と一致する必要があります。たとえば、米国マップを選択した場合、データセットに州の名前を含む列を提供する必要があります。
+
+Reveal に場所の列を認識させるには、場所の完全名または公式の 2 文字または 3 文字の略語を入力します。完全名と略語を混在させないでください。
+
+場所の形式および要件の詳細については、[階級区分図のデータを準備する方。法場所のデータ要件](location-data-requirements.md)を参照してください。
+
+## 階級区分図の作成
+
+以下の例では、階級区分図を使用して、米国での最後の大統領選挙 (2016 年) の結果を分析します。
+
+このチュートリアルを実行するには、2016 November General Election スプレッドシートをダウンロードし、クラウド プロバイダーにアップロードして以下の手順を実行します。
+
+1. スプレッドシートをアップロードしたクラウド プロバイダーに接続します。
+
+2. 表示形式エディターで、**階級区分図**の表示形式を選択します。
+
+3. **[階級区分図データ]** セクションで、**[マップ]** ドロップダウン メニューから [アメリカ合衆国の州] マップを選択します。米国のマップのアウトラインが画面に表示されます。
+
+4. **[場所]** プレースホルダーに **State** または **State Abv** フィールドをドロップします。両方とも米国の州のリストを含みます。
+
+5. **[値]** で、マップする定量データを含むフィールドを選択します。この例では、すべての州の投票率を含む **Total Votes (%)** を使用します。
+
+6. **[値]** フィールドを書式設定してパーセンテージを表示します。**[値]** ⇒ **[書式設定]** ⇒ **[タイプ]** ⇒ **[パーセント]** で **Total Votes (%)** を選択します。
+
+7. **[データ フィルタ]ー** プレースホルダーでフィールドを選択すると、フィルターを追加できます **(オプション)**。
+
+その結果、州ごとに分割された USA マップが表示されます。州の有権者の割合が大きいほど、その州の青色が強くなります。
+
+
+
+## マップ カラーを使用したマルチカラー階級区分図の作成
+
+代わりに、**[マップ カラー]** プロパティを設定して、マップの各領域の色を制御できます。これは、領域内でどの候補者または政党が上位/下位票を獲得したかなどを反映するのに役立ちます。
+
+
+
+上記の例では、Donald Trump、Hillary Clinton、および Other が 2016 年の投票で比較されています。州の色は、選挙で誰が最も多く投票されたかによって異なります。
+
+色付け条件を変更するには:
+
+**[設定]** ⇒ **[カラーの基準値]** ⇒ **[最高値]**。
+
+
+## 階層レベルのドリル アップとドリル ダウン
+
+階級区分図領域をドリル アップおよびドリル ダウンして、場所データの階層レベルを動的に検出できます。
+
+ドリル ダウン オプションを有効にするには、**[場所]** プレースホルダーで複数のデータ フィールドを追加して下位レベルを作成する必要があります。たとえば、新しい階層レベルとして米国の州の下に郡を追加すると、州レベルで全体像を表示し、郡レベルで詳細を調査することもできます。
+
+マップ上の図形をホバーすると強調表示され、ツールチップが表示されます (以下を参照)。[ドリル ダウン] オプションをクリックして、次の場所階層レベルのマップを表示します。
+
+
+:::note
+**利用可能なマップ:** 下位レベルのマップが使用可能な場合のみ、マップにドリル ダウンできます。**[階級区分図データ]** セクションの **[マップ]** で使用可能なマップを検索します。
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/combo-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/combo-charts.md
new file mode 100644
index 00000000..3f416cbc
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/combo-charts.md
@@ -0,0 +1,55 @@
+---
+title: 複合チャートを作成して使用する方法
+_description: Reveal で表示形式に複合チャートを使用する方法を説明します。
+_language: ja
+---
+
+# 複合チャート
+
+1 つのチャートに複数の種類のチャートを組み合わせたチャートです。
+
+通常のチャートには、X 軸と Y 軸が 1 つづつ必要です。複合チャートには 2 つの Y 軸があり、同じチャートに 2 種類のデータ ポイントを表示できます。
+
+
+
+たとえば、上記のように、複合チャートは国の総人口および若い人口を表示して、それらの間の関係を示すことができます。
+
+
+
+データ ソースと**複合**の表示形式を選択した後、デフォルトでは、柱状チャートと折れ線チャートを組み合わせて開始します。最初の画像のように、両方のチャートの [ラベル] と [値] を構成する必要があります。
+
+## 複合チャートの設定
+
+
+
+[設定] では:
+
+ - **スタイルを選択できます。**
+
+ タイトルまたは凡例を有効にするか、開始色を選択できます。
+
+ - **自動的なラベル回転を有効にできます。**
+
+ - **ズーム レベルを調整できます。**
+
+ - **一方または両方のチャートの表示形式タイプを変更できます**。
+
+ 7 つの使用可能なタイプ (柱状、積層型柱状、エリア、折れ線、ステップ エリア、ステップ折れ線、スプライン エリア) から選択できます。
+
+ - **リニア スケールまたは対数を選択できます**。
+
+ 対数の場合、値のスケールは通常のリニア スケールを使用する代わりに大きさを使用するリニア スケール以外で計算されます。
+
+ - **チャートの最小値および最大値を設定できます。**
+
+ デフォルトで最小は 0 に設定され、最大値は使用されるデータによって設定されます。
+
+ - **両方のチャートの左軸を共有することを選択できます**。
+
+ デフォルトでは、左軸と右軸が使用されます。
+
+ - **上のチャートを切り替えることができます**。
+
+ Reveal は、背面に表示されるチャートに不透明度を適用し、より透明にします。
+
+- **[この表示形式を別のダッシュボードまたは URL に接続できます](../dashboard-linking.md)。**
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/financial-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/financial-charts.md
new file mode 100644
index 00000000..dc7b8df1
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/financial-charts.md
@@ -0,0 +1,16 @@
+---
+title: 財務チャートを作成して使用する方法
+_description: Reveal で表示形式に財務チャートを使用する方法を説明します。
+_language: ja
+---
+
+# 財務チャート
+
+財務チャートは、終日の株価の動き (始値と終値、最高値と最低値) を表すために使用されます。
+
+
+
+各ロウソクまたは OHLC セクションの色は、終値が開始値を下回っているか上回っているかを表すためのものです。
+
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/gauge-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/gauge-charts.md
new file mode 100644
index 00000000..9591cb64
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/gauge-charts.md
@@ -0,0 +1,53 @@
+---
+title: ゲージ チャートを作成して使用する方法
+_description: Reveal で表示形式にゲージ チャートを使用する方法を説明します。
+_language: ja
+---
+
+# ゲージ チャート
+
+ゲージ チャートは単一値を表示します。または、それらを範囲しきい値と比較した値のリストを表示します。ゲージはまた、他の範囲の条件付き書式設定を可能にします。Reveal では、次のゲージ チャートを使用できます: [リニア](#リニア-ゲージ)、[円形](#円形ゲージ)、[テキスト](#テキスト-ゲージ)、[KPI](kpi-gauge.md)、[ブレット グラフ](#ブレット-グラフ)。
+
+
+## リニア ゲージ
+
+リニア ゲージは、ラベル、**[ラベル]** のプレースホルダーの設定から取得された値、および設定 **[値]** のプレースホルダーの値が表示されます。値は、四角形としてチャート化され、バンド内または隣りに数値形式で表示されます。このゲージ タイプは、行の値を並べて比較することに適しています。
+
+
+
+
+## 円形ゲージ
+
+円形ゲージは、バンドの最大および最小のしきい値、および現在の値を表示します。現在の範囲の色で背景も塗りつぶします。
+
+
+
+
+## テキスト ゲージ
+
+テキスト ゲージは、大きなフォントで Value 列データを表示します。このタイプは、非常に優先度の高いメトリックに適しています。デフォルトでは、いずれかのフィルターが適用されていない限り、選択データ行が異なるようにゲージは最初のデータ行の値列のデータを表示します。
+
+
+
+
+## ブレット グラフ
+
+ブレット グラフ ゲージは、リニア ゲージに似ていて、**[ラベル]** のプレースホルダーからラベルを表示し、**[値]** のプレースホルダーから値を表示します。値は水平線でチャート化され、数字形式で右側にも表示されます。
+
+ブレット グラフは新しいビジュアル インジケーターをリニア ゲージに追加します。**[ターゲット]** プレースホルダーの目標値をベースにした垂直マークです。これは新しいインジケーターで数値列から取得されます。**このチャートを構成するには 2 つの数値列とテキスト列が必要です**。
+
+
+
+このブレット は、値を左右に並べて比較する際に便利です。また、目標値 (垂直マーク) に対する値 (水平線) からパフォーマンスを評価できます。
+
+
+## バンドの構成
+
+すべてのゲージ タイプには共通のバンド範囲構成があり、これは表示形式エディターの **[設定]** セクションにあります。構成ダイアログでは、**制限**を設定できます: これらの値は自動的に指定された値の列のデータセット内の最大値/最小値として設定されますが、定数値を使用して手動でオーバーライドすることができます。
+
+
+バンド構成を設定する際、範囲を 3 つのスペースに分割するために 2 つのしきい値を設定する必要があります。しきい値は、パーセンテージとして定義または定数値として定義することができます。また、ここに各バンドに関連付ける色を定義する必要があります。デフォルトでは上部のバンドは緑、中央は黄、下部は赤です。
+
+
+
+バンド構成は、Reveal を通じて適用された書式ではなく、**元のデータに基づいています**。上の円型ゲージでは、表示形式が数値を表示するように書式設定されていても、元のデータはパーセンテージで表されています。したがって、選択された **[値比較タイプ]** は **[パーセンテージ]** であり、範囲は数値ではなくパーセンテージとして定義されます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/grid-chart.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/grid-chart.md
new file mode 100644
index 00000000..a6ee8ea3
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/grid-chart.md
@@ -0,0 +1,37 @@
+---
+title: 表示形式エディターでグリッド チャートを作成して使用する方法
+_description: Reveal で表示形式にグリッド チャートを使用する方法を説明します。
+_language: ja
+---
+
+# グリッド チャート
+
+## 表示形式エディターでグリッド チャートを操作する
+
+グリッド チャートは、データを表示するための 1つの表示形式オプションであり、情報を行列で表示します。グリッド ヘッダーを選択すると列全体が強調表示され、**列の幅を変更できます**。列幅を変更するには右または左へスライドさせます。
+
+
+
+**[設定]** で [フォント サイズ] を変更できます。デフォルト サイズは **[小]** です。**[中]** サイズでは 2px 大きくなり、**[大]** サイズは 4px 大きくなります。
+
+
+
+先頭列を固定配置に設定するには、**[設定]** の下の **[最初の固定列]** オプションをチェックします。これは、特に多くの列を処理する場合に便利です。
+
+:::note
+行数および列が 10 より小さい場合、グリッド チャートはダッシュボードに適しています。少量のデータを扱っている場合、数字だけを表示するのが適切な方法となる場合があります。
+:::
+
+## ダッシュボード ビュー モードで列を並べ替える
+
+**ダッシュボード ビュー モード**でグリッド チャートの列の並べ替え (昇順や降順) を変更できます。列名の横にある矢印ボタンを選択して変更できます。
+
+
+
+複数の並べ替え条件を適用できます。次に、既存の列ヘッダーの横に小さな番号が表示されます。矢印の方向は、昇順または降順のどちらの並べ替えを適用したかを判断するのに役立ちます。
+
+
+
+並べ替えオプションは、**[すべてクリア]** または **[なし]** で削除できます。他に削除されていない並べ替えオプションがある場合、順序は列ヘッダーの横の番号によって決定されます。
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/image-chart.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/image-chart.md
new file mode 100644
index 00000000..7b551d08
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/image-chart.md
@@ -0,0 +1,7 @@
+# 画像チャート
+
+画像チャートは URL へリクエストして、埋め込みブラウザーに情報と結果を表示します。**データセットの最初の行でのみ**動作し、データ エディター上で **URL として列のコンテンツを表示します**。
+
+
+
+このチャートは、画像、HTML ページ、あるいはテキスト コンテンツを表示するために使用できる、非常に汎用な表示形式オプションです。[URL] フィールドの設定がテキスト列に設定されている場合、テキストを表示します。その URL が有効である場合、その URL のコンテンツを取得しページを表示します。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/BrazilStatePopulation_all.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/BrazilStatePopulation_all.png
new file mode 100644
index 00000000..681efccd
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/BrazilStatePopulation_all.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/HRDashboardEmployeesDIY_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/HRDashboardEmployeesDIY_All.png
new file mode 100644
index 00000000..cf1eb822
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/HRDashboardEmployeesDIY_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/SampleVisualization_Desktop.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/SampleVisualization_Desktop.png
new file mode 100644
index 00000000..6462f18c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/SampleVisualization_Desktop.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/StatePopulation_all.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/StatePopulation_all.png
new file mode 100644
index 00000000..198221ab
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/StatePopulation_all.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/WorldPopulationGDP_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/WorldPopulationGDP_All.png
new file mode 100644
index 00000000..e7d98b0b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/WorldPopulationGDP_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/add-text-box-to-dashboard.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/add-text-box-to-dashboard.png
new file mode 100644
index 00000000..d74f39d9
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/add-text-box-to-dashboard.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/advanced-settings-kpi-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/advanced-settings-kpi-gauge.png
new file mode 100644
index 00000000..0c12f9a0
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/advanced-settings-kpi-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/area-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/area-chart.png
new file mode 100644
index 00000000..0b128033
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/area-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bar-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bar-chart.png
new file mode 100644
index 00000000..6a34c958
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bar-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bubble-chart-visualization-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bubble-chart-visualization-editor.png
new file mode 100644
index 00000000..1b02019d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bubble-chart-visualization-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bubble-chart-with-colors.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bubble-chart-with-colors.png
new file mode 100644
index 00000000..8e7b41a0
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bubble-chart-with-colors.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bubble-map-density-population-europe-bad-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bubble-map-density-population-europe-bad-example.png
new file mode 100644
index 00000000..79d6b7c9
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bubble-map-density-population-europe-bad-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bullet-graph-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bullet-graph-example.png
new file mode 100644
index 00000000..87123990
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bullet-graph-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bullet-graph-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bullet-graph-gauge.png
new file mode 100644
index 00000000..8f38a8aa
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/bullet-graph-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/candlestick-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/candlestick-chart.png
new file mode 100644
index 00000000..ae6a0142
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/candlestick-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/category-charts-list.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/category-charts-list.png
new file mode 100644
index 00000000..adce8520
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/category-charts-list.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/category-charts.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/category-charts.png
new file mode 100644
index 00000000..9650c281
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/category-charts.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/chart-trendline-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/chart-trendline-option.png
new file mode 100644
index 00000000..fc341bae
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/chart-trendline-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/chart-types-choropleth.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/chart-types-choropleth.png
new file mode 100644
index 00000000..6a0891b4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/chart-types-choropleth.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/chart-types-scatter.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/chart-types-scatter.png
new file mode 100644
index 00000000..fda0ea2f
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/chart-types-scatter.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/choropleth-map-intro-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/choropleth-map-intro-example.png
new file mode 100644
index 00000000..4d370ab7
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/choropleth-map-intro-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/choropleth-map-visualization-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/choropleth-map-visualization-settings.png
new file mode 100644
index 00000000..f972f48c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/choropleth-map-visualization-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/choropleth-visualization-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/choropleth-visualization-example.png
new file mode 100644
index 00000000..a281c02c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/choropleth-visualization-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/circular-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/circular-chart.png
new file mode 100644
index 00000000..0467c404
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/circular-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/circular-gauge-view-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/circular-gauge-view-example.png
new file mode 100644
index 00000000..e47cd2e3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/circular-gauge-view-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/circular-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/circular-gauge.png
new file mode 100644
index 00000000..752e4af4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/circular-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/color-as-scheme-options.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/color-as-scheme-options.png
new file mode 100644
index 00000000..579e6f5a
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/color-as-scheme-options.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/color-choropleth-map-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/color-choropleth-map-example.png
new file mode 100644
index 00000000..85934baa
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/color-choropleth-map-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/column-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/column-chart.png
new file mode 100644
index 00000000..1c2788e9
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/column-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-chart-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-chart-example.png
new file mode 100644
index 00000000..00c37992
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-chart-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-chart-selection.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-chart-selection.png
new file mode 100644
index 00000000..71e504bc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-chart-selection.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-chart-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-chart-settings.png
new file mode 100644
index 00000000..f05d0e7b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-chart-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-charts-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-charts-sample.png
new file mode 100644
index 00000000..cd83c0b1
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-charts-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-charts-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-charts-settings.png
new file mode 100644
index 00000000..24ac9a40
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/combo-charts-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/custom-visualization-access.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/custom-visualization-access.png
new file mode 100644
index 00000000..c0b9986c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/custom-visualization-access.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/custom-visualization-config.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/custom-visualization-config.png
new file mode 100644
index 00000000..e24c80f9
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/custom-visualization-config.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/data-is-written-in-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/data-is-written-in-option.png
new file mode 100644
index 00000000..8fcdff86
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/data-is-written-in-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/data-source-reveal-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/data-source-reveal-sample.png
new file mode 100644
index 00000000..aa344ef3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/data-source-reveal-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/data-sources-list.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/data-sources-list.png
new file mode 100644
index 00000000..07f262bc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/data-sources-list.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/doughnut-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/doughnut-chart.png
new file mode 100644
index 00000000..6dce046d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/doughnut-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/drill-down-hierarchy-level.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/drill-down-hierarchy-level.png
new file mode 100644
index 00000000..fde6ef30
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/drill-down-hierarchy-level.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/drill-down-option-choropleth-map.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/drill-down-option-choropleth-map.png
new file mode 100644
index 00000000..cc5de086
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/drill-down-option-choropleth-map.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/drilling-option-hierarchy-level.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/drilling-option-hierarchy-level.png
new file mode 100644
index 00000000..2a2878da
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/drilling-option-hierarchy-level.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/duplicate-visualization.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/duplicate-visualization.png
new file mode 100644
index 00000000..ee94f1ad
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/duplicate-visualization.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-chart-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-chart-types.png
new file mode 100644
index 00000000..042f7a33
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-chart-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-charts-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-charts-example.png
new file mode 100644
index 00000000..64d42c52
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-charts-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-charts-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-charts-sample.png
new file mode 100644
index 00000000..d7162984
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-charts-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-charts.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-charts.png
new file mode 100644
index 00000000..785f9abc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/financial-charts.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/funnel-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/funnel-chart.png
new file mode 100644
index 00000000..4a55bde8
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/funnel-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/gauge-band-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/gauge-band-settings.png
new file mode 100644
index 00000000..3d85d454
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/gauge-band-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-example.png
new file mode 100644
index 00000000..2bf32749
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-font-sizes.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-font-sizes.png
new file mode 100644
index 00000000..92cf826f
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-font-sizes.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-none-sorting-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-none-sorting-option.png
new file mode 100644
index 00000000..fa744daa
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-none-sorting-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-sorting-number-options.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-sorting-number-options.png
new file mode 100644
index 00000000..149d5b77
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-sorting-number-options.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-sorting.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-sorting.png
new file mode 100644
index 00000000..38de7bc5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/grid-chart-sorting.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/image-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/image-chart.png
new file mode 100644
index 00000000..5ac7d47b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/image-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/japanese-data-language.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/japanese-data-language.png
new file mode 100644
index 00000000..a0f413f8
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/japanese-data-language.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/kpi.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/kpi.png
new file mode 100644
index 00000000..f8517ef2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/kpi.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/line-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/line-chart.png
new file mode 100644
index 00000000..0be311f2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/line-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-gauge-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-gauge-example.png
new file mode 100644
index 00000000..12b7bfe9
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-gauge-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-gauge.png
new file mode 100644
index 00000000..b661b34e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-regression-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-regression-dialog.png
new file mode 100644
index 00000000..67d215d7
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-regression-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-regression-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-regression-example.png
new file mode 100644
index 00000000..b0b8a132
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-regression-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-regression-forecast-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-regression-forecast-settings.png
new file mode 100644
index 00000000..133b0256
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/linear-regression-forecast-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/list-available-maps.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/list-available-maps.png
new file mode 100644
index 00000000..2d823ce3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/list-available-maps.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/lstatistical-functions-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/lstatistical-functions-icon.png
new file mode 100644
index 00000000..a3f45a73
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/lstatistical-functions-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/multiple-kpi-gauges.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/multiple-kpi-gauges.png
new file mode 100644
index 00000000..c21a91d5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/multiple-kpi-gauges.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/new-dashboard-text-box.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/new-dashboard-text-box.png
new file mode 100644
index 00000000..443eb2f0
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/new-dashboard-text-box.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/new-text-box-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/new-text-box-dialog.png
new file mode 100644
index 00000000..0c90e798
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/new-text-box-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/new-visualization-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/new-visualization-dialog.png
new file mode 100644
index 00000000..a14e0080
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/new-visualization-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/not-specified-tile-provider-all-levels.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/not-specified-tile-provider-all-levels.png
new file mode 100644
index 00000000..5bc8aedf
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/not-specified-tile-provider-all-levels.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/notification-center-options.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/notification-center-options.png
new file mode 100644
index 00000000..ba3d77a1
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/notification-center-options.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/ohlc-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/ohlc-chart.png
new file mode 100644
index 00000000..1a8e29fa
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/ohlc-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/outlier-detection.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/outlier-detection.png
new file mode 100644
index 00000000..f8f31684
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/outlier-detection.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/percentage-distribution-option-stacked-series-charts.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/percentage-distribution-option-stacked-series-charts.png
new file mode 100644
index 00000000..1d1a6bf0
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/percentage-distribution-option-stacked-series-charts.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pie-chart-example-legends-value-zero-setting.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pie-chart-example-legends-value-zero-setting.png
new file mode 100644
index 00000000..dba2ccde
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pie-chart-example-legends-value-zero-setting.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pie-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pie-chart.png
new file mode 100644
index 00000000..1f5412ca
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pie-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pie-doughnut-start-position.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pie-doughnut-start-position.png
new file mode 100644
index 00000000..1af34c9f
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pie-doughnut-start-position.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-kpi-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-kpi-gauge.png
new file mode 100644
index 00000000..7f66b4a4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-kpi-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-linear-gauge-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-linear-gauge-view.png
new file mode 100644
index 00000000..2946458d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-linear-gauge-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-slice-labels.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-slice-labels.png
new file mode 100644
index 00000000..95f9be39
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-slice-labels.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-text-gauge-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-text-gauge-view.png
new file mode 100644
index 00000000..72b3c448
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view-text-gauge-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view=web-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view=web-view.png
new file mode 100644
index 00000000..cd436b51
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-editor-view=web-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-table-visualization.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-table-visualization.png
new file mode 100644
index 00000000..5a270db7
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-table-visualization.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-table.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-table.png
new file mode 100644
index 00000000..c78ba504
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/pivot-table.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/presidential-election-2016-map-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/presidential-election-2016-map-example.png
new file mode 100644
index 00000000..fe1b859d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/presidential-election-2016-map-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/presidential-election-2016-map.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/presidential-election-2016-map.png
new file mode 100644
index 00000000..a04e3084
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/presidential-election-2016-map.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/radial-chart-trendline-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/radial-chart-trendline-settings.png
new file mode 100644
index 00000000..b28b76f2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/radial-chart-trendline-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/radial-chart-visualization-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/radial-chart-visualization-editor.png
new file mode 100644
index 00000000..ae037628
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/radial-chart-visualization-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/reusing-visualization.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/reusing-visualization.png
new file mode 100644
index 00000000..29d34f97
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/reusing-visualization.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/reveal-uploading-dashboards-menu.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/reveal-uploading-dashboards-menu.png
new file mode 100644
index 00000000..0a89f210
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/reveal-uploading-dashboards-menu.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/road-traffic-deaths-eastern-asia-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/road-traffic-deaths-eastern-asia-example.png
new file mode 100644
index 00000000..89d21567
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/road-traffic-deaths-eastern-asia-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sample-data-new-visualization-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sample-data-new-visualization-dialog.png
new file mode 100644
index 00000000..4560759e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sample-data-new-visualization-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sample-data.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sample-data.png
new file mode 100644
index 00000000..8893f325
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sample-data.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-bubble-map-electoral-college.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-bubble-map-electoral-college.png
new file mode 100644
index 00000000..d3f7aa08
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-bubble-map-electoral-college.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-chart-visualization-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-chart-visualization-editor.png
new file mode 100644
index 00000000..a9198d42
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-chart-visualization-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-color-average-age-euro-population.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-color-average-age-euro-population.png
new file mode 100644
index 00000000..3773094b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-color-average-age-euro-population.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-dot-different-colors.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-dot-different-colors.png
new file mode 100644
index 00000000..4ec27317
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-dot-different-colors.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-dot-map-airports.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-dot-map-airports.png
new file mode 100644
index 00000000..62d66f4c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-dot-map-airports.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-dot-map-colored-by-value.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-dot-map-colored-by-value.png
new file mode 100644
index 00000000..aed241ed
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-dot-map-colored-by-value.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-map-image-tiles-enabled.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-map-image-tiles-enabled.png
new file mode 100644
index 00000000..f5c00557
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-map-image-tiles-enabled.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-map-zoom-control.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-map-zoom-control.png
new file mode 100644
index 00000000..a7d2df94
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-map-zoom-control.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-maps-dashboard.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-maps-dashboard.png
new file mode 100644
index 00000000..a80f1537
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/scatter-maps-dashboard.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/select-chart-type-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/select-chart-type-dialog.png
new file mode 100644
index 00000000..9584f15d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/select-chart-type-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/select-visualization-choropleth-map.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/select-visualization-choropleth-map.png
new file mode 100644
index 00000000..bd10cce0
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/select-visualization-choropleth-map.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/settings-combo-charts.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/settings-combo-charts.png
new file mode 100644
index 00000000..24ac9a40
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/settings-combo-charts.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/settings-scatter-bubble-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/settings-scatter-bubble-chart.png
new file mode 100644
index 00000000..571aacee
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/settings-scatter-bubble-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/slice-label-setting-doughnut-chart-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/slice-label-setting-doughnut-chart-example.png
new file mode 100644
index 00000000..32a9fa1e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/slice-label-setting-doughnut-chart-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-dashboard-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-dashboard-view.png
new file mode 100644
index 00000000..605bcd14
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-dashboard-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-example.png
new file mode 100644
index 00000000..0b9c3294
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-settings.png
new file mode 100644
index 00000000..0c677d36
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-visualization-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-visualization-editor.png
new file mode 100644
index 00000000..e543b03e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart-visualization-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart.png
new file mode 100644
index 00000000..4b5dcabd
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/sparkline-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/spline-area-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/spline-area-chart.png
new file mode 100644
index 00000000..c370f9be
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/spline-area-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/spline-area.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/spline-area.png
new file mode 100644
index 00000000..007ac06d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/spline-area.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/spline-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/spline-chart.png
new file mode 100644
index 00000000..231952f2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/spline-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/stacked-area-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/stacked-area-chart.png
new file mode 100644
index 00000000..84d0efd6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/stacked-area-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/stacked-bar-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/stacked-bar-chart.png
new file mode 100644
index 00000000..91066034
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/stacked-bar-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/stacked-column-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/stacked-column-chart.png
new file mode 100644
index 00000000..66587046
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/stacked-column-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/start-position-setting-doughnut-chart-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/start-position-setting-doughnut-chart-example.png
new file mode 100644
index 00000000..0dcd4eea
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/start-position-setting-doughnut-chart-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/step-area-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/step-area-chart.png
new file mode 100644
index 00000000..7e02e45a
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/step-area-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/step-line-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/step-line-chart.png
new file mode 100644
index 00000000..46b1a319
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/step-line-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-box-dashboard-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-box-dashboard-example.png
new file mode 100644
index 00000000..aae59300
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-box-dashboard-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-gauge.png
new file mode 100644
index 00000000..5651fc33
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view-conditional-formatting.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view-conditional-formatting.png
new file mode 100644
index 00000000..9453001d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view-conditional-formatting.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view-gauge.png
new file mode 100644
index 00000000..2bd95bdc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view-visualization-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view-visualization-editor.png
new file mode 100644
index 00000000..7a9a5efb
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view-visualization-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view.png
new file mode 100644
index 00000000..3eb173dc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/text-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-chart-compact-labels.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-chart-compact-labels.png
new file mode 100644
index 00000000..65d29291
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-chart-compact-labels.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-chart-dashboard-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-chart-dashboard-example.png
new file mode 100644
index 00000000..53b5f6e6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-chart-dashboard-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-charts-chart-trendlines-result.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-charts-chart-trendlines-result.png
new file mode 100644
index 00000000..fb8ca85e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-charts-chart-trendlines-result.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-charts-chart-trendlines.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-charts-chart-trendlines.png
new file mode 100644
index 00000000..59a59b0d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/time-series-charts-chart-trendlines.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/tooltips-scatter-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/tooltips-scatter-chart.png
new file mode 100644
index 00000000..b83d73e8
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/tooltips-scatter-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/total-tooltips-treemap-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/total-tooltips-treemap-example.png
new file mode 100644
index 00000000..a260badd
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/total-tooltips-treemap-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-chart-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-chart-types.png
new file mode 100644
index 00000000..a5a6bceb
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-chart-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-hierarchy-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-hierarchy-example.png
new file mode 100644
index 00000000..c173fc57
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-hierarchy-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-settings-visualization-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-settings-visualization-editor.png
new file mode 100644
index 00000000..1286f398
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-settings-visualization-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-tooltip-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-tooltip-example.png
new file mode 100644
index 00000000..db1b3ca6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-tooltip-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-tooltip.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-tooltip.png
new file mode 100644
index 00000000..f8380437
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-tooltip.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-totals-label.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-totals-label.png
new file mode 100644
index 00000000..17a13784
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-totals-label.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-visualization-hierarchical-data-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-visualization-hierarchical-data-example.png
new file mode 100644
index 00000000..10f70d06
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-visualization-hierarchical-data-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-visualization-without-hierarchical-data-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-visualization-without-hierarchical-data-example.png
new file mode 100644
index 00000000..83689c17
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/treemap-visualization-without-hierarchical-data-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/underlying-data-time-series-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/underlying-data-time-series-example.png
new file mode 100644
index 00000000..01002b21
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/underlying-data-time-series-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/visualization-editor-text-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/visualization-editor-text-view.png
new file mode 100644
index 00000000..741a204a
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/images/visualization-editor-text-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/kpi-gauge.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/kpi-gauge.md
new file mode 100644
index 00000000..47a935a6
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/kpi-gauge.md
@@ -0,0 +1,27 @@
+---
+title: 表示形式エディターで KPI ゲージを作成する方法
+_description: Reveal で表示形式に KPI ゲージを使用する方法を説明します。
+_language: ja
+---
+
+# KPI ゲージ
+
+KPI (Key Performance Indicator: キー パフォーマンス インジケーター) は、企業が主要なビジネス目標をどれだけ効果的に達成しているかを示す測定可能な値です。KPI は個別のニーズによって変化し、目標に対する進捗や時間軸での傾向など、組織の重要なメトリックスに関する情報を提供します。
+
+[テキスト ゲージ](gauge-charts.md#テキスト-ゲージ) と同様に、KPI ゲージは [値] 列を大きなフォントで表示します。ただし、KPI の値は、前の期間の同じ値に対しても評価されます。
+
+
+
+カテゴリを追加すると、1 つの表示形式に複数の KPI を含めることもできます。
+
+
+
+## インジケーター設定
+
+KPI ゲージには[スパークライン](sparkline-charts.md)表示形式と同様の設定があり、それを使用して構成できます:
+
+ - **[期間]**: 両方の値を比較するために使用する期間。
+ - **[差異の表示]**: 差異を [値]、[パーセンテージ]、または [値とパーセンテージ] の両方として表示するかどうか。
+ - **[値の増加を表す色]**: 差異インジケータの色。
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/location-data-requirements.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/location-data-requirements.md
new file mode 100644
index 00000000..e5356847
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/location-data-requirements.md
@@ -0,0 +1,97 @@
+---
+title: 場所データ要件のためのデータを準備する方法
+_description: 階級区分図を表示形式に使用する場合、場所データの要件に従う方法を説明します。
+_language: ja
+---
+
+# 階級区分図のデータを準備する方法場所のデータ要件
+
+データセットの**場所名**列は、選択したマップの実際の地理単位と一致する必要があります。たとえば、列に国の名前が含まれているが、アメリカ合衆国の州のマップを使用する場合、[表示するデータはありません。] というエラーが画面に表示されます。このエラーの詳細については、以下の[エラーのトラブルシューティング](#エラーのトラブルシューティング)を参照してください。
+
+
+## 場所の形式
+場所列を Reveal に認識させるには、以下のいずれかの形式を指定します。
+
+ - 国の**名前**およびその下位区分 (省、州、部、地域など) - 英語またはサポートされる他の言語の公式スペルに準拠します。サポートされる言語の詳細については、以下の[データ ソースが英語ではありません](#データ-ソースが英語にならない)を参照してください。
+
+ - [ISO 3166-1 alpha-3 (英語)](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) 規格で定義される **3 文字の国コード**。
+
+ - USPS によって確立された [**2 文字の米国州の略語 (英語)**](https://pe.usps.com/text/pub28/28apb.htm)。
+
+ - 「郡名、州名」の形式 (*Seneca、New York* など)。この形式は、郡を含む米国のマップに使用できます。
+
+ - 「郡名、州の略語」の形式 (*Seneca、NY* など)。これは、郡を含む米国のマップで認識されるもう 1 つの形式です。
+
+指定した形式と一致している必要があります。同じ列に完全名とコードを使用しないでください。ただし、**一般的に使用される国の略語**には例外があります。以下は、場所の列で国の完全名と組み合わせることができ、それらを Analytics で認識できるようにする省略された国名のリストです。
+
+| 国の完全名 | 略語 |
+|--------------------------|-----------------------|
+| United States | USA |
+| United Kingdom | UK |
+| United Arab Emirates | UAE |
+| South Korea | S. Korea |
+| South Africa | S. Africa |
+| North Korea | N. Korea |
+| North Macedonia | N. Macedonia |
+| Northern Cyprus | N. Cyprus |
+| Central African Republic | Central African Rep. |
+| N. Mariana Island | N. Mariana Is. |
+| U.S. Virgin Island | U.S. Virgin Is. |
+| South Sandwich Islands | South Sandwich Is. |
+| British Indian Teritory | British Indian Ter. |
+| Falkland Island | Falkland Is. |
+| British Virgin Island | BVI |
+| Trinidad and Tobago | Trin./Tob |
+| Solomon Islands | Solomon Is. |
+| St. Pierre and Miquelon | St. Pierre |
+| Fr. S. Antarctic Lands | Fr. S. Antarctic |
+| Equatorial Guinea | Eq. Guinea |
+
+
+## エラーのトラブルシューティング
+
+階級区分図は、使用可能な一致を検索するように設計されています。このように、部分的な結果のマップが正しく表示されませんが、動作します。
+たとえば、米国の州のマップを使用する場合、Reveal はマップに一致する州を表示し、その他の州はグレーアウトされます。
+
+### 階級区分図のトラブルシューティング
+
+**[表示するデータはありません]** というエラーが表示される場合、定義済みのマップが提供された情報と一致していません。この問題をトラブルシューティングするには、以下の手順をお試しください。
+
+1. **表示形式エディターの確認**
+
+ - **[場所]** プレースホルダーで誤ったフィールドを割り当てた可能性があります。**[場所]** フィールドに大陸、国、州などの地理単位が含まれているかどうかを確認します。
+
+ - **[値]** プレースホルダーのフィールドに、選択した場所の情報が含まれていない場合があります。[マップ カラー] プレースホルダーでカテゴリを追加した場合 ([この例](choropleth-map.md#マップ-カラーを使用したマルチカラー階級区分図の作成)を参照)、[値] フィールドにこのカテゴリの情報を含める必要があります。たとえば、州ごとに候補者の投票を比較する場合、各候補者の投票に関する情報が必要です。
+
+ - また、**[マップ]** セレクターで正しいマップを選択したことを確認してください。
+
+ - ドリル ダウン時にエラーが発生した場合は、**[マップ]** セレクターにドリル ダウンするレベルのマップが含まれていることを確認してください。たとえば、現在スイスの州は [マップ] セレクターで使用できないため、データ ソースに必要な情報がある場合でもスイスにドリル ダウンできません。
+
+2. **データ ソースの確認**。データ ソースが空であるか、あるいは場所のデータがない場合があります。空でない場合は、つづりの間違いや奇妙な句読点を検索してみてください。正しい[場所の形式](#場所の形式)を使用しているかどうかを確認します。データ ソースの内容が英語で記載されていない場合は、[データ ソースが英語ではありません](#データ-ソースが英語にならない)セクションに移動してください。
+
+期待どおりの結果が得られなかった場合は、このトピックを含む、[「階級区分図」](choropleth-map.md)および[「階級区分図設定の操作」](settings-choropleth-map.md)トピック全体を参照してください。
+
+### 一般的なトラブルシューティングのヒント
+
+- **問題の特定**できる限り問題を特定します。たとえば、特定の場所を使用できない場合は、別の場所または別のデータ ソースを使用してみてください。問題を特定するには、一度に多くの設定を変更するのではなく、特定の設定を変更して結果を観察します。
+
+- **実行した手順を記録**トラブルシューティングを開始したら、実際に行った手順を記録しておきます。実行した手順を記録し、再現できることにより、問題の特定を効率的に行うことができます。
+
+
+## データ ソースが英語にならない
+
+Reveal はデータ ソースの言語を自動的に認識しません。
+データ ソース情報が他の言語で記述されている場合、以下のように指定する必要があります。
+
+1. **[設定]** を開き、**[データの言語]** をクリックまたはタップします。
+2. ドロップダウン メニューから言語を選択します。
+
+:::note
+現在、Reveal の階級区分図は英語と日本語をサポートします。
+:::
+データ ソースの場所情報が異なる言語で記述されている場合、Reveal 以外で翻訳する必要があります。
+
+### 日本のマップで日本語のデータ ソースを使用
+
+日本語のデータ ソースを使用して日本のマップを表示し、すべての日本の都道府県をマップしたい場合は、[この表](https://ja.wikipedia.org/wiki/%E9%83%BD%E9%81%93%E5%BA%9C%E7%9C%8C#%E4%BA%94%E5%8D%81%E9%9F%B3%E9%A0%86%E3%83%BB%E5%9F%BA%E7%A4%8E%E3%83%87%E3%83%BC%E3%82%BF)の形式とおりに位場所のデータを提供する必要があります。
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/pivot-table.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/pivot-table.md
new file mode 100644
index 00000000..dca786ad
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/pivot-table.md
@@ -0,0 +1,45 @@
+---
+title: ピボット テーブルの表示形式を作成する方法
+_description: Reveal でピボット テーブルの表示形式を作成して使用する方法を説明します。
+_language: ja
+---
+
+# ピボット テーブル
+
+
+ピボット テーブルの表示形式により、ユーザーは、**データ** セクションの対応するプレースホルダーにフィールドをドロップすることで情報を集約できます。
+
+
+
+行、列、または値のデータ エディターのプレースホルダーにフィールドが追加されているときに、フィールドを選択すると、そのフィールドの要約された設定が表示されます。
+
+ - **[値]** プレースホルダー内のフィールドでは、使用される要約関数 (average、count、sum など) を構成できます。
+
+ - **[行]** のプレースホルダーに日付フィールドをドロップすると、要約の詳細レベル (年、月、日) を選択できます。
+
+## ピボット テーブルの概要
+
+ピボット テーブルは、データ集計ツールです。このツールは、通常値によってグループ化された、表のような形式で保存されたデータを自動的に集計し、平均し、合計することを可能にします。たとえば、以下のテーブルがあるとします。
+
+
+| Salesman | Region | Product | OrderID | OrderTotal |
+| -------- | --------- | -------- | ------- | ---------- |
+| JOHN A. | Americas | ProductX | 1001 | 10 |
+| ERICK B. | Americas | ProductY | 1002 | 20 |
+| PETE C. | EMEA | ProductX | 1003 | 30 |
+| DAVID D. | China | ProductZ | 1004 | 10 |
+| JORGE E. | Australia | ProductY | 1005 | 5 |
+
+以下の解析のタイプを実行します。
+
+| | Americas | EMEA | China | Australia | Total |
+| -------- | -------- | ---- | ----- | --------- | ----- |
+| PRODUCTX | 10 | 30 | | | 40 |
+| PRODUCTY | 20 | | | 5 | 25 |
+| PRODUCTZ | | | 10 | | 10 |
+
+ピボット テーブルを使用して実行できます。
+
+ - *Product* フィールドを **[行]** プレースホルダーにドラッグアンドドロップし、すべての製品を行として表示します。
+
+ - *Region* フィールドを **[列]** プレースホルダーにドラッグアンドドロップし、*Region* フィールドの各値に動的なテーブルの列を作成します。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/radial-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/radial-charts.md
new file mode 100644
index 00000000..0e5252a1
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/radial-charts.md
@@ -0,0 +1,17 @@
+---
+title: ラジアル チャートの表示形式を作成する方法
+_description: Reveal でラジアル チャートの表示形式を作成して使用する方法を説明します。
+_language: ja
+---
+
+# ラジアル チャート
+
+[カテゴリ](../chart-types/category-charts.md) チャートと同様に、ラジアル チャートは情報を座標上に表現したものです。
+
+
+
+## ラジアル チャートのチャート 近似曲線
+
+チャートの [設定] で [チャートの近似曲線] の表示を有効にできます。これは、アルゴリズムに基づいてチャートに表示されるラインです。近似曲線でデータセットの傾向を把握し、意思決定のためのしきい値を定義できます。サポートされる近似曲線は、[線形]、[二次多項式]、[三次多項式]、[四次多項式]、[対数]、[指数]、[べき乗]、[単純平均]、[指数平均]、[修正平均]、[累加平均]、[加重平均] です。
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/scatter-bubble-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/scatter-bubble-charts.md
new file mode 100644
index 00000000..1e81cc9d
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/scatter-bubble-charts.md
@@ -0,0 +1,89 @@
+---
+title: 散布図・バブル チャートの表示形式を作成する方法
+_description: Reveal で散布図・バブル チャートの表示形式を作成して使用する方法を説明します。
+_language: ja
+---
+
+# 散布図・バブル チャート
+
+## 散布図とは?
+
+散布図は、X (水平) 軸と Y (垂直) 軸に沿ってデータ ポイントをプロットすることにより、2 つの定量的計測間の関係を表すために使用されます。データに大量の値のセットが含まれている場合に、パターンを示すのに特に役立ちます。
+
+## バブル チャートとは?
+
+バブル チャートは散布図のバリエーションで、データ ポイントがバブルに置き換えられます。散布図と同様に、バブル チャートは、2 つの定量的計測と、バブルのサイズで表される 3 番目の定量的計測間の関係を表します。
+
+## 散布図チャートを作成する方法
+
+
+
+上記の例では、散布図の表示形式は、特定の各**従業員**によって産み出された**新規販売**の数量と**収益**の関係を示しています。
+
+散布図を作成するには:
+
+1. **[チャート タイプ]** メニューで **[散布図]** の表示形式を選択します。
+
+
+
+2. **[X 軸]** と **[Y 軸]** の数値フィールドを選択して、データ ポイントの位置を決定します。
+
+3. **[ラベル]** のカテゴリ値を選択します。
+
+すべてのデータ ポイントには独自の**ツールチップ**があり、クリックすると表示されます。
+
+
+
+この例では、ツールチップは、データ ポイントが表す特定の従業員に関する情報と、チャートに含まれるそれらの量的なデータを提供します。
+
+## バブル チャートを作成する方法
+
+
+
+1 つの色だけを使用して基本的なバブル チャートを作成するには、次の操作が必要です。
+
+1. **[チャート タイプ]** のリストから **[バブル]** チャートを選択します。
+
+2. **[X 軸]** と **[Y 軸]** の数値フィールドを選択します。
+
+ 上記の例では、バブルの位置は、*Number of Inpatients* と *Length of Stay* の長さとの相関関係によって決定されます。
+
+3. **[ラベル]** のカテゴリ値を選択します。
+
+ 示されているチャートの各バブルは、神経科、心臓科、外科などの**部門**を表しています。
+
+4. **バブル半径**の数値フィールドを選択します。
+
+ 例から、各バブルのサイズは各 *Division* の *Treatment Costs* の合計に依存することがわかります。チャート上部の凡例は、チャートの**バブル半径**フィールドの最小値と最大値を示しています。
+
+バブルをクリックすると、各バブルの特定のデータを示す**ツールチップ**も表示されます。チャートで要素が重複している場合は、小さいバブルをクリックまたはタップしてツールチップを表示します。
+
+## 散布図とバブル チャートへの色分類の追加
+
+[カテゴリ] フィールドを散布図またはバブル チャートに追加できます。このフィールドの値に応じて、バブルまたは散布ポイントに異なる色が付けられます。
+
+
+
+上記の例では、*Date* フィールドがカラーボックスに適用されています。色分類を追加すると、部門の数値情報が *2017*、*2018*、*2019* のいずれを参照しているかに応じて、バブルに異なる色が割り当てられます。
+
+これにより、バブル チャートの表示形式でより多くのバブルが表示されるようになりました。
+
+## 散布図とバブル チャートの設定
+
+
+
+**[設定]**:
+
+ - **表示形式のスタイルを変更する**。
+
+ 表示形式の **[タイトル]** または **[凡例]** を表示するかどうかを選択できます。**[開始色]** を選択すると、データ ポイント/バブルの色が定義されます。色分類を使用するために複数の色が必要な場合、**[開始色]** から順番に適用されます。
+
+ - **[X 軸] と [Y 軸] の [リニア] スケールまたは [対数] スケールのいずれかを選択する**。
+
+ 対数の場合、値のスケールは通常のリニア スケールを使用する代わりに大きさを使用するリニア スケール以外で計算されます。
+
+ X 軸に対数スケールを使用する場合、散布図の水平軸は常に値軸であるため、一般的に、散布図は折れ線チャートよりも適切な選択です。
+
+ - **チャートの [最小値] および [最大値] を設定できる**。
+
+ デフォルトで [最小値] は 0 に設定され、[最大値] は使用されるデータによって設定されます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/scatter-map.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/scatter-map.md
new file mode 100644
index 00000000..9226ed56
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/scatter-map.md
@@ -0,0 +1,151 @@
+---
+title: 散布マップの表示形式を作成する方法
+_description: Reveal で散布マップの表示形式を作成して使用する方法を説明します。
+_language: ja
+---
+
+# 散布マップ
+
+このマップは、地理座標を使用して地理領域に散布マーカーを表示します。マーカーの視覚的な分布は、データ内の密度および空間パターンを識別するのに役立ちます。サイズや色を追加すると、他のポイントと比較してデータに関する詳細情報を表示できます。
+
+散布マップを使用すると、複数のマップ サービスに接続して、マップの背景をよりリアルにするだけでなく、詳細を調べることもできます。不動産市場分析を表示する場合など、一部のシナリオでは、マップに近所や通りを表示する機能が追加されます。
+
+
+
+## 散布マップの使用
+
+以下の情報は、必要に応じて最適な散布マップの構成を選択する際に役立ちます。
+
+### 基本ドット マップとは?
+
+Reveal の最も基本的な散布マップは、選択した領域に均一な色のドットをプロットしたものです。
+
+ドット マップは、エンティティの地理的分布を表示する優れた方法で、ドットがマップ上でクラスター化するときにパターンを明らかにできます。1 つのドットは 1 つのエンティティを表すため、各オブジェクトはデータセットの地理位置情報を使用してマップに表示されます。
+
+1 対多のドット マップは Reveal ではサポートされません。つまり、1 つのドットが複数のオブジェクトを表すことはできないため (1 ドット = 1000 人)、散布ドット マップを使用して人口密度マップなどを作成することはできません。
+
+### バブル マップとは?
+
+基本散布マップにサイズ カテゴリを追加すると、バブル マップが作成されます。異なる場所の定量データの比較に最適です。
+
+バブルのサイズは、比較される特定の変数の値を示します。比較効果を得るには、データセットに比較変数のさまざまな値が含まれていることが最適です。それ以外の場合、マップのバブルはサイズが同じように表示されます (以下の例を参照)。
+
+
+
+上記のスクリーンショットのように**外れ値**を特定してフォーカスしない限り、表示形式の選択を再検討する必要があります。
+
+バブルは、緯度と経度のデータで定義された正確な場所にバインドされていません。それらの場所は概算ですが、バブルは情報を伝達する領域に表示される必要があります。たとえば、米国全土で最も危険な領域に関するレポートを作成する場合、ほとんどの場合、報告された各犯罪の正確な場所は必要ありません。集計された犯罪データに基づいてサイズ設定されたバブルを正しい領域にプロットする必要があります。
+
+:::note
+考慮する必要がある潜在的な問題は、過度に大きいバブルが複数の領域に広がる可能性があることです。この場合、[バブル ツールチップ](#バブル-マップ)のテキストに場所データを追加すると、オーバーサイズのバブルが属する領域をユーザーが識別しやすくなります。
+:::
+
+### 色付き散布マップとは?
+
+色を使用すると、マップがわかりやすくなり、分析に変数を追加できます。
+
+カテゴリ別に色分けされたシンプルなドット マップは、オブジェクトの分布が多いクラスターや領域に注意を引くのに適しています。たとえば、異なる州の空港の色が異なる場合、最も多くの空港がある州をすばやく識別できます (以下を参照)。
+
+
+
+値で色分けされたドット マップは、大きなバブルが重なり合うリスクを回避しながらインサイトを提供します。たとえば、ヨーロッパの高齢人口の傾向を一目で確認したい場合は、人口の中年の色でドット マップを作成し、低、中、高の平均年齢を示す色を設定します。
+
+
+
+ただし、個々の場所の 2 つの値の相関関係を表示する場合は、一方の値をサイズで、もう一方の値を色で表示します。前の例を使用すると、人口の年齢別にドットに色を付け、国の国内総生産に基づいてサイズを設定して、国の豊かさと平均余命の相関関係を示すことができます。
+
+## 散布マップのズーム
+
+散布マップを使用すると、マーカーがより密にプロットされている領域、または [マップ] ドロップダウンの一部ではない領域 (バルカン半島など) にズームインしてフォーカスできます。ズーム領域を保存し、このビューをダッシュボードに保持することもできます。
+
+マップが最大化される場合、**ダッシュボード ビュー モード**または**表示形式エディター**でもズームインおよびズームアウトできます。
+
+散布マップを最大化すると、ズーム コントロールが表示され、ズーム レベルをより適切に調整し、必要に応じてリセットできます。
+
+
+
+上記のように、マップの右下にいくつかのボタンが表示されます。[ズームのリセット] ボタンをクリックすると、マップのズームが最後に保存されたときのズーム レベルにリセットされます。
+
+ズームを使用すると、Reveal がマップの背景として使用するクリアな図形を変更することもできます。選択したズーム レベルで、グレーの領域を、以下のいずれかのマップ サービスで提供される**画像タイル**と呼ばれる詳細な実際のマップで置き換えることができます。
+
+* *Bing*
+* *Esri*
+* *Mapbox*
+
+
+
+
+## 散布マップの作成
+
+Reveal の散布マップは、表示するデータに基づいて地理分析のさまざまな機会を提供します。
+
+### 場所のデータ要件
+
+散布マップの表示形式は、地理座標を使用してデータをプロットします。各データ ポイントには、緯度と経度の値を表示する必要があります。Reveal で受け入れられる形式は次のとおりです:
+
+* 緯度と経度にそれぞれ **2 つの異なる列**。
+* **緯度/経度** (10 進角形式)、例: -46.896388、168.126111
+
+:::note
+**受け入れられない形式**: *46° 53.783333'* などの分と秒の記号を含む緯度/経度形式、およびサフィックスを含む形式 (*- 46° 53' 47'' South, 168° 7' 34'' E*) は受け入れられません。
+:::
+
+**[表示するデータはありません。]** メッセージは、緯度と経度のデータが正しく、受け入れられた形式であっても、表示形式エディターに表示される場合があります。これは、地理座標が選択したマップの境界の外側にプロットされている場合に発生する可能性があります。
+
+### 基本的なドット マップ
+
+
+
+データセットの**緯度**と**経度**のデータのみを使用して、ドット マップを作成できます。データ ソースにこれらのフィールドが含まれていない場合は、別のデータ ソースから追加できます。
+
+また、[散布マップデータ] セクションの [マップ] ドロップダウンから事前定義されたマップの 1 つを選択する必要があります。
+
+さらに、オプションのラベル プレースホルダーにデータを入力して、緯度と経度のデフォルトのツールチップ テキストをデータ内の関連するラベル フィールド値に置き換えることができます。上のスクリーンショットでは、ドットは空港の住所に基づいて地図上に配置されていますが、ツールチップ テキストに空港の名前を使用することもできます。
+
+このマップの概念は単純であるため、タイトルを表示するかどうかを選択し、[設定] セクションでドットの色を設定することしかできません。
+
+
+### バブル マップ
+
+可変サイズのマーカーまたはバブルを使用して散布マップを作成することもできます。
+
+
+
+バブル マップは、基本的なドット マップと同じデータを使用して作成されます。さらに、[バブル半径] プレースホルダーに数値フィールドをドロップする必要があります。
+
+バブルのツールチップには、次の 2 つの部分があります:
+
+* 太字のタイトル - [ラベル] のフィールドからのデータを使用します。
+* コンテンツ - [バブル半径] のフィールドの名前と値で構成されます。
+
+**バブル ツールチップ**は、対象ユーザーが地図を読むのに役立ちます。これにより、バブル サイズが何を表しているのかがわかり、正確な値が得られます。バブルがマップ上の実際の領域であるという誤解を避けるのに役立ちます。
+
+### 散布マップに色を追加
+
+散布マップを使用すると、色で示される追加の 3 番目の変数を表示できます。色の追加は、ドット マップとバブル マップの両方のオプションです。
+
+
+
+マップ上の色は、次の方法で決定できます:
+
+* **値** - 数値データ フィールドを使用するのが最適です。テキスト フィールドをドロップすると、データが自動的に集計され、Reveal は**行数**を使用して色を決定します。
+
+* **カテゴリ** - テキスト フィールドが必要です。ただし、数値フィールドを指定すると、その値はテキストとして処理されます。つまり、集計は適用されず、個々の値ごとに個別の色が作成されます。
+
+### スタイル設定の構成
+
+**散布マップ**のスタイル設定には、表示形式の**タイトル**と**凡例**の表示/非表示、およびマップ上のマーカーの色とタイプの構成が含まれます。
+
+色の設定は、散布マップの種類によって異なります。
+
+均一な色のマーカーを使用する**基本的なドットおよびバブル マップ**の場合、**[開始色]** の 10 色パレットから色を選択できます。
+
+**カテゴリ別の色の散布マップ**の場合、**[別のマーカーの使用]** を選択できます。この機能を有効にすると、Reveal は、正方形、三角形、ドット、星、八角形などの色と記号の組み合わせを使用して、カテゴリごとに一意のマーカーを自動的に作成します。
+
+**値別の色の散布マップ**の場合、カラー スキームを構成できます。**[カラー バリエーション]** ドロップダウンに 3 つのオプションが表示されます。
+
+
+
+* **[単色]** - マップ上のすべてのマーカーを同じ色でスタイルを設定します。
+* **[値範囲]** - 7 色のいずれかを使用してマーカーのスタイルを設定します。明るい色から暗い色に進む色は、データ値を低いものから高いものへと表します。**[開始色]** を選択することもできます。これにより、7 つの色合いの中央の色が決まります。
+* **[条件付き書式]** - このスキームを使用すると、最大 3 つの範囲 (上、中、下) までのデータ範囲ごとにスタイリング ルールを確立できます。低い値が適しているかどうかは情報の性質によります。Reveal には状況に応じて最も理にかなった方法でスタイルを設定できる柔軟性があります。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/settings-choropleth-map.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/settings-choropleth-map.md
new file mode 100644
index 00000000..4af004e6
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/settings-choropleth-map.md
@@ -0,0 +1,47 @@
+---
+title: 階級区分図設定を使用する方法
+_description: このページで提供されるヒントで階級区分図を最大限に活用します。
+_language: ja
+---
+
+# 階級区分図設定の操作
+
+
+
+階級区分図表示形式の [設定] セクションでは、以下を設定できます:
+
+ - **[タイトルの表示]** - 表示形式のタイトルを表示するかどうかを選択します。
+
+ - **[凡例の表示]** - マップの上にカラー スケール範囲を表示するかどうかを選択します。
+
+ - **[カラー]** - 配色のベースとして選択する色を選択します。平均データ値の領域はこの色で塗りつぶされます。対照的に、データ値が低いマップ領域は明るい色で表示され、高いデータ領域は暗い色で表示されます。
+
+ - **[カラー バリエーション]** - 以下から選択できます:
+
+ * **[値範囲]** - 7 色の範囲を配色として使用し、データ値に基づいて領域を塗りつぶします。
+ * **[単色]** - 単一の色を使用して、データを含むすべての領域を表示します。情報のない領域は灰色です。
+
+:::note
+**[マップ カラー]** プレースホルダーにフィールドを追加した場合、[カラー バリエーション] の設定は **[次に基づいた色]** 設定に変更されます。マップ カラーを使用した階級区分図の作成の詳細については、[こちら](choropleth-map.md#マップ-カラーを使用したマルチカラー階級区分図の作成)を参照してください。
+:::
+ - **[ラベルの表示]** - 選択したマップがラベルをサポートする場合、ラベルを **[すべて]** の領域に配置するか、情報を含む領域のみに配置するか **[値がある場合のみ]**、オフにするか **[なし]** を選択できます。
+
+ - **[現在のラベル]** - **[場所の略語]** を選択して、ラベルを使用して地域の地名 (省略) を示すことができます。または、ラベルに各領域の **[値]** を表示できます。値ラベルは、**[値]** フィールドに選択した書式設定に基づいて、数値、パーセント、または通貨としてマップに表示できます。
+
+ - **[この表示形式を別のダッシュボードまたは URL に接続](../dashboard-linking.md)** - 表示形式に表示される情報についてさらに詳細を提供したい場合は、ダッシュボードの表示形式を他のダッシュボードまたは URL に接続できます。
+
+## ローカライズ設定
+
+現在、データセットは英語と日本語で提供できます。
+
+場所データが日本語の場合、Reveal はそれを英語に翻訳して目的のマップに接続します。
+
+Reveal で日本語のデータセットを使用し、言語および地域設定が日本語に設定されていない場合、Reveal が日本語 (*ja*) に切り替えてデータセットの言語を認識するために **[データの言語]** 設定を使用する必要があります。
+
+
+
+### ラベルの言語
+
+階級区分図のラベルの言語は、OS またはブラウザーで構成された言語と地域の設定によって定義されます。ロケール/言語を Reveal がサポートする言語に設定したマシンで Reveal を実行している場合、アプリはラベルをその言語にローカライズしようとします。これは **[データの言語]** 設定とは関係ありません。
+
+たとえば、日本人の従業員のマシンが母国語 (日本語) を使用するように設定されていて、そのデータが英語の場合、Reveal はラベルを日本語で表示します。ダッシュボードをドイツの投稿者と共有した場合、ドイツ語のラベルはマシンで使用する言語で表示されます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/sparkline-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/sparkline-charts.md
new file mode 100644
index 00000000..993104c7
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/sparkline-charts.md
@@ -0,0 +1,33 @@
+---
+title: スパークライン チャートの表示形式を作成する方法
+_description: Reveal でスパークライン チャートの表示形式を作成して使用する方法を説明します。
+_language: ja
+---
+
+# スパークライン チャート
+
+スパークライン チャートは、軸、ラベル、またはその他のチャート要素なしでグリッド チャート内にプロットされる小さなチャートで、指定された日付範囲のトレンドとその進行を表します。
+
+
+
+最初の列は表示形式エディターで固定されたままで、情報内の別の列をスクロールできます。
+
+
+
+## スパークラインの詳細設定
+
+表示形式エディターの **[設定]** セクションにアクセスすると、以下のいくつかの設定を変更できます。
+
+
+
+ - テキスト、数値、および日付の**配置**。
+
+ - グリッド要素の**フォント サイズ**。
+
+ - スパークラインの**チャート タイプ**: 折れ線チャートまたはエリア チャート。
+
+ - 日付の**集計**。
+
+ - グリッド内のスパークライン チャートに含める**値の数**。
+
+ - **スパークライン列に含める情報** (最後の 2 つの値やその差など)。さらに、**正の差異を緑または赤で表す**かどうかも選択できます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/text-box.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/text-box.md
new file mode 100644
index 00000000..3c19f96a
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/text-box.md
@@ -0,0 +1,49 @@
+# テキスト ボックス表示形式
+
+テキスト ボックスの表示形式は、その名前が示すように、テキスト本文とオプションのタイトルで構成されます。データ ソースに接続されていません。テキスト ボックスを使用する一般的なシナリオは、レポートにテキストの概要を追加することです。
+
+
+
+## ダッシュボードにテキスト ボックスを追加
+
+テキスト ボックスを既存のダッシュボードに追加する方法:
+
+1. ダッシュボードを**編集モード**で開きます。
+
+2. **[+ 表示形式]** の分割ボタンの右にある矢印をクリックまたはタップして、**[テキスト ボックス]** を選択します。
+
+
+
+:::note
+テキスト ボックス表示形式を既存のダッシュボードに追加すると、**ダッシュボードの下部**に表示されます。ドラッグすると移動できます。
+:::
+## ダッシュボードで最初の表示形式としてテキスト ボックスを作成する方法
+
+概要または簡単な紹介を表示するテキスト ボックス表示形式を作成してダッシュボードを開始することもできます。テキスト ボックスの作成メニューにアクセスするには、以下の手順を実行します。
+
+1. 初期画面の右上にある **[+ ダッシュボード]** ボタンをクリックまたはタップします。
+
+2. **[新しい表示形式]** ダイアログが開き、データ ソースを選択するように求められます。**[X]** をクリックまたはタップして、ダイアログを閉じます。
+
+ 
+
+3. **[+ 表示形式]** の分割ボタンにある**矢印**をクリックまたはタップして、**[テキスト ボックス]** を選択します。
+
+ 
+
+## テキスト ボックス表示形式の作業
+
+新しいテキスト ボックス表示形式を追加すると、以下の空のフォームが表示されます。
+
+
+
+このダイアログでは:
+
+ - **小**、**中**、**大**のテキスト サイズを選択できます。
+
+ - テキストの配置 (**[テキスト サイズ]** の隣) を選択できます。
+
+ - テキスト本文 (**[テキストの入力]** ボックス) に独自のテキストを記述できます。
+
+ - **タイトル**を追加できます。(オプション)
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/text-view.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/text-view.md
new file mode 100644
index 00000000..6284fcc8
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/text-view.md
@@ -0,0 +1,15 @@
+---
+title: テキスト ビューの表示形式を作成する方法
+_description: Reveal でテキスト ビューの表示形式を作成して使用する方法を説明します。
+_language: ja
+---
+
+# テキスト ビュー
+
+テキスト ビューは、以下に表示する従業員のレコード情報などのキー値のパターンに従った情報が表示されます。これは、列ラベルとペアになったデータの最初の行のみを表示します。特定の行を表示するためには、フィルターを適用することが可能でテキスト ビューによって選択されます。閲覧者が簡単に単一エンティティの属性を簡単に理解したい場合に適しています。例として、製品の仕様や個人の連絡先情報などがあります。
+
+
+
+**テキスト ビュー**は**条件付き書式**をサポートします。
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/time-series-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/time-series-charts.md
new file mode 100644
index 00000000..58d73b63
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/time-series-charts.md
@@ -0,0 +1,56 @@
+---
+title: 時系列チャートの表示形式を作成する方法
+_description: Reveal で時系列チャートの表示形式を作成して使用する方法を説明します。
+_language: ja
+---
+
+# 時系列チャート
+
+時系列チャートは、時系列でインデックス付けされたデータ ポイントを表示するために使用されます。傾向を一目で検出するために一般的に使用され、時間の経過に伴う開発を簡単に観察できます。
+
+
+
+従来の折れ線チャートと非常によく似ていますが、時系列チャートには常に時間ベースの水平軸 (x 軸) があります。
+
+## チャートの近似曲線
+
+チャートの設定で近似曲線の表示を有効にできます。このラインはアルゴリズムに基づいてチャートにラインを表示します。近似曲線でデータセットの傾向を把握し、意思決定のためのしきい値を定義できます。サポートされるトレンド ラインは、二次フィット、キュービック フィット、四次フィット、対数フィット、指数フィト、べき乗フィット、単純平均、指数平均、修正平均、累加平均、加重平均です。
+
+
+
+
+
+## 時系列チャートの設定
+
+[設定] では:
+
+- **デフォルトで表示される要素を非表示にすることができます**。
+ タイトル、凡例、およびツールチップの合計を非表示にすることを選択できます (カテゴリがある場合にのみ使用可能)。また、開始色を選択して、異なる**軸**を表示または非表示にすることもできます。
+
+- **近似曲線を表示できます**。
+ チャート設定を使用すると、前のセクションで説明したように、サポートされているさまざまなアルゴリズムから選択して、近似曲線を表示できます。
+
+- **軸を表示範囲に同期できます**。
+
+- **自動的なラベル回転を表示できます**。
+
+- **ズーム レベルを調整できます**。
+
+- **リニア スケールまたは対数を選択できます。**
+ 対数の場合、値のスケールは通常のリニア スケールを使用する代わりに大きさを使用するリニア スケール以外で計算されます。
+
+- **チャートの最小値および最大値を設定できます。**
+ デフォルトで最小は 0 に設定され、最大値は使用されるデータによって設定されます。
+
+- **コンパクトなラベルを選択できます**。
+ この設定を使用すると、チャートをズームするときに冗長なラベル情報を回避できます。
+
+- [この表示形式を別のダッシュボードまたは URL に接続します](../dashboard-linking.md)
+
+## ズームとパンニング
+
+時系列チャートが最大化されると、ズームインおよびズームアウトできます。これにより特定の時間間隔に焦点を合わせることができ、コンパクトなラベル設定を使用することが理にかなっている明確なシナリオです。
+
+## 統計関数
+
+Reveal は 3 種類の高度な予測分析を提供します。これらは、[時系列予測](../statistical-functions.md#時系列予測)、[線形回帰](../statistical-functions.md#線形回帰)、および[外れ値の検出](../statistical-functions.md#外れ値の検出)です。それらを使用して、データ シリーズで予測を行い、傾向を認識して評価し、外れ値を検出できます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/treemap-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/treemap-charts.md
new file mode 100644
index 00000000..92108c6d
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/chart-types/treemap-charts.md
@@ -0,0 +1,86 @@
+---
+title: ツリーマップの表示形式を作成する方法
+_description: Reveal でツリーマップの表示形式を作成して使用する方法を説明します。
+_language: ja
+---
+
+# Reveal のツリーマップ
+
+ツリーマップ表示形式は、階層データをネストされた四角形のセットとして表示するために使用されます。各レベルの四角形は、サイズと色が異なります。
+
+タイル (四角形) の各特性は、データ分析で役割を果たします。
+
+ * **色** - ツリーマップ表示形式で分割されるカテゴリを示します。この特性を定義するために使用されるフィールド データは、数値 (*123*)、文字列 (*ABC*)、または日付です。
+ * **サイズ** - 各カテゴリの値を示します。サイズを決定するために使用されるフィールド データは、数値 (*123*) のみです。
+ * **ラベル** - 表示形式の各四角形のカテゴリと値を表示します ([つまり、階層データがない場合](#階層データなしのツリーマップ表示形式))。[階層データを含むツリーマップ表示形式](#階層データのツリーマップ表示形式)がある場合、現在のレベルのカテゴリと値を示す追加のラベルがあります。
+
+
+## 階層データなしのツリーマップ表示形式
+
+以下に示すような**階層データなしの表示形式**を作成できます:
+
+
+
+階層のないツリーマップを使用して、パターンおよび一部と全体の関係を魅力的で明確な方法で表示できます。
+
+上記の表示形式は、*Product* ごとの *New Seats* を表示します。この表示形式を構成するには、次のことを行う必要があります:
+
+1. **[新しい表示形式]** ダイアログで、**[サンプル データ]** を選択します。
+
+ 
+
+2. **表示形式エディター**で、**ツリーマップ表示形式**を選択します。
+
+ 
+
+3. ツリーマップ データ セクションで、**[ラベル]**に *Product* を、**[値]**に *New Seats* をドロップします。
+
+**[ラベル]** (*Product*) にドロップされたデータは**色**を決定し、5 つの異なる四角形に表示形式を並べます。
+
+最大のタイルは、最大の *New Seats* 値を示します。四角形は、**左上 (最大) から右下にサイズで配置されます**。
+
+各四角形の**左下のラベル**には、各製品の概算値が丸めて表示されています。正確な値を表示するには、タイルをクリックまたはタップしてツールチップを表示します (スクリーンショットを参照)。
+
+ 
+
+## 階層データのツリーマップ表示形式
+
+階層データの処理は、ツリーマップの当初の目的です。階層に構成できる値のメトリックは 1 つだけですが、カテゴリは無制限です。
+
+
+
+上記の例では、ツリーマップは、*Product* カテゴリによって決定される 5 つの大きな四角形 (ツリーマップのブランチ) に分割されています。各ブランチには、次のカテゴリ レベル - *Territory* によって決定された**小さな四角形が含まれています**。下位レベルは表示されません。
+
+上記の例では、**2 種類のラベル**があることに気づくかもしれません。
+
+- 左上の大きな四角形の場合 - 各製品の合計新規販売に関する情報を示します。
+- 左下の小さな四角形の場合 - 特定の国で販売されている各製品の量を示します。
+
+タイルの色とサイズの特性に関する情報は、[階層なしのツリーマップ](#階層データなしのツリーマップ表示形式)について述べたものと同様です。
+
+### 階層レベルのドリル アップとドリル ダウン
+
+ツリーマップ表示形式をドリル アップおよびドリル ダウンして、異なる階層レベル間を移動できます。これを行うには、**大きな四角形の領域をクリックします** (含まれるタイルに関係なく)。ツールチップで、**[ドリル ダウン/アップ]** を選択します。
+
+
+
+### ツリーマップ レベルの詳細
+
+階層の最下部 (**ラベル**にドロップされた最後のフィールド) に到達すると、表示形式は[フラット ツリーマップ](#階層データなしのツリーマップ表示形式)のようになります。
+
+
+
+ツリーマップ表示形式の上部 (左側) にある**合計ラベル**は、すべてのレベルで変化します。*Totals* は、**[ラベル]** の各階層レベルの **[値]** フィールドの変更を反映しています (前の例の合計を比較してください)。上の例の合計ラベルには、日本での製品 B のすべての新規販売が表示されます。
+
+**タイトルのパンくずリスト**を使用して、表示されている現在のレベルを識別します。それらをクリックまたはタップして移動することもできます (ドリル アップの代わりに)。
+
+## 表示形式エディター設定の操作
+
+
+
+ツリーマップ表示形式の **[設定]** セクションでは、以下を設定できます:
+
+- **タイトルの表示** - 表示形式のタイトルを表示するかどうかを選択します。
+- **値の表示** - カテゴリに関する情報を表示する**ラベル**とさまざまなレベルの四角形の値を表示するかどうかを選択します。
+- **開始色** - 10 色のパレットから開始色を選択します。Reveal は選択に基づいて配色を調整します。
+- **リンク** - 表示形式をダッシュボードまたは URL に接続します。詳細は、[ダッシュボード リンク](../dashboard-linking.md)をご覧ください。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-excel.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-excel.md
new file mode 100644
index 00000000..8cf6c940
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-excel.md
@@ -0,0 +1,29 @@
+# Excel エクスポート
+
+Reveal では、ダッシュボードに使用されるデータを **Excel 形式**にエクスポートできます。ダッシュボードの各表示形式のデータは、Excel ファイルの別のシートにあります。
+
+:::note
+**Excel へのエクスポートの制限**。**テーブル データ**、つまり情報を行と列に整理したデータ ソース (スプレッドシート、CSV ファイル、データベース) を使用して、Excel のみのダッシュボードにエクスポートできます。ダッシュボードが画像や HTML などを使用してデータを表示する場合、Reveal は情報を Excel 形式にエクスポートできません。
+:::
+1. ダッシュボードの右上隅にあるオーバーフロー メニューに移動し、**[エクスポート]** を選択します。
+
+
+
+2. 次のダイアログが開きます。
+
+
+
+この **[ダッシュボード エクスポート]** ダイアログでは、Excel ファイルに含めるデータ シートを**選択**して**名前を変更**できます。各データ シートには、エクスポートするダッシュボードの特定の表示形式のデータが含まれています。Excel ドキュメントに**表示形式を含める**こともできます。
+
+**[表示形式をむ]** 設定には、次のオプションがあります:
+
+- **[含む]** - この表示形式のデータと同じシートにダッシュボードの表示形式を含めます。
+
+- **[別のシート上]** - 別のシートに表示形式とそれに対応するデータを含めます。
+
+- **[含めない]** - Excel シートに表示形式のデータのみを含めます。
+
+:::note
+**サポートされている表示形式**。次のチャートの表示形式は、Excel シートに**直接含める**ことができます: 柱状、折れ線、棒、エリア、積層型柱状、積層型エリア、円、ドーナツ型、ファンネル、複合、散布図、バブル、スパークライン。
+次の表示形式は、Excel シートに含まれる前に類似のタイプに**変換されます**: スプラインとステップ折れ線 ⇒ 折れ線; スプライン エリアとステップ エリア ⇒ エリア。
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-image.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-image.md
new file mode 100644
index 00000000..c8edb7cf
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-image.md
@@ -0,0 +1,46 @@
+# ダッシュボードを画像としてエクスポート
+
+Reveal では、ダッシュボード全体のスクリーン キャプチャまたは個別の表示形式をエクスポートすることができます。
+ローカル スペース/モバイル デバイスに配信されるファイルは **PNG 形式**です。
+
+## ダッシュボード全体を画像としてエクスポート
+
+ダッシュボード全体の画像をエクスポートするには:
+
+1. ダッシュボードの右上隅にあるオーバーフロー メニューに移動し、**[エクスポート]** を選択します。
+ 
+
+2. **[画像]** をクリックまたはタップします。
+
+ 
+
+3. **[画像をエクスポート]** ダイアログで、**[画像をエクスポート]** の青いボタンを選択します。
+
+ 
+
+**[クリップボードへコピー]** オプションを選択すると、ダウンロードすることなく、クリップボードに画像を取り込むことができます。
+
+## 個別の表示形式を画像としてエクスポート
+
+ダッシュボード全体の画像をエクスポートするには:
+
+1. ダッシュボードの**ビュー モード**で、右上隅の矢印をクリックまたはタップして、選択した表示形式を**最大化します**。
+
+ 
+
+2. **[エクスポート]** を選択し、オーバーフロー メニューで **[画像]** を選択します。
+
+3. **[画像をエクスポート]** の青いボタンを選択します。
+
+## 注釈画像
+
+特定の場所に異なる図形のメモやハイライトを含む必要がある場合、**[画像をエクスポート]** メニューでダッシュボードに注釈を追加できます。**注釈セクションにアクセスする**には、**[画像をエクスポート]** ダイアログで鉛筆アイコンを選択します。
+
+
+注釈メニューの上部ツールバーには、形状の追加やフリースタイルの注釈など、多くのオプションがあります。
+
+
+
+テキストのオプションでは画像の上にテキストを追加できます。背景色、フォントの太さ、フォント サイズ、フォント カラーなど、テキストをカスタマイズするオプションを提供します。
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-pdf.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-pdf.md
new file mode 100644
index 00000000..45137ce5
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-pdf.md
@@ -0,0 +1,37 @@
+# ダッシュボードを PDF 文書としてエクスポート
+
+Reveal では、ダッシュボードを PDF 文書としてエクスポートできます。各表示形式は、ドキュメントの個別のページに表示されます。
+
+ダッシュボードを PDF 文書としてエクスポートするには、ダッシュボード **ビュー モード**に移動して、オーバーフロー メニューから **[エクスポート]** ⇒ **PDF** を選択します。**[ダッシュボード エクスポート]** ダイアログが開き、PDF 文書をニーズに合わせるため、編集して特定のページに注釈を付けることができます。
+
+## エクスポート設定
+
+
+
+**[ダッシュボード エクスポート]** ダイアログでは、次の設定を管理できます:
+
+1. PDF 文書の**主タイトル**を変更します。デフォルトのタイトルは、ダッシュボードのタイトルです。
+
+2. **ページのタイトル**を変更し、**[タイトルの入力]** テキスト ボックス (2 番目のボックス) にサブタイトルを追加します。デフォルトのスライドのタイトルは、ページに表示される表示形式のタイトルです。
+
+3. **[ブランディング]** 設定オプションの管理では、以下を選択できます。
+
+ 1. **[作成者]** とその **[会社名]** - PDF 文書のページのヘッダー パネルに表示されます。
+
+ 2. **[カラー]** (PDF 文書のメイン カラー) とフッターで表示される会社の **[ロゴ]** - ここでは、次のオプションのいずれかを選択できます:
+
+ - **Reveal**
+
+ - **ユーザーの組織/ワークスペース** - 組織とすべてのワークスペースのブランディング (ロゴと色) が設定しているオプションとして表示されます。
+
+ - **カスタム** - 色を選択し、選択した**ロゴ**画像をアップロードします。
+
+:::note
+**ロゴ画像の要件**。ロゴとしてアップロードする画像は、**5 MB** 以下で、JPG、JPEG、PNG、GIF のいずれかの形式である必要があります。
+:::
+
+4. **横方向**または**縦方向**の**ドキュメントの向き**を選択します。
+
+5. リストからページを選択してタイトルを変更し、注釈を付け、あるいは右上角のチェック アイコンを除いてドキュメントを削除することで、**ドキュメント ページを管理できます**。
+
+6. **鉛筆アイコン**をクリックまたはタップして、選択したページに**注釈**を付けます。**注釈設定**の詳細については、「ダッシュボードを画像としてエクスポート」 トピックの[注釈画像](dashboard-export-image.md#注釈画像)セクションを参照してください。
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-powerpoint.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-powerpoint.md
new file mode 100644
index 00000000..91bbe76f
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export-powerpoint.md
@@ -0,0 +1,45 @@
+# ダッシュボードを PowerPoint 形式としてエクスポート
+
+Reveal では、ダッシュボードを PowerPoint 形式でエクスポートできます。各表示形式は、プレゼンテーションの個別のスライドに表示されます。
+
+プレゼンテーションのすべての要素は編集可能であるため、ニーズに合わせて調整できます。
+
+ダッシュボードを PowerPoint プレゼンテーションとしてエクスポートするには、次のことを行う必要があります:
+
+1. ダッシュボード **ビュー モード**に移動し、オーバーフロー メニューをクリックまたはタップします。
+
+2. **[エクスポート]** を選択し、**[PowerPoint]** をクリックまたはタップします。
+
+ 
+
+3. **[ダッシュボード エクスポート]** ダイアログが開き、プレゼンテーションを設定して特定のスライドに注釈を付けることができます。
+
+## エクスポート設定
+
+
+
+**[ダッシュボード エクスポート]** ダイアログでは、次の設定を管理できます:
+
+1. PowerPoint の**主タイトル**を変更します。デフォルトのタイトルは、ダッシュボードのタイトルです。
+
+2. **スライドのタイトル**を変更します。**[説明の追加]** ボックス (2 番目) に説明を追加することもできます。デフォルトのスライドのタイトルは、スライドに表示される表示形式のタイトルです。
+
+3. **[ブランディング]** 設定オプションの管理では、以下を選択できます。
+
+ 1. **[作成者]** とその **[会社名]** - スライドのヘッダー パネルに表示されます;
+
+ 2. **[カラー]** (PowerPoint のメイン カラー) とフッターで表示される会社の **[ロゴ]** - ここでは、次のオプションのいずれかを選択できます:
+
+ - **Reveal**
+
+ - **ユーザーの組織/ワークスペース** - 組織とすべてのワークスペースのブランディング (ロゴと色) が設定しているオプションとして表示されます。
+
+ - **カスタム** - 色を選択し、選択した*ロゴ*画像をアップロードします。
+
+:::note
+**ロゴ画像の要件**。ロゴとしてアップロードする画像は、**5 MB** 以下で、JPG、JPEG、PNG、GIF のいずれかの形式である必要があります。
+:::
+
+4. リストからページを選択してタイトルを変更し、注釈を付け、あるいは右上角のチェック アイコンを除いてドキュメントを削除することで、**PowerPoint のスライドを管理**できます。
+
+5. **鉛筆アイコン**をクリックまたはタップして、選択したスライドに**注釈**を付けます。**注釈設定**の詳細については、「ダッシュボードを画像としてエクスポート」 トピックの[注釈画像」](dashboard-export-image.md#注釈画像)セクションを参照してください。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export.md
new file mode 100644
index 00000000..84d51bb4
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-export.md
@@ -0,0 +1,21 @@
+# ダッシュボードのエクスポート
+
+ダッシュボードに表示される情報は、データ ソースの変更に伴って更新されますが、ある時点のデータのスナップショットを共有することもできます。たとえば、予期しない値を強調表示したビジネス インサイトを提供し、注意を促します。
+
+**エクスポート機能にアクセスする**には、右上隅にあるオーバーフロー ボタンを選択し、**[エクスポート]** をクリックまたはタップします。
+
+
+
+## エクスポート形式
+
+ダッシュボードは、以下のオプションを使用して簡単にエクスポートできます。
+
+
+
+ - [**画像のエクスポート**](dashboard-export-image.md) - ダッシュボード全体または個別の表示形式のスクリーン キャプチャをエクスポートします。
+
+ - [**PowerPoint のエクスポート**](dashboard-export-powerpoint.md) - ダッシュボードを PowerPoint プレゼンテーションとしてエクスポートします。
+
+ - [**PDF のエクスポート**](dashboard-export-pdf.md) - ダッシュボードを PDF ドキュメントとしてエクスポートします。
+
+ - [**Excel のエクスポート**](dashboard-export-excel.md) - ダッシュボードに使用されているデータを **Excel 形式**でエクスポートし、表示形式もスプレッドシートにエクスポートするかどうかを選択できます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-linking.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-linking.md
new file mode 100644
index 00000000..d0327359
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/dashboard-linking.md
@@ -0,0 +1,98 @@
+# ダッシュボード リンク
+
+Reveal はダッシュボード リンクをサポートしており、ダッシュボード内の表示形式を他のダッシュボードまたは URL に接続できます。表示形式により詳細な情報を表示したい場合、新しいダッシュボードを使用して目的を達成できます。この機能はトップダウン分析パスでとても役立ちます。ビジネスのハイレベルな概要から特定の詳細情報まで簡単にナビゲーションができます。
+
+Company ダッシュボード (以下を参照) を見てみましょう。このダッシュボードは、各エリアの KPI (キー パフォーマンス インジケーター) を提供します。ダッシュボードを開くと、1 つ以上の表示形式に**リンク記号**が表示されます。
+
+リンク記号をクリックまたはタップすると、以下を開くことができます:
+
+* **別のダッシュボード** (以下のスクリーンショットを参照)。表示形式またはその中の値に関連するより具体的な情報を提供します。
+* ダッシュボード ナビゲーションの一部としてサードパーティ ウェブ アプリケーションとのインタラクションなど拡張性を有効にする **URL**。
+
+
+
+
+
+## リンクを追加
+
+リンクを構成するには、表示形式エディターの **[設定]** セクションに移動し、**[リンク]** の **[+]** をクリックまたはタップします。または、**[表示形式を他のダッシュボードまたは URL に接続]** を選択することもできます。
+
+
+
+追加されたリンクは、ダッシュボードが**ビュー モード**の場合、構成されている表示形式にリンク記号として表示されます。
+
+### 別のダッシュボードへのリンク
+
+別のダッシュボードにリンクすると、あるダッシュボードの特定のポイントから別のダッシュボードに移動することができます。このポイントは、選択したリンク トリガーに応じて、表示形式または表示形式の特定の値になります (以下を参照)。
+
+ダッシュボードを別のダッシュボードにリンクするには、以下の手順を実行する必要があります。
+
+1. リンク先のダッシュボードを**準備します**。2 つのダッシュボードの関係を注意深く検討してください。
+
+ メイン ダッシュボードと同じように、リンク先のダッシュボードに予め**フィルターの追加**をしておくと、共通のフィールドでこの 2 つのダッシュボードを接続できます。このフィールドは、2 番目のダッシュボードではフィルターとして、最初のダッシュボードでは測定されたカテゴリとしてのロールを果たします。
+
+2. リンク先のダッシュボードを準備してから、リンクを追加するダッシュボードを開きます。リンク記号を表示する表示形式を選択し、**表示形式エディター**で開きます。
+
+3. **[設定]** に移動し、**[リンク]** の **[+]** を選択して、**[新しいリンク]** ダイアログが開きます。
+
+ 
+
+ ここでは、2 つのパラメーターを構成する必要があります:
+
+ * リンク記号をクリックすると開く**ダッシュボード**。
+
+ * グリッド行またはチャート要素を選択した場合にユーザーに表示されるタイトルである**リンク名**。
+
+ ターゲット ダッシュボードにダッシュボード フィルターを追加した場合は、リンクを追加する表示形式のデータセット内の対応するフィールドにダッシュボード フィルターを接続する必要もあります (以下を参照)。**[完了]** をクリックして戻ります。
+
+ 
+
+4. **[リンクの作成]** 青いボタンを選択します。
+
+ダッシュボードへのリンクは、**表示形式エディター**の **[リンク]** の下に表示されます。別の設定も表示されます - [トリガー]。[トリガーの選択](#トリガーの選択)の詳細については、以下を参照してください。
+
+### URL の追加
+
+URL の追加は、[新しいリンク] ダイアログのもう 1 つのオプションです。設定した URL をデバイスのブラウザで開くことができます。
+
+2 つのパラメーターを定義する必要があります:
+
+ - 表示形式が指す **[URL]**。リンク記号が選択されると、そこにリダイレクトされます。
+
+ - グリッド行またはチャート要素を選択した場合にユーザーに表示されるタイトルである **[リンク名]**。
+
+URL の場合は、**変数**を含めることもできます。これにより、表示形式フィールドの値に基づいて、ユーザーにリンクされる URL が動的に作成されます。たとえば、以下の表示形式リンクを見てみましょう。
+
+
+
+URL は `http://www.en.wikipedia.org/wiki` に設定されており、この場合は **CampaignID** 変数を選択しました。したがって、表示形式で **Navigate to Wiki** (Wiki へ移動) リンクを選択したユーザーは次のように表示されます:
+
+
+`http://www.en.wikipedia.org/wiki/[CampaignID].htm`
+
+`[CampaignID]` は値によって異なります。
+
+:::info **例のテスト**
+変数の追加がどのように機能するかをテストするには、**Marketing Dashboard** を使用します。*CampaignID* データ フィールドを含む *Conversions by Campaign* 表示形式を選択し、スクリーンショットに示すように URL を追加します。表示形式を保存し、ダッシュボード編集モードで、ファネル表示形式のさまざまな部分をクリックして、リダイレクト先の URL がどのように変更されるかを確認します。
+:::
+
+## トリガーの選択
+
+表示形式に最初のリンクを追加すると、[設定] の [リンク] の下に [トリガー] が表示されます。ここでは、トリガー オプションとして [値は選択されました] と [表示形式が最大化されました] のどちらかを選択できます。
+表示形式には必要な数のリンクを追加できますが、それらはすべて同じトリガーが有効になります。
+
+### [値は選択されました] トリガー
+
+このオプションを選択すると、柱状、棒、円スライスなどのチャートのデータ項目がクリックまたはタップされるたびに、リンク記号の付いたツールチップが表示されます。グリッド チャートでは、リンク記号が右側の最後の列に表示されます (以下を参照)。
+
+
+
+*EmployeeName* を使用してダッシュボード フィルターをターゲット ダッシュボードに追加した場合、上のスクリーンショットに示すように、グリッド内のリンク記号をクリックすると、*Joan Baez* 値が事前に選択された *EmployeeName* フィールドでフィルターされた別のダッシュボードが開きます。このように、ターゲット ダッシュボードには、選択した値の分析のみが表示されます。
+
+選択した値に URL がリンクされている場合は、リンク記号をクリックまたはタップすると、追加した URL が開きます。この機能を最大限に活用するために、フィールドを[変数](#url-の追加)として URL に追加することもできます。
+
+### [表示形式が最大化されました] トリガー
+
+このオプションを選択すると、**ダッシュボード編集**モードで表示形式の右上隅にリンク記号が表示されます。したがって、表示形式を最大化する代わりに、右上隅のリンク記号を選択すると、別のダッシュボードまたはリンク先の URL が開きます。
+
+
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/adhoc-hierarchies.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/adhoc-hierarchies.md
new file mode 100644
index 00000000..043735df
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/adhoc-hierarchies.md
@@ -0,0 +1,39 @@
+---
+title: Reveal アドホック階層 – 追加、作成、分析の高速化
+_description: Reveal で新しい階層を作成し、チャート、ゲージ、グリッド ビューでデータを分析します。
+_language: ja
+---
+
+# アドホック階層
+
+
+Reveal は年月日の日付フィールドの階層を自動的に作成しますが、他のタイプのフィールドでは発生しません。アドホック階層により、ユーザーはチャート、ゲージ、およびグリッドビューでデータを分析でき、データエディターの **[行]** プレースホルダーにあるフィールドを使用して新しい階層を作成できます。
+
+
+
+この機能は、Analysis Services などの多次元データ ソースではなく、プレーン データ ソース (SQLテーブル、Excelスプレッドシート、CSVファイルなど) に適用されます。これらの場合、階層はサーバー側で定義され、Reveal は**展開**および**ドリル**操作をサポートします。
+
+:::note
+アドホック階層は、テキスト、円形、画像、グリッド、テキスト ビュー チャートでは**サポートされていません**。
+:::
+## アドホック階層の有効化
+
+アドホック階層を有効にするには、データ エディターの **[行]** プレースホルダーの *[階層の追加]* にフィールドをドラッグアンドドロップします。これを設定するとデータ テーブルの構成および動作が変わります。
+
+
+
+上記のスクリーンショットのように、単一の列が複数の列を置き換えます。スクリーンショットに示されている例では、ドリルアップおよびドリルダウンできるだけでなく、各部署を展開してオフィサーを表示することもできます。
+
+## サポートされている可視化
+
+アドホック階層は、**以下のものを除く**すべての表示形式に追加できます。
+
+ - 円形ゲージ
+
+ - グリッド チャート
+
+ - テキスト ゲージ
+
+ - テキスト ビュー
+
+ - 画像チャート
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/aggregation.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/aggregation.md
new file mode 100644
index 00000000..30bd2908
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/aggregation.md
@@ -0,0 +1,100 @@
+---
+title: Reveal で集計計算フィールドを使用する方法
+_description: 集計数式を使用するさまざまなヒントとコツを説明します。
+_language: ja
+---
+
+# 集計計算フィールド
+
+
+集計式は、値の分析、再編成、含まれる情報の要約など、元のデータ ソースを使用して作業する場合に便利です。異なる値 (`average` など) の計算や最大 (`max`) / 最小 (`min`) の検索に使用することも可能です。そのため、**すべての数式**は**数値フィールドのみで使用します**。
+
+Reveal では、集計計算フィールドに以下が含まれます。
+
+- **標準関数**: 各情報は、「関数名」の下の対応するハイパーリンクをクリックします。
+
+- **if 文を含む標準関数**: [このセクション](#if-文のある計算フィールド)は、if 文 ([ネスト if 文](#ネスト-if-文のサンプル)を含む) の詳細および構成方法について説明します。
+
+:::note
+以下の表のすべてのサンプルは HR Dataset 2016 スプレッドシートで作成されました。
+:::
+
+## 集計関数
+
+| 関数名と説明 | 関数の構文 | サンプル |
+|-------------------------------|-----------------|--------|
+| **average**: `average` 集計は、選択した `expression` のすべての行の平均値で計算される数値を返します。 | `average({expression})` | `average([Wage])` |
+| **averageif**: if-condition のある正則関数を使用する場合、結果が条件内で定義される特定の条件を満たす必要があります。 | `averageif({expression},{if-condition})` | `averageif([Wage],[OfficeId]=1)` |
+| **count**: `count` 集計は、データ ソースの行数である数値を返します。 | `count()` | `count()` |
+| **countif**: if-condition のある正則関数を使用する場合、結果が条件内で定義される特定の条件を満たす必要があります。 | `countif({if-condition})` | `countif([OfficeId]=1)` |
+| **max**: `max` 集計は、選択した `expression` の最大値となる数値を返します。 | `max({expression})` | `max([Wage])` |
+| **maxif**: if-condition のある正則関数を使用する場合、結果が条件内で定義される特定の条件を満たす必要があります。 | `maxif({expression},{if-condition})` | `maxif([Wage],[OfficeId]=1)` |
+| **min**: `min` 集計は、選択した `expression` の最小値となる数値を返します。 | `min({expression})` | `min([Wage])` |
+| **minif**: if-condition のある正則関数を使用する場合、結果が条件内で定義される特定の条件を満たす必要があります。 | `minif({expression},{if-condition})` | `minif([Wage],[OfficeId]=1)` |
+| **sum**: `sum` 集計は、選択した `expression` のすべての行の合計として算出された数値を返します。 | `sum({expression})` | `sum([Wage])` |
+| **sumif**: if-condition のある正則関数を使用する場合、結果が条件内で定義される特定の条件を満たす必要があります。 | `sumif({expression},{if-condition})` | `sumif([Wage],[OfficeId]=1)` |
+
+
+## IF 文のある計算フィールド
+
+`if-condition` のある正則関数 (`expression` が必要) を使用する場合、結果が条件内で定義される特定の条件を満たす必要があります。
+
+### 構文
+
+デフォルトでは、IF サフィックスのある関数を選択した際に以下の構成が表示されます。
+
+`XXXXXXIF({expression},{if-condition})`
+
+2 つの引数を定義する必要があります。
+
+- `expression`: データ ソースのフィールドの 1 つを選択します。
+
+- `if-condition`: if 条件は論理テストの実行が必要です。`if-condition` の `logical test` は、集計を計算するための式に必要な条件です。
+
+### 基本サンプル
+
+たとえば、上記の表の例です。
+
+`averageif([Wage],[OfficeId]=1)`
+
+より明確にするために関数を上記で定義した用語に基づいて区別します。
+
+| 関数名 | 式 | IF 文 |
+| :------------: | :--------: | :-----------: |
+| averageif (…) | [Wage] | [OfficeId]=1 |
+
+以下は数値以外の場合の例です。
+
+`sumif([Wage],[Department]="Development")`
+
+説明:
+
+| 関数名 | 式 | IF 文 |
+| :------------: | :--------: | :-----------: |
+| sumif (…) | [Wage] | [OfficeId]=1 |
+
+### ネスト IF 文のサンプル
+
+論理演算子 (AND、OR) を前に使用してネスト IF 文を使用できます。
+
+以下は if 文が 2 つある例ですが、if 文を使用する際の上限はありません。
+
+`maxif([Wage], and([OfficeId]=1, [Department]="Development"))`
+
+説明:
+
+| 関数名 | 式 | 論理演算子 |
+|:----------:| :--------: | :--------------: |
+| maxif (…) | [Wage] | and |
+
+`if-condition` のステートメント:
+
+| 最初の論理テスト | true の場合の値 | false の場合の値 |
+| :----------------: | :-----------: | :------------: |
+| [OfficeId]=1 | 1 | 0 |
+
+| 2 番目の論理テスト | true の場合の値 | false の場合の値 |
+| :------------------------: | :-----------: | :------------: |
+| [Department]="Development" | 1 | 0 |
+
+論理演算子が `and` であるため、実行する `maxif` 集計の両方の条件が true である必要があります。
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/date.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/date.md
new file mode 100644
index 00000000..e687f67b
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/date.md
@@ -0,0 +1,93 @@
+---
+title: Reveal で日付計算フィールドを使用する方法
+_description: 日付計算フィールドを使用してさまざまな日時情報を出力する方法を説明します。
+_language: ja
+---
+
+# 日付計算フィールド
+
+日付数式は、ウィジェットでさまざまな日付と時刻の情報を出力するために使用できます。
+
+:::note
+計算フィールドに数式に含まれる情報が表示されます。日付と時刻に設定した書式をオーバーライトします。
+:::
+
+## 日付関数
+
+| 関数名 | 構文とサンプル |
+|---------------|-------------------|
+| date | **構文**: `date({year},{month},{day},{hour},{minute},{second})` **サンプル**: `date(1971,11,08,12,59,08)` |
+| datediff | **構文**: `datediff({date1}, {date2}, {lapse})` **サンプル**: `datediff("23/05/2015", "23/05/2016", "d")` |
+| datevalue | **構文**: `datevalue({date},{format},{locale})` **サンプル**: `datevalue("23/05/2015","dd/mm/yyyy","en")` |
+| day | **構文**: `day({date})` **サンプル**: `day(date(1971,11,08,01,22,44))` |
+| formatdate | **構文**: `formatdate({date},{format},{locale})` **サンプル**: `formatdate(date(1971,11,08,01,22,44),"dd/mm/yyyy","en")` |
+| fquarter | **構文**: `fquarter({date},{number})` **サンプル**: `fquarter(date(2017,12,1,12,33,48),4)` |
+| fyear | **構文**: `fyear({date},{number})` **サンプル**: `fyear(date(2017,12,1,12,33,48),2)` |
+| hour | **構文**: `hour({date})` **サンプル**: `hour(date(2017,12,1,12,33,48))` |
+| millisecond | **構文**: `millisecond({time})` **サンプル**: `millisecond(time(11,29,48,799))` |
+| minute | **構文**: `minute({date})` **サンプル**: `minute(date(2017,12,1,12,33,48))` |
+| month | **構文**: `month({date})` **サンプル**: `month(date(2017,12,1,12,33,48))` |
+| monthname | **構文**: `monthname({date},{locale})` **サンプル**: `monthname(date(2017,12,1,12,33,48),"en")` |
+| monthshortname | **構文**: `monthshortname({date},{locale})` **サンプル**: `monthshortname(date(2017,12,1,12,33,48),"en")` |
+| now | **構文**: `now()` **サンプル**: `now()` |
+| quarter | **構文**: `quarter({date})` **サンプル**: `quarter(date(2017,12,1,12,33,48))` |
+| second | **構文**: `second({date})` **サンプル**: `second(date(2017,12,1,12,33,48))` |
+| time | **構文**: `time({hour},{minute},{second},{millisecond})` **サンプル**: `time(11,08,08,11)` |
+| today | **構文**: `today()` **サンプル**: `today()` |
+| weekday | **構文**: `weekday({date})` **サンプル**: `weekday(date(2017,12,1,12,33,48))` |
+| weeknum | **構文**: `weeknum({date})` **サンプル**: `weeknum(date(2017,12,1,12,33,48))` |
+| year | **構文**: `year({date})` **サンプル**: `year(date(2017,12,1,12,33,48))` |
+| semester | **構文**: `semester({datetime})` **サンプル**: `semester(datetime(1))` |
+| fsemester | **構文**: `fsemester({date}, {number})` **サンプル**: `fsemester(date(2015,11,1,11,33,48),1)` |
+| applytimezone | **構文**: `applytimezone({date}, {timezone})` **サンプル**: `applytimezone(date(2015,12,1,10,33,38), ([Timezone]/24))` |
+| currenttimezone | **構文**: `currenttimezone()` **サンプル**: `currenttimezone()` |
+| datetimefromunixts | **構文**: `datetimefromunixts ({miliseconds})` **サンプル**: `datetimefromunixts(0.001)` |
+
+
+
+## Date
+
+`date` を使用する場合、Reveal は日付セットを数式に含まれる値へ返します。
+
+### 構文
+
+デフォルトで、date を選択した際に以下の構成が表示されます。
+
+`date({year},{month},{day},{hour},{minute},{second})`
+
+すべての値 (`month` を含む) は、数値で表す必要があります。
+
+### サンプル
+
+次の構造の数式は 08-Nov-1971 12:59 を返します。
+
+| 関数名 | Year | Month | Day | Hour | Minute | Second |
+| :-----------: | :--: | :---: | :-: | :--: | :----: | :----: |
+| date (…) | 1971 | 11 | 08 | 12 | 59 | 08 |
+
+次の構造の数式は、「hour」 の値が 24 時を超えているため 「09-Nov-1971 03:59」 を返します。数式の要素の順序は変更しないでください。
+
+| 関数名 | Year | Month | Day | Hour | Minute | Second |
+| :-----------: | :--: | :---: | :-: | :----: | :----: | :----: |
+| date (…) | 1971 | 11 | 08 | **27** | 59 | 08 |
+
+
+## Time
+
+time を使用する場合、Reveal は数式に含まれる値に設定した時刻を返します。
+
+### 構文
+
+デフォルトで、time を選択した際に以下の構成が表示されます。
+
+`time({hour},{minute},{second},{millisecond})`
+
+### サンプル
+
+次の構造の数式は 11:08:08 を返します。
+
+| 関数名 | Hour | Minute | Second | Millisecond |
+| :-----------: | :--: | :----: | :----: | :---------: |
+| time (…) | 11 | 08 | 08 | 11 |
+
+ミリ秒パラメーターは、計算フィールドに含まれません。ただし、異なる数式 (millisecond) 内の time に含まれる、値のみを表示することができます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/YoyAnalysisPercentage_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/YoyAnalysisPercentage_All.png
new file mode 100644
index 00000000..86c149f6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/YoyAnalysisPercentage_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/YoyAnalysisRevenue_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/YoyAnalysisRevenue_All.png
new file mode 100644
index 00000000..2ee4191f
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/YoyAnalysisRevenue_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/calculated-field-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/calculated-field-option.png
new file mode 100644
index 00000000..1c2a5033
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/calculated-field-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-bottom-list.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-bottom-list.png
new file mode 100644
index 00000000..19ca25bf
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-bottom-list.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-dialog.png
new file mode 100644
index 00000000..65105277
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-screen.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-screen.png
new file mode 100644
index 00000000..51e42c88
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-screen.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-visualization-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-visualization-example.png
new file mode 100644
index 00000000..b6b527d0
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/new-calculated-field-visualization-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-example.png
new file mode 100644
index 00000000..033295c5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-new-calculated-field-dialog-adding-fields.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-new-calculated-field-dialog-adding-fields.png
new file mode 100644
index 00000000..41adfe06
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-new-calculated-field-dialog-adding-fields.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-new-calculated-field-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-new-calculated-field-dialog.png
new file mode 100644
index 00000000..7e80e0ac
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-new-calculated-field-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-new-calculated-field-screen-adding-fields.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-new-calculated-field-screen-adding-fields.png
new file mode 100644
index 00000000..64cdd53c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-field-new-calculated-field-screen-adding-fields.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-fields-data-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-fields-data-editor.png
new file mode 100644
index 00000000..4ef67644
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/post-calculated-fields-data-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/pre-calculated-field-button.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/pre-calculated-field-button.png
new file mode 100644
index 00000000..90d478a6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/pre-calculated-field-button.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/yoy-analysis-percentage-all.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/yoy-analysis-percentage-all.png
new file mode 100644
index 00000000..bc0589dd
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/yoy-analysis-percentage-all.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/yoy-analysis-revenue-all.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/yoy-analysis-revenue-all.png
new file mode 100644
index 00000000..d84685e5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/images/yoy-analysis-revenue-all.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/information.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/information.md
new file mode 100644
index 00000000..efbef488
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/information.md
@@ -0,0 +1,40 @@
+---
+title: Reveal で情報計算フィールドを使用する方法
+_description: 情報計算フィールドで選択したフィールドの値を使用してテストする方法を説明します。
+_language: ja
+---
+
+# 情報計算フィールド
+
+情報計算フィールドは、指定したフィールドの値のテストに使用します。サイズの大きいスプレッドシートの場合、2 回目の計算を実行する前に作業する情報のタイプを確認できるため、大変便利です。
+
+## 情報関数:
+
+| **関数名** | **構文とサンプル** |
+|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------|
+| **empty**: `empty` は、空のセルを含む列を挿入するために使用できます。構成する引数はありません。 | **構文**: `empty()` **サンプル**: `empty()` |
+| [**isempty**](#isempty): `isempty` は指定した `expression` を評価してデータ ソースの各行の値が空かどうかをチェックします。 | **構文**: `isempty({value})` **サンプル**:`isempty([ResignedDate])` |
+
+
+
+
+## isempty
+
+empty とは異なり、isempty は選択したフィールドおよびデータシートの各行を確認します。
+
+行に値がない場合、出力は 1 です。値がある場合、0 が出力されます。
+
+### サンプル
+
+| 関数名 | 構文 | サンプル |
+| :-----------: | :----------------: | :-----------------------: |
+| isempty | `isempty({value})` | `isempty([ResignedDate])` |
+
+HR Dataset 2016 スプレッドシートの 4 行について確認します。
+
+| EmployeeID | FullName | … | Resigned Date | … | Calculated Field |
+| :--------: | :---------------: | :--: | :-------------: | :--: | :--------------: |
+| 1.00 | Joan Baez | … | | … | 1.00 |
+| 4.00 | Zurcher Reid | … | **28-Dec-2016** | … | 0.00 |
+| 22.00 | Zornes Hall | … | | … | 1.00 |
+| 35.00 | Zdiarski Campbell | … | **09-Apr-2016** | … | 0.00 |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/logic.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/logic.md
new file mode 100644
index 00000000..4093a826
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/logic.md
@@ -0,0 +1,246 @@
+# 論理計算フィールド
+
+
+論理計算フィールドは、データ ソースの 2 つ以上の値の比較に使用できます。値を送信した論理テストに基づいて常に 0 または 1 を返します。
+
+Reveal では、論理計算フィールドは次のとおりです。
+
+ - **引数のない関数**: それぞれ 1 と 0 を返す `true()` および `false()`。
+
+ - **論理テストのある複素関数**: 各関数の詳細な情報は、以下の表にあるリンクをクリックしてください
+
+:::note
+*以下の表のすべてのサンプルは HR Dataset 2016 スプレッドシートで作成されました。*
+:::
+
+## 論理関数:
+
+| **関数名** | **構文とサンプル** |
+|----------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|
+| [**and**](#and-と-or): `and` は 2 つの論理テストを実行します。論理テストは true の場合、1 を返します。1 つまた 2 つは false の場合、0 を返します。 | **構文**: `and({logical1},{logical2})` **サンプル**: `and([BirthDate]>date(1983, 07, 15, 04, 06, 55),[Department]="CPA")` |
+| [**false**](#true-と-false): `false` は論理値の false である 0 を返します。 | **構文**: `false()` **サンプル**: `false()` |
+| [**if**](#if): `if` は論理テストを実行します。論理テストは true の場合、1 を返します。論理テストは false の場合、0 を返します。 | **構文**: `if({logical test},{value if true},{value if false})` **サンプル**: `if([BirthDate]<(1971,04,15,4,06,55),1,0)` |
+| [**not**](#not): `not` は論理テストを実行します。論理テストは false の場合、1 を返します。論理テストは true の場合、0 を返します。 | **構文**: `not({logical})` **サンプル**: `not([OfficeId]>=3)` |
+| [**or**](#and-と-or): `or` は 2 つの論理テストを実行します (if ステートメント)。論理テスト の 1 つのいずれか true の場合、1 を返します。両方が false の場合、0 を返します。 | **構文**: `or({logical1},{logical2})` **サンプル**: `or(if([Office]="London,UK",1,0),if([BirthDate] **サンプル**: `true()` |
+
+
+
+## If
+
+If 関数で論理テストで定義した特定の条件を満たす結果を見つけることができます。3 つの引数で構文されます。
+
+ - `logical test`: 平均を計算するための式に必要な条件。
+
+ - `value if true` 論理テストが true の場合に関数がアウトプットする値。
+
+ - `value if false`: 論理テストが false の場合に関数がアウトプットする値。
+
+### 基本サンプル
+
+たとえば、上記の表の例です。
+
+`if([BirthDate]date(1992,09,15,4,06,55)`
+
+ - `[Department]="Development"`
+
+論理演算子が `and` であるため、実行する `maxif` 集計の両方の条件が true である必要があります。
+
+
+## And と Or
+
+`and` および `or` 関数は、適用する必要のある 2 つの論理テストを宣言してネスト if 条件を構築できます。and および or に同じ構文があります。
+
+| 関数名 | 論理テスト 1 | 論理テスト 2 | 出力 |
+| :-----------: | :------------: | :------------: | :-----------------------------------------------------------------------------------------------------------------------: |
+| **and** (…) | `logical1` | `logical2` | **両方の条件が満たされる場合、1 を返します**。 **条件の 1 つのみを満たす**場合、または **条件が満たされない**場合、**0 を返します**。 |
+| **or** (…) | `logical1` | `logical2` | **両方の条件、または条件の1 つのみを満たす場合、1 を返します**。**条件が満たされない**場合、**0 を返します**。 |
+
+### サンプル
+
+以下は *and* および *or* サンプルの例です。
+
+ - `and([BirthDate]>date(1983,07,15,04,06,55), [Department]="CPA")`
+
+ - `or([Office]="London,UK",[BirthDate]date(1983,07,15,04,06,55)` | `[Department]="CPA"` | 行に基づいた 1 および 0。 |
+| `or (…)` | `[Office]="London,UK"` | `[BirthDate]date(1981,07,15,4,06,05) | [Department]="CPA" | [Wage]>150000 |
+| | | | [Office]="Tokyo,Japan" |
+
+and/or 関数を [isempty](information.md#isempty) 計算フィールドと組み合わせて同じ結果を取得することも可能です。
+
+| 関数名 | 論理テス 1 | 論理テス 2 | 論理テス 3 | 論理テス 4 |
+| :-----------: | :------------: | :------------: | :-------------: | :-----------------------: |
+| `and (…)` | 同上 | 同上 | `[OfficeId]>=3` | `ISEMPTY([ResignedDate])` |
+
+構文が追加の引数によって複雑になるため、追加の条件をネストして論理テストをグループ化できます。結果に影響はありませんが、2 つ目の and を明確に定義する必要があります。
+
+`and([BirthDate]>date(1981,07,15,4,06,05),[Department]="CPA",[OfficeId]>=3,ISEMPTY([ResignedDate]))`
+
+ - 論理テス 1: `[BirthDate]>date(1983,07,15,4,06,55)`
+
+ - 論理テス 2: `[Department]="CPA"`
+
+ - 論理テス 3: `[OfficeId]>=3`
+
+ - 論理テス 4: `ISEMPTY([ResignedDate])`
+
+### 複雑な計算フィールドの簡素化
+
+複数の if 条件に基づいた結果が必要な場合は、上記のサンプルの数式などが便利ですが、構文は複雑になります。個別の計算フィールドを作成して 1 つの数式に結合することにより簡素化できます。たとえば、以下の計算フィールドがあります。
+
+`and([BirthDate]>date(1981,07,15,4,06,05),[Department]="CPA",[OfficeId]>=3,ISEMPTY([ResignedDate]))`
+
+4 つの if 条件があります。
+
+ - `[BirthDate]>date(1983,07,15,4,06,55)`
+
+ - `[Department]="CPA"`
+
+ - `[OfficeId]>=3`
+
+ - `ISEMPTY([ResignedDate])`
+
+各 IF 条件の計算フィールドをわかりやすい名前で作成できます。
+
+| IF ステートメント | 新しい計算フィールド | 計算済の数式 |
+| :------------: | :--------------------------------: | :------------------------------------: |
+| IF ステートメント 1 | Employees Born after July 15, 1981 | `[BirthDate]>date(1981,07,15,4,06,05)` |
+| IF ステートメント 2 | CPA Employees | `[Department]="CPA"` |
+| IF ステートメント 3 | JP, UY and BG Employees | `[OfficeId]>=3` |
+| IF ステートメント 4 | Current Employees | `ISEMPTY([ResignedDate])` |
+
+これらの新しいステートメントを新しい計算フィールドに結合します。
+
+`and([Employees Born after 1981],[CPA Employees],[JP, UY and BG Employees],[Current Employees])`
+
+
+## Not
+
+Not 関数を使用して、論理テストが true かどうかを確認できます。デフォルトでは、Not をタップすると以下の構造が表示されます。
+
+`not(logical)`
+
+### サンプル
+
+| 関数名 | 論理テス |
+| :-----------: | :--------------: |
+| `not (…)` | `[OfficeId]>=3)` |
+
+説明:
+
+| 式 | 演算子 1 | 演算子 2 | 条件の引数 |
+| :----------: | :--------: | :--------: | :---------------: |
+| `[OfficeId]` | `>` | `=` | `3` |
+
+### Not を and/or と組み合わせる
+
+Not を使用して `and`/`or` 計算フィールドで反対の結果を取得できます。
+
+以下の and 計算フィールドは、両方の if 条件が同時に true の EmployeeId 66 (Zerbe Johansen) のみに 1 を返します。すべての他の行は 0 を返します。
+
+| 関数名 | 論理テスト 1 | 論理テスト 2 |
+| :-----------: | :------------------: | :------------------------------------: |
+| `and (…)` | `[Department]="CPA"` | `[BirthDate]>date(1992,09,15,4,06,55)` |
+
+`not` を計算フィールドの前に追加することにより、反対の結果を取得できます。
+
+| not | and | 論理テスト 1 | 論理テスト 2 |
+| :--------: | :--------: | :------------------: | :------------------------------------: |
+| `not (…)` | `and (…)` | `[Department]="CPA"` | `[BirthDate]>date(1992,09,15,4,06,55)` |
+
+以前 0 を返したすべての行は 1 を返し、すべての 1 は 0 になります。
+
+
+## True と False
+
+`true` と false 関数が引数なしで使用されます。つまり論理テストが適用されていないため、**論理テストを実行する式や特定のステートメントがありません**。
+
+これらを if などの他の論理計算フィールドと組み合わせて使用すると便利です。以下は一般的な if 構文の例です。
+
+| 関数名 | 引数 1 | 引数 2 | 引数 3 |
+| :-----------: | :------------: | :-------------: | :--------------: |
+| **if** (…) | `logical test` | `value if true` | `value if false` |
+
+この式を、セクションの最初にある if の例で置き換えましょう (`if([BirthDate]HR Dataset 2016 スプレッドシートで作成されました。**
+:::
+
+## 検索/行列関数
+
+| **関数名** | **構文とサンプル** |
+|-------------------|-----------------------------------------------------------------------------------------|
+| [**previous**](#previous): `previous` は、`expression` として選択したフィールドの値で結果を取得できます。 | **構文**: `previous({expression},{first value})` **サンプル**: `previous([Wage],1)` |
+| **row**: `row` は、データ ソース内のすべての行の現在の行の番号を返します。 | **構文**: `row()` **サンプル**: `row()` |
+
+
+
+## Previous
+
+前の計算フィールドでは、`expression` で選択したフィールドの値で結果を取得できます。引数を 2 つ設定します。
+
+ - `expression`: データ ソースのフィールドの 1 つ。
+
+ - `first value`: デフォルトで空の最初の行の値。
+
+### サンプル
+
+以下は、HR Dataset 2016 の「Employees」シートを抽出したものです。
+
+| EMPLOYEEID | FULLNAME | DEPARTMENT | OFFICE | WAGE |
+| ---------- | ----------------- | ----------- | ------------------------- | -------- |
+| 1.00 | Joan Baez | Development | Montevideo, Uruguay | 36542.00 |
+| 2.00 | Zurbuch Thompson | Development | Cranbury, New Jersey, USA | 76865.00 |
+| 3.00 | Zimmermann Miller | Development | Cranbury, New Jersey, USA | 73768.00 |
+| 4.00 | Zurcher Reid | Development | Sofia, Bulgaria | 36018.00 |
+
+以下の計算フィールドを追加します。
+
+`previous([Wage],1)`
+
+以下は計算フィールドの結果です。
+
+| EMPLOYEEID | FULLNAME | DEPARTMENT | OFFICE | WAGE | previous Field |
+| ---------- | ----------------- | ----------- | ------------------------- | ------------ | -------------- |
+| 1.00 | Joan Baez | Development | Montevideo, Uruguay | **36542.00** | **1.00** |
+| 2.00 | Zurbuch Thompson | Development | Cranbury, New Jersey, USA | **76865.00** | **36542.00** |
+| 3.00 | Zimmermann Miller | Development | Cranbury, New Jersey, USA | **73768.00** | **76865.00** |
+| 4.00 | Zurcher Reid | Development | Sofia, Bulgaria | 36018.00 | **73768.00** |
+
+表に示すように、2 つ目の行は 2 つ目の行に `[WAGE]` 値を返します。関数で設定したとおり列の最初のセルを `1` で埋めます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/math.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/math.md
new file mode 100644
index 00000000..aaf2d275
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/math.md
@@ -0,0 +1,26 @@
+---
+title: 数学計算フィールドを使用する方法
+_description: 数学計算フィールドを使用してダッシュボードを完成させる方法を説明します。
+_language: ja
+---
+
+# 数学計算フィールド
+
+
+Math カテゴリのすべての関数はオンザフライで計算を実行する際に大変便利です。`rand` や `randbetween` 関数などの特定の関数は、データ ソースの行の順序をランダム化する場合に便利です。
+
+## 数学関数
+
+| **関数名** | **構文とサンプル** |
+|-------------------|-------------------------------------------------------------------------------|
+| **abs**: `abs` 関数は入力した数値の絶対値 (記号なしの数値) を返します。 | **構文**: `abs({number})` **サンプル**: `abs(-3)` |
+| **exp**: `exp` 関数は e (Euler の数値) を入力した値で乗した値を返します。 | **構文**: `exp({number})` **サンプル**: `exp(8)` |
+| **log**: `log` 関数は関数で指定された数を底とする数値の対数を返します。底が入力されていない場合、分析は対数の底が 10 であると仮定します。 | **構文**: `log({number},{logbase})` **サンプル**: `log(10,4)` |
+| **log10**: `log10` 関数は数値の対数を返します。ただし、底は常に 10 に設定されます。 | **構文**: `log10({number})` **サンプル**: `log10(1500)` |
+| **mod**: `mod` 関数は 2 つの数値を除算した場合の剰余または少数部を返します。 | **構文**: `mod({number},{divisor})` **サンプル**: `mod(5,3)` |
+| **rand**: `rand` 関数は 0 より大きく 1 未満の 実数を返します。関数に引数は必要ありません。引数を設定する必要はありませんが、乱数をさらに変更するための数学演算子を含むことができます。 | **構文**: `rand()` **サンプル**: `rand()` |
+| **randbetween**: `randbetween` 関数は指定した範囲内の整数を返します。 | **構文**: `randbetween({bottom},{top})` **サンプル**: `randbetween(0,9878654)` |
+| **sign**: `sign` 関数は数値の符号を決定して返します。 | **構文**: `sign({number})` **サンプル**: `sign(-1564)` |
+| **sqrt**: `sqrt` 関数は指定した数値の平方根を返します。 | **構文**: `sqrt({number})` **サンプル**: `sqrt(427716)` |
+| **trunc**: `trunc` 関数は数値の整数部分 (小数以外) を返します。 | **構文**: `trunc({number})` **サンプル**: `trunc(65787.24657)` |
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/overview.md
new file mode 100644
index 00000000..9d6b6544
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/overview.md
@@ -0,0 +1,163 @@
+---
+title: 計算フィールドを使用する方法
+_description: 計算フィールドとそのすべてのタイプを使用して、より正確なデータ可視化を作成する方法を説明します。
+_language: ja
+---
+
+# 計算フィールド
+
+Reveal では、計算フィールドというフィールドをデータセットに定義することができます。フィールドは、式 (数式) を使用して作成されます。式は、既存のフィールド、定数値、および以下の組み合わせにすることができます。
+
+ - [定義済み関数](#reveal-定義済み関数の使用)
+
+ - [単純な数学関数および定義されていない他の関数](#定義済み関数を使用せず計算フィールドを作成)。
+
+以下の 2 種類の計算フィールドがあります。
+
+ - [事前計算](#事前計算フィールド) (計算済み)
+
+ - [事後計算](#事後計算フィールド)。
+
+
+## 事前計算フィールド
+
+事前計算フィールドは、データ エディターの集計を実行する前に評価されます。つまり、特定の数式を適用するために、Reveal はフィールドのデータセット内のすべてのレコードを 1 回または複数回調べます。そのため、大規模なデータセットを使用する場合、事前計算のパフォーマンスが低下する可能性があります。
+
+新しい計算フィールドを追加するには、**[フィールド]** パネルの **[+]** ボタンをクリックまたはタップし、**[計算フィールド]** を選択します。
+
+
+
+[計算フィールドの作成] 画面が開きます。
+
+
+
+以下の手順を実行します。
+
+1. 新しい計算フィールドに名前を割り当てます。
+
+2. 数式 (式) を入力します。[フィールド] セクションで、すべての既存のフィールドのリストがら選択できます。1 つ以上のフィールドを使用して (選択したフィールドをクリックまたは角括弧で名前を入力) 数式を作成できます。[関数] セクションにリストされている定義済み関数のいずれかを選択して、または単純な数学計算を使用します (上記に表示)。
+
+新しい計算フィールドは、フィールド リストの下部に表示されます。
+
+
+
+上記の例では、集計がデータ フィールドに適用されていないグリッドの可視化で新しい計算フィールドが使用されます。事前計算フィールドは、**ピボット グリッド**でも使用できます。この場合、計算は事前計算フィールドで集計されたレコードに適用されます。
+
+
+## 事後計算フィールド
+
+**データ エディター**でデータ フィールドの集計を実行する**ピボット テーブル**やその他の表示形式を使用する場合、事後計算フィールドを作成できます。事後計算フィールドは、すでに集計された値に数式を適用することによって常に作成されます。
+
+事後計算フィールドを作成する手順:
+
+1. **データ エディター**でデータ ソースからフィールドを追加して、表示形式 (または**ピボット テーブル**) を作成します。
+
+ 
+
+2. **[値]** の横にある **[F(x)]** ボタンをクリック/タップして、**[計算フィールドの作成]** 画面を開きます。
+
+ 
+
+3. 計算フィールドに名前を付け、集計値に数式を適用します。注: **値**のリストには、集計後に表示形式で使用したデータ フィールドが含まれています (*Spend*、*Budget* ではなく、*Sum of Spend*、*Sum of Budget*)。
+
+**データ エディター**に含まれていないデータ ソースの他のフィールドを使用する場合は、**[値]** の横の **[+]** ボタンをクリックまたはタップして追加できます。事後計算フィールドは集計値のみで作成されるため、最初にデータ フィールドで実行する集計をドロップダウン リストから選択する必要があります。
+
+
+
+**手順 1** をスキップして、最初に事後計算フィールドを作成するか、表示形式で事後計算フィールドのみを使用することもできます。
+
+大規模なデータセットを使用する場合、事後計算は事前計算よりパフォーマンスが向上します。
+
+
+## Reveal 定義済み関数の使用
+
+事前計算フィールドと事後計算フィールドの両方で、Reveal で使用可能な機能のいずれかを使用できます。
+
+ - [**集計**](aggregation.md):
+ [average](aggregation.md#集計関数)、
+ [averageif](aggregation.md#集計関数)、
+ [count](aggregation.md#集計関数)、
+ [countif](aggregation.md#集計関数)、
+ [max](aggregation.md#集計関数)、
+ [maxif](aggregation.md#集計関数)、
+ [min](aggregation.md#集計関数)、
+ [minif](aggregation.md#集計関数)。
+
+ - [**日付**](date.md):
+ [date](date.md#日付関数)、
+ [datevalue](date.md#日付関数)、
+ [day](date.md#日付関数)、
+ [formatdate](date.md#日付関数)、
+ [fquarter](date.md#日付関数)、
+ [semester](date.md#日付関数)、
+ [fsemester](date.md#日付関数)、
+ [fyear](date.md#日付関数)、
+ [hour](date.md#日付関数)、
+ [millisecond](date.md#日付関数)、
+ [minute](date.md#日付関数)、
+ [month](date.md#日付関数)、
+ [monthname](date.md#日付関数)、
+ [monthshortname](date.md#日付関数)、
+ [applytimezone](date.md#日付関数)、
+ [currenttimezone](date.md#日付関数)、
+ [datetimefromunixts](date.md#日付関数)、
+ [now](date.md#日付関数)、
+ [quarter](date.md#日付関数)、
+ [second](date.md#日付関数)、
+ [time](date.md#日付関数)、
+ [today](date.md#日付関数)、
+ [weekday](date.md#日付関数)、
+ [weeknum](date.md#日付関数)、
+ [year](date.md#日付関数)。
+
+ - [**情報**](information.md):
+ [empty](information.md#情報関数)、
+ [isempty](information.md#情報関数).
+
+ - [**論理**](logic.md):
+ [and](logic.md#論理関数)、
+ [false](logic.md#論理関数)、
+ [if](logic.md#論理関数)、
+ [not](logic.md#論理関数)、
+ [or](logic.md#論理関数)、
+ [true](logic.md#論理関数)。
+
+ - [**検索/行列**](lookup-reference.md):
+ [previous](lookup-reference.md#検索行列関数)、
+ [row](lookup-reference.md#検索行列関数).
+
+ - [**数学**](math.md):
+ [abs](math.md#数学関数)、
+ [exp](math.md#数学関数)、
+ [log](math.md#数学関数)、
+ [log10](math.md#数学関数)、
+ [mod](math.md#数学関数)、
+ [rand](math.md#数学関数)、
+ [randbetween](math.md#数学関数)、
+ [sign](math.md#数学関数)、
+ [sqrt](math.md#数学関数)、
+ [trunc](math.md#数学関数)。
+
+ - [**文字列**](string.md):
+ [concatenate](string.md#文字列関数)、
+ [find](string.md#文字列関数)、
+ [len](string.md#文字列関数)、
+ [lower](string.md#文字列関数)、
+ [mid](string.md#文字列関数)、
+ [replace](string.md#文字列関数)、
+ [sortinterval](string.md#文字列関数)、
+ [trim](string.md#文字列関数)、
+ [upper](string.md#文字列関数)。
+
+:::note
+**IF 条件の制限**。事前計算のフィールドの集計関数に含まれる場合、IF 条件には既知の制限があります。計算式内の IF 条件を確認するためにすべてのレコードを複数回調べる必要があり、パフォーマンスが低下する問題が発生するため、サポートされていません。:::
+
+## 定義済み関数を使用せず計算フィールドを作成
+
+定義済み関数を使用せずに計算フィールドを作成することもできます。たとえば、減算、除算、加算、乗算などの単純な数学計算用。[こちらの表](samples.md)には、定義済み関数を使用しない例があります。
+
+## Reveal の関数を使用する際に注意すること
+
+ - テキスト文字列は引用符で囲む必要があります。例えば、ロケール ("en") および日付書式 ("dd/mm/yyyy")。
+
+ - 数式に含まれるフィールドは角括弧で囲む必要があります。たとえば、HR データセットの [Wage]、[BirthDate]、[EmployeeID] などです。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/samples.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/samples.md
new file mode 100644
index 00000000..228af085
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/samples.md
@@ -0,0 +1,60 @@
+---
+title: 計算フィールドのヒント、サンプル、および便利なケース
+_description: Reveal のデータ可視化で役立つヒントやサンプルを紹介します。
+_language: ja
+---
+
+# サンプル、ヒント、および便利なケース
+## ベーシックなサンプル式
+
+以下は計算フィールドのサンプル式のセットです。
+
+
+| 関数名 | 関数をテストするためのサンプル データセット | 式 | サンプル出力 |
+| -------------------------- |----------------------------------------| ----------------------------------------------------------------- | -------------------------------------- |
+| **Opposite Value** | HR Dataset | \-[Wage] | \-36,542.00 (for Joan Baez) |
+| **Age** | HR Dataset | (today()-[BirthDate])/365 | 50.13 (for Joan Baez) |
+| **Name & Department** | HR Dataset | [Fullname]& ", " &[Department] | Joan Baez, Development (for Joan Baez) |
+|**Sales Percentage** | Samples | [New Sales]*100/sum([New Sales]) | 9,26% (for Japan) |
+| **Name starts with J** | HR Dataset | if(find("j",lower([Fullname]),1)=1,"Starts with J",0) | Starts with J, 0 |
+| **Deviation from Avg** | HR Dataset | [Wage]-average([Wage]) | \-50476.71 (for Joan Baez) |
+
+
+## Unix 更新日時を使用可能な日付へ変換
+
+1970 年 1 月 1 日後の秒によって定義される Unix 時間 (Epoch 時間) はすべてのタイムゾーンを一度に表すために便利です。Unix 更新日時を持つデータ ソースをインポートする場合、[`date`](date.md) 数式を使用して利用可能な日付に変換できます。
+
+`((([Unix Time Stamp]/60)/60)/24)+DATE(1970,1,1)+([Timezone]/24)`
+
+説明:
+
+ - **オリジナルのフィールド**: [Unix Time Stamp]
+
+ - **分に変換**: /60
+
+ - **時に変換**: /60
+
+ - **日に変換**: /24
+
+ - **Epoch 時間の追加**: +DATE(1970,1,1)
+
+ - **タイムゾーンの追加**: +([Timezone]/24)
+
+タイムゾーンを数値として入力するか、数値を持つフィールドを使用できます。GMT 時間が必要です。
+
+
+## YoY 解析: 売上を 2 年期間の比較
+
+計算フィールドを簡易な YOY 解析を実行するために作成できます。
+
+以下のダッシュボードを参照します。会社の事業部および 2 年間の売上を表示します。
+
+
+
+以下の計算フィールドを使用して 2 つの数値を比較できます。「-1」 は年の違いを減算します。
+
+`([Revenue 2017]/[Revenue 2016])-1`
+
+数値を使用するか、[パーセンテージとして書式](../field-settings.md#数値フィールド)設定できます。
+
+
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/string.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/string.md
new file mode 100644
index 00000000..85e47ac8
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/calculated/string.md
@@ -0,0 +1,153 @@
+---
+title: 文字列計算フィールドを使用する方法
+_description: 文字列計算フィールドを使用して、より正確なデータ可視化を作成する方法を説明します。
+_language: ja
+---
+
+# 文字列計算フィールド
+
+文字列計算フィールド (`sortinterval` 以外) はテキストを編集でき、さまざまな結果を取得することができます。
+
+:::note
+**文字列の間に引用符 (" ") を常に含めてください。**
+:::
+
+## 文字列関数
+
+| **関数名** | **構文とサンプル** |
+|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| **concatenate**: `concatenate` は、複数の文字列 `text` を結合して句を構成できます。スペースは自動的には含まれません。必要な場合は、テキスト引数に含む必要があります。 | **構文**: `concatenate()` **サンプル**: `concatenate("Getting started", " with", " the", " Reveal", " application")` |
+| **find**: `find` は、引数で指定した `text` の場合、2 つ目の文字列内の `text` の 1 つ目 の文字列の開始位置 (`number`) を返します。 | **構文**: `find({find text},{within text},{start number})` **サンプル**: `find("with","Getting Started with Reveal visualizations",3)` |
+| **len**: `len` は入力した `text` 文字列のすべて大文字を小文字へ変換します。 | **構文**: `len({text})` **サンプル**: `len("Getting Started with Reveal")` |
+| **lower**: `lower` は指定した `text` 文字列のすべて大文字を小文字へ変換します。 | **構文**: `lower({text})` **サンプル**: `lower("Getting Started with Reveal")` |
+| **mid**: `mid` は引数で指定したことに基づいて指定した文字列 `text` の部分文字列 `length` を返します。 | **構文**: `mid({text},{start},{length})` **サンプル**: `mid("Getting Started with Reveal",9,12)` |
+| **replace**: `replace` は、指定した文字列 `text` を、引数で指定した別の `text` に置き換えます。 | **構文**: `replace({text},{old text},{new text})` **サンプル**: `replace("Getting Started with Reveal","Getting Started","Creating Visualizations with")` |
+| **sortinterval**: `sortinterval` は、関数で設定された間隔で値を返します。`NN [from,to]` の書式として文字列が返されます。| **構文**: `sortinterval()` **サンプル 1**: `sortinterval(33,140)`**サンプル 2**: `sortinterval([Wage],150000)`**サンプル 3**: `sortinterval([Wage],50000,80000,110000,140000)` |
+| **trim**: `trim` は、入力した `text` と同じ文字列を返しますが、先行または後続の空白を削除し、単語間の空白のみ保持します。 | **構文**: `trim({text})` **サンプル**: `trim(" Getting Started with Reveal ")` |
+| **upper**: `upper` は指定した `text` 文字列のすべて大文字を小文字へ変換します。 | **構文**: `upper({text})` **サンプル**: `upper("Caution: Hot. Do not touch")` |
+
+
+
+## Find
+
+find 関数は、引数で指定した 1 つ目と 2 つ目の文字列の開始位置を返します。
+
+### 構文
+
+引数を 3 つ設定する必要があります。
+
+ - `find text`: 検索するテキスト。
+
+ - `within text`: 検索を実行するテキスト。
+
+ - `start number`: 検索を開始する文字。
+
+### サンプル
+
+以下は上記の表のサンプルです。
+
+| 関数名 | Find Text | Within Text | Start Number | 出力 |
+| :-----------: | :-------: | :--------------------------------------------: | :----------: | :----: |
+| find(…) | `"with"` | `"Getting Started with Reveal visualizations"` | `3` | 15 |
+
+検索は `Getting` の 最初の `t` で開始します。結果の 15 は `with` の `w` が位置する文字番号です。
+
+| C. 1 | C. 2 | C. 3 | C. 4 | C. 5 | C. 6 | C. 7 | C. 8 | C. 9 | C. 10 | C. 11 | C. 12 | C. 13 | C. 14 | C. 15 |
+| :---: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :---: | :---: | :---: | :---: | :---: | :---: |
+| **t** | t | i | n | g | | S | t | a | r | t | e | d | | **w** |
+
+`with` が句で複数回繰り返される場合、計算フィールドは**単語の最初の発生**の文字を返します。
+
+
+## Mid
+
+mid 計算フィールドは関数の構成に基づいて指定した文字列の一部を返します。
+
+### 構文
+
+3 つのパラメーターを構成します。
+
+ - `text`: 文字列を選択するテキスト。
+
+ - `start`: 新しい部分文字列を開始する文字。
+
+ - `length`: 部分文字列の長さ。
+
+### サンプル
+
+以下は上記の表のサンプルです。
+
+| 関数名 | Text | Start | Length | 出力 |
+| :-----------: | :-----------------------------: | :---: | :----: | :----------: |
+| mid(…) | `"Getting Started with Reveal"` | `9` | `12` | Started with |
+
+テキスト文字列の開始が文字 9 で始まり、12 文字であるため、出力は `Started with` です。
+
+| C. 9 | C. 10 | C. 11 | C. 12 | C. 13 | C. 14 | C. 15 | C. 16 | C. 17 | C. 18 | C. 19 | C. 20 |
+| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
+| **S** | **t** | **a** | **r** | **t** | **e** | **d** | | **w** | **i** | **t** | **h** |
+
+
+## Replace
+
+Replace 関数は文字列を関数で指定した他の文字列と置き換えます。
+
+### 構文
+
+3 つの引数で構文されます。
+
+ - `text`: 元の完全な文字列テキスト。
+
+ - `old text`: 置き換えられるテキスト。
+
+ - `new text`: 古いテキストを置き換えるテキスト。
+
+### サンプル
+
+以下はサンプルです。
+
+
+
+ 関数名
+ Text
+ Old Text
+ New Text
+ 出力
+
+
+ replace(…)
+ "Using Reveal for iOS can be fast and easy. First, open the AppStore and look for Reveal. Then, install it. You're ready!"
+ "Reveal"
+ "our BI tool"
+ Using our BI tool for iOS can be fast and easy. First, open the AppStore and look for our BI tool . Then, install it. You're ready!
+
+
+
+
+古いテキストはいずれの場合も置き換えられます。**変更する前に用語が表示されるたびに変更されることを考慮してください**。
+
+
+## Sortinterval
+
+sortinterval 関数は、関数で設定された間隔で値を返します。
+
+### 構文
+
+返却文字列の書式は `NN [from, to]` です。
+
+### サンプル
+
+以下は上記の表のサンプルです。
+
+| 関数名 | 数値 | 間隔 |
+| :--------------: | :------: | :------: |
+| sortinterval(…) | `[Wage]` | `150000` |
+
+この場合、`Wage` を 1 つの値に対して比較し、2 つのカテゴリ (150K より大きい、150K 未満) に分類します。
+150K.
+
+以下の例は、`Wage` が 4 つの異なる値に対して比較し、5 つのカテゴリ (50000 未満、50000 から 80000、80000 から 110000、110000 から 140000、140000 より大きい) に分類します。
+
+| 関数名 | 数値 | 間隔 1 | 間隔 2 | 間隔 3 | 間隔 4 |
+| :--------------: | :------: | :--------: | :--------: | :--------: | :--------: |
+| sortinterval(…) | `[Wage]` | `50000` | `80000` | `110000` | `140000` |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/conditional-formatting.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/conditional-formatting.md
new file mode 100644
index 00000000..24860c2a
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/conditional-formatting.md
@@ -0,0 +1,47 @@
+---
+title: 条件付き書式を使用する方法
+_description: Reveal で条件付き書式を使用して、データをより正確に可視化する方法を説明します。
+_language: ja
+---
+
+# 条件付き書式
+
+条件付き書式を使用して数値列の値に応じて、セル (または[テキス トビュー](../chart-types/text-view.md)の行) に異なる書式を設定できます。たとえば、グリッドの下位 50% 範囲内の値は、非常に低い値を通知する赤色のアドナーで色を付けることができます。
+
+
+
+条件付き書式の設定では、データの範囲ごとに、3 つまでの範囲に (一般的には、中央上部、下部範囲スタイル設定に使用) スタイル規則を設定することができます。低い値が適しているかどうかは情報の性質によります。状況に応じて最も理にかなった方法でスタイルを設定できる柔軟性があります。
+
+
+
+## 条件付き書式設定の有効化
+
+数値列で条件付き書式を有効にするには、**[フィールドの設定]** ダイアログボックスを表示するためにデータ エディターのフィールドを選択します。条件付き書式は、設定の最後のオプションであり、デフォルトでは無効になっています。
+
+
+
+ - **制限**: これらの値は自動的に指定された値の列のデータセット内の最高値/最低値として設定されますが、一定の値を使用して手動でオーバーライドすることができます。
+
+ - **データ範囲**: データのスタイル設定に使用する 3 つの範囲。すべての範囲にはドロップダウンで定義済みのインジケーターと色のいずれかを選択できます。
+
+ - **値比較タイプ**: 範囲をパーセンテージまたは数値にします。
+
+ - **値は ≥ の場合**: 入力した数値より大きい値の書式。
+
+ - **値は ≥ の場合および \<**: 最初と 3 番目の範囲に入力する値に依存する固定範囲です。
+
+ - **値は \< の場合**: 入力した数値より小さい値の書式設定。
+
+## サポートされている表示形式
+
+条件付き書式は、以下の表示形式に適用できます。
+
+ - [グリッド チャート](../chart-types/grid-chart.md)
+
+ - [ピボット チャート](../chart-types/pivot-table.md)
+
+ - [テキスト ビュー](../chart-types/text-view.md)
+
+:::note
+[KPI](../chart-types/kpi-gauge.md)、[リニア](../chart-types/gauge-charts.md#リニア-ゲージ)、[円形](../chart-types/gauge-charts.md#円形ゲージ)、[テキスト](../chart-types/gauge-charts.md#テキスト-ゲージ)、および[ブレット グラフ](../chart-types/gauge-charts.md#ブレット-グラフ) ゲージは、[**表示形式バンドの範囲の構成**](../chart-types/gauge-charts.md#バンドの構成)で条件付き書式をサポートします。
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/field-filters-rules.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/field-filters-rules.md
new file mode 100644
index 00000000..6f007c0d
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/field-filters-rules.md
@@ -0,0 +1,106 @@
+---
+title: フィールド フィルターとルールをデータセットに適用する方法
+_description: 表示形式の作成中に Reveal のデータセットにフィルターまたはルールを適用する方法を説明します。
+_language: ja
+---
+
+# フィールド フィルターとルール
+
+データセットのフィールドにもフィルターとルールを適用できます。そのためには、データ エディターの下部にある**データ フィルター** プレースホルダーにフィールドを追加する必要があります。次に、ドロップダウン メニューからフィールドを選択して、**データ フィルター** ウィンドウにアクセスします。
+
+
+
+## 空値をフィルター
+
+Reveal は特定の列で空値のフィルター構成の設定を有効にすることによって、特定の列に null、または空の値を持つデータ セット内の行をフィルタリングする機能を提供します。
+
+
+
+## 値の選択
+
+このタイプのフィルターは、特定のフィールドに表示する値セットの定義をサポートします。これを有効にするには、フィールドを **[データ フィルター]** プレースホルダーにドラッグアンドドロップします。
+
+
+
+**[フィールド設定]** ダイアログに、**[値の選択]** オプションが表示されます。列に使用可能な値のリストを表示し、データセット内に残したい項目のみを選択できます。フィルターによって除外された値を持つ行は表示形式に表示されません。
+
+## ルールでフィルタリング
+
+**[ルールでフィルタリング]** オプションを使用すると、より複雑なルールを定義できます。使用可能なルール オプションは、フィールド タイプによって異なります。
+
+
+### 日付フィールドのルール
+
+日付フィールドには、時間ベースのシナリオ、日付範囲の変更、表示形式に表示される情報のフィルタリングをサポートするように設計されたルールが含まれています。
+
+- **カスタム日付範囲**
+
+- **先週、先月、または去年**
+
+- **過去 1 か月**
+
+- **来月、来四半期、または来年**
+
+- **先月、先四半期、または去年**
+
+- **日付までの四半期**
+
+- **今月、今四半期、または今年**
+
+- **今日**
+
+- **過去 1 年間**
+
+- **昨日**
+
+デフォルトでは、ルールによるフィルターが数値フィールドで有効になっている場合、**[なし]** に設定されます。
+
+### 数値フィールドのルール
+
+整数、小数、通貨などの数値型のフィールドは、次のルール タイプをサポートしています。
+
+- **平均より上**
+
+- **以上**
+
+- **値より大きい**
+
+- **平均より下**
+
+- **以下**
+
+- **値より小さい**
+
+- **下位の項目**
+
+- **下位の割合**
+
+- **上位の項目**
+
+- **上位の割合**
+
+デフォルトでは、ルールによるフィルターが数値フィールドで有効になっている場合、**[なし]** に設定されます。
+
+### 文字列フィールドのルール
+
+テキスト列は、次のルール タイプをサポートしています。
+
+- **含む**
+
+- **で終わる**
+
+- **等しい**
+
+- **含まない**
+
+- **等しくない**
+
+- **~で始まる**
+
+同様に、これらのルールは 1 つのパラメーターである、ルールが評価で使用する**開始値**または**等しい値**を取得し、同じ位置にあるテキストボックスに入力されます。
+
+## 値のフィールドのフィルタリング
+
+[集計](./calculated/aggregation.md)で**値**をフィルタリングできます。次に、この値は **[データ フィルター]** プレースホルダーのフィールドのリストに同じ集計で表示されます。
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/field-settings.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/field-settings.md
new file mode 100644
index 00000000..c94243c9
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/field-settings.md
@@ -0,0 +1,78 @@
+---
+title: Reveal でフィールド設定を使用する方法
+_description: データの並べ替え、フィルタリング、集計にフィールド設定を適用する方法を説明します。
+_language: ja
+---
+
+# フィールド設定
+
+このセクションでは、並べ替え、フィルター処理、データの集計などデータセットへの変換を適用するためのさまざまなオプションについて説明します。
+
+
+
+データにフォーマットまたはフィルターを適用するには、対応するプレースホルダー (**カテゴリ**、**列**、**ラベル**、**行**、および**値**) で変更する特定のフィールドを選択する必要があります。フィールドには 3 つのタイプがあり、それぞれに独自のフォーマットおよびフィルター オプションがあります:
+
+- [日付フィールド](#日付フィールド)
+- [数値フィールド](#数値フィールド)
+- [文字列フィールド](#文字列フィールド)
+
+:::note
+データ エディターの**値**プレースホルダーにドロップされたすべてのフィールドは、数値としてフォーマットされます。
+:::
+
+## 日付フィールド
+
+
+
+ - **ラベル名の変更**: 表示のみを目的としてフィールド名を変更します。フィールドは常に計算フィールド式で元の名前によって参照されます。名前を変更すると、ラベルを完全に消去し元の値に戻ります。
+
+ - **年度の最初の月**: 12 か月の期間が暦年と同じでない場合は、会計年度を使用して、期間の最初の月を選択できます。
+
+ - **並べ替え**: 日付を昇順または降順で並べ替えます。
+
+ - **日付書式**: 日付と時刻書式の定義済みリストから選択して、日付/時刻の値を表示します。
+
+### 日付フィールド階層
+
+日付フィールドの集計は、[フィールド] セクションに階層リストとして表示されます。日付フィールドの精度に応じて、[年]、[四半期]、[月]、[日]、および [分] を見つけることができます。
+
+ピボット エディターに日付フィールドをドラッグアンドドロップすると、すべての階層が自動的に表示されます (以下を参照)。
+
+
+
+さらに、特定の階層レベルをドラッグすると、以下に示すように、そのレベルのデータのみが表示されます。
+
+
+
+## 数値フィールド
+
+
+
+ - **ラベル名の変更**: 表示のみを目的としてフィールド名を変更します。フィールドは常に計算フィールド式で元の名前によって参照されます。名前を変更すると、ラベルを完全に消去し元の値に戻ります。
+
+ - **集計**: 数値を Reveal で処理する方法 (合計、カウント、平均) を構成します。
+
+ - **並べ替え**: 数値を昇順または降順で並べ替えます。
+
+ - **表示状態**: このフィールドのデータを現在の表示形式で使用するかどうかを選択します。
+
+ - **タイプ**: 数値の形式をパーセンテージ、通貨、または単純な数値のいずれにするかを定義します。**[通貨]** を選択すると、通貨の種類 (ドル、ユーロ、ポンド、円) を選択するオプションが表示されます。
+
+ - **分数桁**: 表示する小数点以下の桁数を選択します。
+
+ - **負の数**: 括弧内に負の数を囲む、またはマイナス (-) を頭に付けるかどうかを選択します。
+
+ - **大きな数値の書式設定**: 中央のペインの表示形式プレビューに 100 万 を M、千を K で表示します。
+
+ - **桁区切り**: 桁区切り記号を表示するかどうかを選択します。
+
+ - [**条件付き書式**](conditional-formatting.md): これを有効にすると、値に基づいて各セルに異なるフォーマットを提供できます。たとえば、フィールドの下位 50% 範囲内の値は、問題を通知する赤色のアドナーで色を付けることができます。3 つまでの範囲に (一般的には、上部、中央、そして下部の範囲に使用) スタイル規則を設定することができますが制限、比較のタイプ、色、およびインジケーター シンボルをカスタマイズできます。
+
+
+## 文字列フィールド
+
+
+
+ - **ラベル名の変更**: 表示のみを目的としてフィールド名を変更します。フィールドは常に計算フィールド式で元の名前によって参照されます。名前を変更すると、ラベルを完全に消去し元の値に戻ります。
+
+ - **並べ替え**: 日付を昇順または降順で並べ替えます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/ad-hoc-hierarchies-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/ad-hoc-hierarchies-example.png
new file mode 100644
index 00000000..29bd1977
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/ad-hoc-hierarchies-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/ad-hoc-hierarchy-pivot-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/ad-hoc-hierarchy-pivot-chart.png
new file mode 100644
index 00000000..ae6aeb3a
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/ad-hoc-hierarchy-pivot-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/conditional-formatting-configuration-fields-settings-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/conditional-formatting-configuration-fields-settings-dialog.png
new file mode 100644
index 00000000..8f83fe48
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/conditional-formatting-configuration-fields-settings-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/conditional-formatting-pivot-table-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/conditional-formatting-pivot-table-view.png
new file mode 100644
index 00000000..a9084c83
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/conditional-formatting-pivot-table-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filter-filter-empty-values-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filter-filter-empty-values-option.png
new file mode 100644
index 00000000..3dc96ee1
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filter-filter-empty-values-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filter-select-values.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filter-select-values.png
new file mode 100644
index 00000000..f262f482
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filter-select-values.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filter-visualization-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filter-visualization-editor.png
new file mode 100644
index 00000000..882a7270
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filter-visualization-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filters-currency-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filters-currency-sample.png
new file mode 100644
index 00000000..f3dc5120
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filters-currency-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filters-values-list.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filters-values-list.png
new file mode 100644
index 00000000..846b5e6c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/data-filters-values-list.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/date-field-hierarchy-level-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/date-field-hierarchy-level-example.png
new file mode 100644
index 00000000..d457426b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/date-field-hierarchy-level-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/date-fields-hierarchy.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/date-fields-hierarchy.png
new file mode 100644
index 00000000..cf70476d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/date-fields-hierarchy.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/field-settings-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/field-settings-dialog.png
new file mode 100644
index 00000000..53ef1a59
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/field-settings-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/field-settings-sort-by.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/field-settings-sort-by.png
new file mode 100644
index 00000000..eaf0a8b0
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/field-settings-sort-by.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/financial-metrics-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/financial-metrics-sample.png
new file mode 100644
index 00000000..72802046
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/financial-metrics-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/formatting-date-field.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/formatting-date-field.png
new file mode 100644
index 00000000..15bfb4c3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/formatting-date-field.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/numeric-field-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/numeric-field-settings.png
new file mode 100644
index 00000000..cd397cbb
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/numeric-field-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/sort-by-field-sales-information-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/sort-by-field-sales-information-sample.png
new file mode 100644
index 00000000..f713c164
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/sort-by-field-sales-information-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/sorting-by-priority-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/sorting-by-priority-sample.png
new file mode 100644
index 00000000..033090f5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/sorting-by-priority-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/string-field-formatting-field-settings-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/string-field-formatting-field-settings-dialog.png
new file mode 100644
index 00000000..53ef1a59
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/string-field-formatting-field-settings-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/support-cases-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/support-cases-sample.png
new file mode 100644
index 00000000..84b5e169
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/support-cases-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/text-view-conditional-formatting-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/text-view-conditional-formatting-example.png
new file mode 100644
index 00000000..e98f9c2b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/text-view-conditional-formatting-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/visualization-example-fields.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/visualization-example-fields.png
new file mode 100644
index 00000000..577ce8c1
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/visualization-example-fields.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/weekly-cases-priority.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/weekly-cases-priority.png
new file mode 100644
index 00000000..4067ca48
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/images/weekly-cases-priority.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/overview.md
new file mode 100644
index 00000000..56d981dc
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/overview.md
@@ -0,0 +1,25 @@
+---
+title: Reveal でフィールドを使用する方法
+_description: データセットのフィールドに変換を簡単に適用するオプションについて説明します。
+_language: ja
+---
+
+# フィールド
+
+このセクションでは、データセットのフィールドに変換を適用するためのさまざまなオプションについて説明します。フィルターを適用することにより、フィールドの情報をビジネス分析用に最適化できます。必要のないノイズを削除し、最も重要なアスペクトを強調表示して、さまざまな方法で情報を要約します。
+
+
+
+## トピックの概要
+
+いくつかのフィールド設定とフィルタリング オプションがあります。
+
+ - ラベルの名前変更、集計、並べ替え、書式、[条件付き書式](conditional-formatting.md)を含む[日付](field-settings.md#日付フィールド)、[数値](field-settings.md#数値フィールド)および[文字列](field-settings.md#文字列フィールド)フィールドの設定。
+
+ - [空値](field-filters-rules.md#空値をフィルター)のフィルター。
+
+ - [特定の値を選択する](field-filters-rules.md#値の選択)ためのフィルター。
+
+ - [ルール](field-filters-rules.md#ルールでフィルタリング)でフィルター。
+
+データセットがダッシュボード キャンバスに追加されると自動的に表示される[表示形式エディター](../visualization-editor.md)を介して、フィールド設定とルールにアクセスできます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/sort-by-field.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/sort-by-field.md
new file mode 100644
index 00000000..e7310ccb
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/fields/sort-by-field.md
@@ -0,0 +1,55 @@
+---
+title: Reveal のフィールドで並べ替える方法
+_description: 表示形式のデータの表示を変更して外観を変更する方法を説明します。
+_language: ja
+---
+
+# 並べ替えフィールド
+
+Reveal では、データを昇順または降順に並べ替えることで、表示形式のデータの表示方法を変更できます。さらに、元のデータ ソースで選択したフィールドで並べ替えることで、表示形式の外観をさらに制御することもできます。
+
+
+## 並べ替えフィールドを有効にする
+
+**[並べ替えフィールド]** オプションはフィールド設定の一部ですが、デフォルトでは非表示になっています。有効にする方法:
+
+1. **[ラベル]** プレースホルダーからフィールドを選択します。
+2. **[フィールド設定]**で、**[並べ替え]** に **[昇順]** または **[降順]** を選択します。
+3. **[並べ替え条件]** は、**[並べ替え]** 設定の下に表示されます。右側のドロップダウンからフィールドを選択できます (上記を参照)。
+
+より実用的な情報については、この機能を示す次の例をご覧ください。
+
+- [並べ替えフィールドを有効にする](#並べ替えフィールドを有効にする )
+- [サポート ケースを優先順位で順序](#サポート-ケースを優先順位で順序)
+- [文字列日付を時系列で並べ替え](#文字列日付を時系列で順序)
+
+
+## サポート ケースを優先順位で順序
+
+フィールドをアルファベット順に並べ替えるのではなく、ビジネス ロジックを使用して並べ替えたいシナリオがあります。たとえば、以下は、新しいサポート ケースを昇順で表示する表示形式です。
+
+
+
+*Priority* フィールドはテキスト フィールドであるため、デフォルトでは A-Z の順序になっています。ただし、ビジネス ロジックを使用する場合、*Priority*値は次のように並べ替える必要があります: *Low* - *Normal* - *High*。これを実現するには、データセットに優先度状態の数値表現を示す *Priority Level* 列が必要です (以下を参照)。
+
+
+
+[並べ替え条件] フィールド オプションを使用して、*Priority Level* フィールドをデータ エディタに実際にドラッグアンドドロップせずに、チャート内の情報を優先度レベル別に整理します。
+
+
+
+## 文字列日付を時系列で順序
+
+次の表示形式を見てみましょう。ここでは、[積層型柱状チャート](../tutorials-stacked-charts.md#積層型チャートの作成)で企業の現金と売掛金の増加をプロットしています。
+
+
+
+値は、**Month Name** (文字列フィールド) で並べ替えされています。ただし、月はデフォルトでアルファベット順に並べ替えされているため、結果の表示形式は分析には適しません。
+
+ただし、書式を変更し、**Month of Year** の順に情報を並べ替えることで、**Month Name** の表示方法を変更できます。Y 軸 (**Month of Year**) に 1-12 の数値を表示する必要はないかもしれませんが、それでもその順序を優先する必要があります。データ エディターのラベル プレースホルダーで **Month Name** フィールドを選択し、目的の並べ替えを選択します。
+
+
+
+この後、**[フィールドの更新]** を選択します。情報は時系列順に並べ替えられます。
+
+
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-connecting.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-connecting.md
new file mode 100644
index 00000000..41e29ea0
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-connecting.md
@@ -0,0 +1,53 @@
+---
+title: ダッシュボード フィルターを表示形式に接続する方法
+_description: 表示形式のデータを Reveal のダッシュボード フィルターに追加する方法を説明します。
+_language: ja
+---
+
+# ダッシュボード フィルターを表示形式に接続
+
+可視化したデータをダッシュボード フィルターにバインドする 2 つの方法があります。
+
+
+
+ - ダッシュボード フィルター構成の一部として接続 (上記参照)これにより、ダッシュボード フィルターとダッシュボードのすべての表示形式間のバインド構成が可能です。
+
+ - **表示形式エディター**を使用して (以下を参照)、ダッシュボード フィルターが作成された後でも、個々の表示形式をバインドできます。
+
+
+
+いずれの場合もダッシュボード フィルター データセットのフィールドへリンクするルールを追加してバインドが定義されます。 ([**フィールドのバインド**](#フィールドのバインド))表示形式エディターまたは [ダッシュボード フィルター] メニューで **[切断]** を選択すると、表示形式のバインドをいつでも削除できます。
+
+
+
+## フィールドのバインド
+
+フィールドのバインでは、ダッシュボード フィルターのデータセット スキーマ、および表示形式のスキーマ間の結合関係を構成することができます。使用するダッシュボード フィルターを選択して接続します。
+
+
+
+上記のダイアログで以下を構成する必要があります。
+
+ - **表示形式**: ダッシュボード フィルターのデータセットと結合するためのキーとして使用される表示形式データセット内の列を表します。たとえば、*Office*、*EmployeeID*、*ProductID* など
+
+ - **演算子**: 結合演算子は、以下のいずれかを使用します。
+
+ - **等しい**: フィールド値とダッシュボード フィルター選択の両方が等しい必要があります。
+
+ - **含む**: 文字列フィールドで使用されることを意図し、フィールドの値にダッシュボード フィルター選択が含まれている場合に有効になる一致を返します。たとえば、表示形式 = `FRANCE` **含む** フィルター = `FRA`。
+
+ - **範囲**: 日付範囲ダッシュボード フィルターでのみ使用します。
+
+ - **フィルター**: 結合されるダッシュボード フィルターの特定のダッシュボード フィルター。
+
+## パラメーター バインド
+
+パラメーター (REST、OData、および MS SQL Server ストアド プロシージャー) を使用するデータ ソースの場合、ダッシュボード フィルターをパラメーターに接続する必要があります。そのため、可視化のフィルター データを変更すると、接続されたパラメーターで選択した値で更新されます。
+
+ダッシュボード フィルターをパラメーターに接続するには、フィールド バインドの手順に従います。データ ソース パラメーターは、[フィルター接続の編集] ダイアログの表示形式 ドロップダウン リストの下部にあります。
+
+
+
+:::note
+**日付フィルター**: ダッシュボード フィルターのみをパラメーターにバインドできます。パラメーターへの日付フィルターのバインドはサポートされていません。
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-dashboard-properties.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-dashboard-properties.md
new file mode 100644
index 00000000..ceb6e480
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-dashboard-properties.md
@@ -0,0 +1,98 @@
+---
+title: ダッシュボード フィルターのプロパティを使用する方法
+_description: ダッシュボード フィルター プロパティをすばやく適用して使用し、表示形式の効果を最大限に高める方法について説明します。
+_language: ja
+---
+
+# ダッシュボード フィルターとそのプロパティ
+
+## ダッシュボード フィルター プロパティにアクセスする
+
+新しいダッシュボード フィルターを追加するには:
+
+1. ダッシュボード エディターに移動し、[フィルターの追加] ⇒ **[ダッシュボード フィルターの追加]** を選択します。
+
+2. ダッシュボード フィルター メニューが開きます。デフォルトで、選択されたデータ ソースは、はじめての表示形式で使用されるデータ ソースになります。変更するには、データ ソース名の横にあるオーバーフロー ボタンを選択します。
+
+ 
+
+3. ダッシュボード フィルターとして使用するデータセットを選択し、**[データの選択]** をクリック/タップします。
+
+## フィルター設定の概要
+
+フィルターの以下の設定を変更できます:
+
+
+
+- **タイトル:** ダッシュボードのタイトルのすぐ下に表示される、ダッシュボード ィルターのタイトル。デフォルトで、これはフィルターとして使用されるフィールド名です。
+
+- [**表示されるフィールド/要素:**](#表示フィールド) ダッシュボード フィルターとして使用されるデータセット内のフィールド。
+
+- **選択:** この設定では、以下を構成できます。[複数選択](#複数選択) (一度に複数の値を選択できます) および/または[必須選択](#必須選択) (少なくとも 1 つの値を常に選択する必要があります)。
+
+- [**データ フィルター:**](#データ-フィルター) この設定により、ダッシュボード フィルターに使用されるデータ ソースにフィールド フィルターとルールを適用できます。
+
+- [**接続された表示形式:**](filters-connecting.md) ダッシュボードを表示形式に接続するかどうか。
+
+## 表示フィールド
+
+:::note
+**Microsoft Analysis Services** および **Google アナリティクス**のデータを使用するダッシュボード フィルターの場合、この設定の名前は **[表示する要素]** です。
+:::
+
+**表示するフィールド/要素**設定は、ダッシュボード フィルターの値を表示するために使用されるデータセット フィールドを指定します。リスト値は、元のデータセットで複数回表示された場合も繰り返されません。
+
+ダッシュボード フィルター名の隣りのオーバーフロー メニューで [編集] ボタンをクリックして、編集モードで表示列を変更できます。
+
+
+
+## 複数選択
+
+Reveal は、複数のダッシュボード フィルター値の同時選択をサポートしています。これにより、コレクション内で要素を並べて比較できます。たとえば、[HR ダッシュボード] で複数の選択を有効にすることで、さまざまなオフィスの雇用や欠勤を比較することができます。
+
+
+
+**[複数選択] を有効する**には、ダッシュボードを編集モードに替える必要があります。⇒ ダッシュボード フィルターのオーバーフロー ニューから **[編集]** を選択 ⇒ **[選択]** ⇒ **[複数選択]** チェックボックスをオンにします。
+
+
+
+## 必須選択
+
+ダッシュボード フィルターで選択オプションを必須または無効にできます。デフォルトでは、選択は不要です。選択オプションで、ユーザーがすべてのダッシュボード フィルター値を解除することができ、実行したクエリからフィルターを削除します。クエリはデータ ソースのすべてのデータを取得し、ダッシュボード フィルター行に「選択なし」と表示されます。
+
+**[必須選択] を有効する**には、ダッシュボードを編集モードに替える必要があります。⇒ ダッシュボード フィルターのオーバーフロー ニューから **[編集]** を選択 ⇒ **[選択]** ⇒ **[必須選択]** チェックボックスをオンにします。
+
+
+
+## データ フィルター
+
+ダッシュボード フィルターに表示されるデータセットのフィールドにフィルターを適用することもできます。これにより、特定のフィールドの null または空の値をフィルター アウトできます(空の値のフィルター)。特定の値を選択するか、フィールド タイプに応じてオプションを変更するためにフィールドにルールを追加することもできます。詳細は、**フィールド フィルターとルール**をご覧ください。
+
+たとえば、**Fullname** フィールドを使用して **HR ダッシュボード**のデータをフィルタリングする場合、**ダッシュボード フィルター**は会社のすべてのオフィスの従業員リストを表示します。
+
+
+
+フィルター リストに特定のオフィス (*London, UK* など) で働く従業員のみを含める場合は、以下に示すようにデータ フィルターを適用します。
+
+### ダッシュボード フィルターにデータ フィルターを適用
+
+ダッシュボード フィルターとして使用されるデータ ソースにフィールド フィルターとルールを適用し、ダッシュボード フィルターに (上記の例のように) *London, UK* オフィスの従業員のみを表示するには、次の手順に従います。
+
+1. ダッシュボード フィルター設定の**データ フィルター**に移動します。
+
+2. **表示フィールド**プロパティで **Employee name** を選択します。
+
+3. [フィールドを選択] をクリックまたはタップして、リストから [オフィス] を選択します。
+
+ 
+
+4. 次のダイアログで、適用するフィルター タイプを選択します (この例では、**[値の選択]** を選択します)。
+
+ 
+
+5. リストから *London, UK* を選択し、[フィルターの作成] ボタンをクリックまたはタップします。
+
+## 次の手順
+
+ダッシュボード フィルターを作成したので、フィルターを適用する**表示形式に接続する**必要があります。詳細は、[ダッシュボード フィルターを表示形式に接続](filters-connecting.md)をご覧ください。
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-dashboard.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-dashboard.md
new file mode 100644
index 00000000..8e887004
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-dashboard.md
@@ -0,0 +1,33 @@
+---
+title: ダッシュボード フィルターを追加して使用する方法
+_description: ダッシュボード編集モードを使用して Reveal に新しいダッシュボード フィルターを追加する方法について説明します。
+_language: ja
+---
+
+# ダッシュボード フィルター
+
+ダッシュボード フィルター データセットは、**ダッシュボード編集**モードを開始することによって定義されます。新しいデータセットを追加するには、**[フィルターの追加]** のボタン を選択します。
+
+
+
+これにより、適用される可能性のあるダッシュボード フィルターのリストが表示されます。以下から選択できます:
+
+ - **ダッシュボード フィルターの追加**このオプションを使用すると、データ ソースから情報を選択できます。その後、ダッシュボードの各表示形式にフィルターをバインドできます。
+
+ - **日付フィルターの追加**このオプションは、固定範囲の選択や指定した日付範囲のみ表示するようカスタマイズできます。
+
+ダッシュボード フィルター リストからデータセットを削除するには、ダッシュボード フィルターの横にあるオーバーフロー ボタンを選択し、**[削除]** を選択します。
+
+
+
+## ダッシュボード フィルターと表示形式エディター
+
+ダッシュボード エディターに 1 つ以上のダッシュボード フィルターまたは日付フィルターが定義されている場合、フィルター名の下部にある **[接続]** をクリックするとダッシュボード フィルターまたは日付フィルターのデータを表示形式にバインドします。
+
+
+
+日付フィルター ダイアログまたはダッシュボード フィルター ダイアログでデータを接続することもできます。
+
+
+
+バインド機能の詳細については、[「ダッシュボード フィルターを表示形式に接続」](filters-connecting.md)トピックを参照してください。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-date-range.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-date-range.md
new file mode 100644
index 00000000..1c649439
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-date-range.md
@@ -0,0 +1,15 @@
+# 日付範囲グローバル フィルター
+
+Reveal は、データをダッシュボード フィルターにバインドする際のさまざまな日付範囲の設定をサポートしています。これにより、時間ベースの分析シナリオ、単一日付範囲の変更、ダッシュボード全体のフィルタリングが可能になります。ダッシュボード フィルター セクションで日付範囲を有効にするには、**[フィルターの追加]** メニューで **[日付フィルターを追加]** を選択します。
+
+
+
+日付のダッシュボード フィルターを有効にすると、[表示形式バインディング式](filters-connecting.md)で使用できるようになります。
+
+
+
+## カスタム日付範囲の使用
+
+Reveal では、さまざまな事前設定された日付範囲 (特に、過去 30 日、7 日、または 365 日を含む) を提供していますが、特定の日付範囲内のデータを表示するように範囲を定義することもできます。**[日付フィルター]** ドロップダウンで **[カスタム日付範囲]** を選択すると、パーソナライズされた日、月、および時代のオプションを含むカレンダーが表示されます。
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-overview.md
new file mode 100644
index 00000000..8e87dc72
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-overview.md
@@ -0,0 +1,33 @@
+---
+title: Reveal のフィルター – 必要な情報
+_description: ダッシュボード フィルターのすべてを学び、データセットを追加して、各表示形式を Reveal で一意にします。
+_language: ja
+---
+
+# フィルター
+
+ダッシュボード フィルターを使用すると、ダッシュボードの全ての表示形式のコンテンツを一度にフィルター適用できます。データセットをダッシュボード フィルター コレクションに追加すると、すべてのダッシュボード表示形式にバインドされるフィルター設定が維持されます。動的なフィルターは、フィルターの選択が変更されると、接続されているすべての表示形式に適用されます。
+
+たとえば、世界中の場所のリストを含むデータセットを追加して、ダッシュボードのすべての表示形式をバインドできます。このシナリオでは、各ダッシュボードの情報を参照するユーザーが場所ごとに各表示形式のコンテンツをフィルタリングできます。
+
+
+
+Reveal は、日付範囲をダッシュボード フィルターとして有効にすることもサポートします。これにより、特定の期間ですべての表示形式をフィルタリングできます。
+
+このセクションは以下のトピックを説明します:
+
+ - **ダッシュボード**と**表示形式エディター**の両方の[ダッシュボード フィルター](filters-dashboard.md)
+
+ - [ダッシュボード フィルターの構成可能なプロパティ](filters-dashboard-properties.md):
+
+ - [表示フィールド](filters-dashboard-properties.md#表示フィールド)
+
+ - [複数選択](filters-dashboard-properties.md#複数選択)
+
+ - [必須選択](filters-dashboard-properties.md#必須選択)
+
+ - [データ フィルター](filters-dashboard-properties.md#データ-フィルター)
+
+ - [ダッシュボード フィルターと表示形式への接続](filters-connecting.md) (表示形式バインディングとも呼ばれます)
+
+ - [表示形式のクイック フィルター](filters-visualization.md)
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-visualization.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-visualization.md
new file mode 100644
index 00000000..194a58be
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/filters-visualization.md
@@ -0,0 +1,36 @@
+---
+title: 表示形式のクイック フィルターを適用する方法
+_description: 表示形式のクイック フィルターを適用して表示形式コンテンツを動的にフィルターする方法を説明します。
+_language: ja
+---
+
+# 表示形式のクイック フィルター
+
+表示形式レベルでは、「クイック」フィルターを適用することもできます。これにより、クイック フィルターの選択が変更されたときに表示形式コンテンツを動的にフィルターできます。これらは、ダッシュボード定義の一部となり、ダッシュボードのユーザーが変更することはできません。
+
+クイック フィルターを定義するには、表示形式エディターで表示形式の上にある **[表示形式フィルターの追加]** ボタンを選択します。
+
+
+
+フィルター オプションは、フィールドのデータ タイプに応じて表示形式フィルター エリアで表示されます。テキスト、数値、日付の 3 つのフィルター ダイアログがあります。作成されたクイック フィルターは、表示形式エディターの表示形式の上に表示されます。
+
+
+
+ダッシュボード ビュー モードで表示形式を最大化すると、表示形式のタイトルの下に表示されます。
+
+
+
+[ダッシュボード フィルター](filters-dashboard.md)同様に、簡易フィルター セクションが変更されると表示形式コンテンツの動的なフィルターが有効になります。
+
+## フィルターのカスケード
+
+クイック フィルターで表示される選択可能な値のリストは、以前のクイック フィルター選択に基づいてフィルターされます。左側のフィールドが優先され、右側のフィルターに表示される選択可能な値のリストを決定します。
+
+たとえば、以下の例では、*Office* フィルターが最初に作成され、*Fullname* フィルターがその後に作成されました。すべての Office を選択すると、*County* のリストは次のようになります。
+
+
+
+ただし、**Cranbury, New Jersey, USA** と **Montevideo, Uruguay** のオフィスを選択した場合は、*County* のリストは異なります。
+
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Access-Axis-Configuration.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Access-Axis-Configuration.png
new file mode 100644
index 00000000..991fbdc8
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Access-Axis-Configuration.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/BrazilStatePopulation_all.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/BrazilStatePopulation_all.png
new file mode 100644
index 00000000..93dd774e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/BrazilStatePopulation_all.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Combo-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Combo-chart.png
new file mode 100644
index 00000000..14def1f6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Combo-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/HRDashboardEmployeesDIY_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/HRDashboardEmployeesDIY_All.png
new file mode 100644
index 00000000..2ba64578
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/HRDashboardEmployeesDIY_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugeDifferenceColor_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugeDifferenceColor_All.png
new file mode 100644
index 00000000..c30b8398
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugeDifferenceColor_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugePreviousMonth_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugePreviousMonth_All.png
new file mode 100644
index 00000000..5ca08197
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugePreviousMonth_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugeSimple_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugeSimple_All.png
new file mode 100644
index 00000000..93478f42
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugeSimple_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugeValuePercentage_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugeValuePercentage_All.png
new file mode 100644
index 00000000..6c57fdb2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/KPIGaugeValuePercentage_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/StatePopulation_all.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/StatePopulation_all.png
new file mode 100644
index 00000000..4093f184
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/StatePopulation_all.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Thumbs.db b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Thumbs.db
new file mode 100644
index 00000000..725e8907
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Thumbs.db differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorial-Change-Date-Difference-Label.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorial-Change-Date-Difference-Label.png
new file mode 100644
index 00000000..1c431277
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorial-Change-Date-Difference-Label.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorial-Change-Date-Difference-Marker-Color.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorial-Change-Date-Difference-Marker-Color.png
new file mode 100644
index 00000000..c0072049
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorial-Change-Date-Difference-Marker-Color.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorial-Change-Date-Type.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorial-Change-Date-Type.png
new file mode 100644
index 00000000..b17b5ae5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorial-Change-Date-Type.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/TutorialMultipleKPIGauges_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/TutorialMultipleKPIGauges_All.png
new file mode 100644
index 00000000..1fc03563
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/TutorialMultipleKPIGauges_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-KPIGauge-Organizing-Data.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-KPIGauge-Organizing-Data.png
new file mode 100644
index 00000000..3e5ce4fc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-KPIGauge-Organizing-Data.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-MultipleKPIGauge-Organizing-Data.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-MultipleKPIGauge-Organizing-Data.png
new file mode 100644
index 00000000..d2941835
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-MultipleKPIGauge-Organizing-Data.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-Navigate-Settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-Navigate-Settings.png
new file mode 100644
index 00000000..f624dea3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-Navigate-Settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-Select-KPI-Gauge-Spreadsheet.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-Select-KPI-Gauge-Spreadsheet.png
new file mode 100644
index 00000000..ebe0869e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-Select-KPI-Gauge-Spreadsheet.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-Select-Sparkline-Charts-Spreadsheet.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-Select-Sparkline-Charts-Spreadsheet.png
new file mode 100644
index 00000000..1e965b43
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/Tutorials-Select-Sparkline-Charts-Spreadsheet.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/WorldPopulationGDP_All.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/WorldPopulationGDP_All.png
new file mode 100644
index 00000000..94bd862f
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/WorldPopulationGDP_All.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/add-visualization-button.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/add-visualization-button.png
new file mode 100644
index 00000000..b467ec75
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/add-visualization-button.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/advanced-settings-kpi-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/advanced-settings-kpi-gauge.png
new file mode 100644
index 00000000..c5c3fe2c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/advanced-settings-kpi-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/area-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/area-chart-icon.png
new file mode 100644
index 00000000..48962aa9
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/area-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/area-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/area-chart.png
new file mode 100644
index 00000000..0b128033
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/area-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/area-sparkline-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/area-sparkline-chart.png
new file mode 100644
index 00000000..b211b2c5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/area-sparkline-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds-candlestick.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds-candlestick.png
new file mode 100644
index 00000000..f662f0d7
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds-candlestick.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds-logarithmic.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds-logarithmic.png
new file mode 100644
index 00000000..60db50db
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds-logarithmic.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds-section.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds-section.png
new file mode 100644
index 00000000..013c7122
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds-section.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds.png
new file mode 100644
index 00000000..87ec5899
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-bounds.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-logarithmic-candlestick.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-logarithmic-candlestick.png
new file mode 100644
index 00000000..a9262d12
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-logarithmic-candlestick.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-logarithmic.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-logarithmic.png
new file mode 100644
index 00000000..9ed5dec3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/axis-logarithmic.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/band-color-options.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/band-color-options.png
new file mode 100644
index 00000000..b96d8a68
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/band-color-options.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bar-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bar-chart-icon.png
new file mode 100644
index 00000000..1c0a8076
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bar-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bar-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bar-chart.png
new file mode 100644
index 00000000..6a34c958
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bar-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bounds-axis.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bounds-axis.png
new file mode 100644
index 00000000..26b3511b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bounds-axis.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bubble-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bubble-chart.png
new file mode 100644
index 00000000..b929c76b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bubble-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bullet-graph-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bullet-graph-gauge.png
new file mode 100644
index 00000000..8f38a8aa
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bullet-graph-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bullet-graph-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bullet-graph-icon.png
new file mode 100644
index 00000000..66a23675
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bullet-graph-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bullet-graph-organizing-data.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bullet-graph-organizing-data.png
new file mode 100644
index 00000000..bd2593c5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/bullet-graph-organizing-data.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-chart-icon.png
new file mode 100644
index 00000000..530be407
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-chart-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-chart-types.png
new file mode 100644
index 00000000..1de20b97
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-chart-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-chart.png
new file mode 100644
index 00000000..ae6a0142
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-organizing-data.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-organizing-data.png
new file mode 100644
index 00000000..9d209bdc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-organizing-data.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-visualization-editor-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-visualization-editor-example.png
new file mode 100644
index 00000000..dbb4b02a
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/candlestick-visualization-editor-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/cascading-filter-second-filter.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/cascading-filter-second-filter.png
new file mode 100644
index 00000000..6c6cb594
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/cascading-filter-second-filter.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/cascading-filter.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/cascading-filter.png
new file mode 100644
index 00000000..a70a36e6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/cascading-filter.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/chart-trendline-simple-series-charts.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/chart-trendline-simple-series-charts.png
new file mode 100644
index 00000000..acb119cc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/chart-trendline-simple-series-charts.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/chart-types-simple-series-charts.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/chart-types-simple-series-charts.png
new file mode 100644
index 00000000..0c2152a0
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/chart-types-simple-series-charts.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/chart-types-sparkline.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/chart-types-sparkline.png
new file mode 100644
index 00000000..be4f0334
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/chart-types-sparkline.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/choropleth-map.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/choropleth-map.png
new file mode 100644
index 00000000..e6654f7b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/choropleth-map.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/circular-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/circular-chart.png
new file mode 100644
index 00000000..0467c404
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/circular-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/circular-gauge-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/circular-gauge-icon.png
new file mode 100644
index 00000000..752e4af4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/circular-gauge-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/circular-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/circular-gauge.png
new file mode 100644
index 00000000..752e4af4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/circular-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/column-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/column-chart-icon.png
new file mode 100644
index 00000000..adb178ad
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/column-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/column-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/column-chart.png
new file mode 100644
index 00000000..1c2788e9
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/column-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/connecting-to-another-dashboard-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/connecting-to-another-dashboard-option.png
new file mode 100644
index 00000000..211b8962
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/connecting-to-another-dashboard-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/custom-date-range-date-filter.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/custom-date-range-date-filter.png
new file mode 100644
index 00000000..ef33cb99
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/custom-date-range-date-filter.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-connection-option-visualization-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-connection-option-visualization-editor.png
new file mode 100644
index 00000000..3d29458f
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-connection-option-visualization-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-data-source-menu.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-data-source-menu.png
new file mode 100644
index 00000000..da18778e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-data-source-menu.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-dialog-connect-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-dialog-connect-option.png
new file mode 100644
index 00000000..d598662c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-dialog-connect-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-dialog.png
new file mode 100644
index 00000000..448596dd
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filter-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filters-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filters-dialog.png
new file mode 100644
index 00000000..5f89c1f8
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filters-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filters-select-data-filter-field.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filters-select-data-filter-field.png
new file mode 100644
index 00000000..fd88ff7c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/dashboard-filters-select-data-filter-field.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-filter-dialog-select-value-text-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-filter-dialog-select-value-text-view.png
new file mode 100644
index 00000000..b0ca8230
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-filter-dialog-select-value-text-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-filter-select-value-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-filter-select-value-example.png
new file mode 100644
index 00000000..1e568cc5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-filter-select-value-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-filters-dashboard-filters-hr-dashboard.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-filters-dashboard-filters-hr-dashboard.png
new file mode 100644
index 00000000..1d693f92
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-filters-dashboard-filters-hr-dashboard.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-source-parameters-dashboard-filter.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-source-parameters-dashboard-filter.png
new file mode 100644
index 00000000..f3a1b6fb
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/data-source-parameters-dashboard-filter.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/date-filter-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/date-filter-dialog.png
new file mode 100644
index 00000000..0869b16c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/date-filter-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/date-filter-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/date-filter-option.png
new file mode 100644
index 00000000..2ad29a19
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/date-filter-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/delete-filter-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/delete-filter-option.png
new file mode 100644
index 00000000..3d86b13e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/delete-filter-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/different-candlestick-charts.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/different-candlestick-charts.png
new file mode 100644
index 00000000..a538e4e9
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/different-candlestick-charts.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/different-gauge-visualizations.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/different-gauge-visualizations.png
new file mode 100644
index 00000000..9c8f9063
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/different-gauge-visualizations.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/different-stacked-charts-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/different-stacked-charts-example.png
new file mode 100644
index 00000000..6f9fa66f
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/different-stacked-charts-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/disconnect-option-dashboard-filter.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/disconnect-option-dashboard-filter.png
new file mode 100644
index 00000000..be5127be
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/disconnect-option-dashboard-filter.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/doughnut-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/doughnut-chart-icon.png
new file mode 100644
index 00000000..8ac09f8e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/doughnut-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/doughnut-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/doughnut-chart.png
new file mode 100644
index 00000000..6dce046d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/doughnut-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/duplicate-visualization-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/duplicate-visualization-example.png
new file mode 100644
index 00000000..731e4648
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/duplicate-visualization-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/edit-connection-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/edit-connection-dialog.png
new file mode 100644
index 00000000..b4f45cda
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/edit-connection-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/edit-mode-filter.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/edit-mode-filter.png
new file mode 100644
index 00000000..c98cfcbd
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/edit-mode-filter.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/editor-view-dashboard-filter.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/editor-view-dashboard-filter.png
new file mode 100644
index 00000000..843540f6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/editor-view-dashboard-filter.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/example-data-visualizations.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/example-data-visualizations.png
new file mode 100644
index 00000000..c70dc364
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/example-data-visualizations.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-as-powerpoint-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-as-powerpoint-option.png
new file mode 100644
index 00000000..db241a82
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-as-powerpoint-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-dashboard-as-excel.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-dashboard-as-excel.png
new file mode 100644
index 00000000..a2fc0b4c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-dashboard-as-excel.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-dashboard-as-powerpoint.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-dashboard-as-powerpoint.png
new file mode 100644
index 00000000..45b13783
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-dashboard-as-powerpoint.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-image-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-image-dialog.png
new file mode 100644
index 00000000..25b493c4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-image-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-image-toolbar.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-image-toolbar.png
new file mode 100644
index 00000000..b500cf98
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-image-toolbar.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-images-annotation.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-images-annotation.png
new file mode 100644
index 00000000..3ccb72d6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-images-annotation.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-option-excel.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-option-excel.png
new file mode 100644
index 00000000..2c155ab4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-option-excel.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-option-overflow-menu.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-option-overflow-menu.png
new file mode 100644
index 00000000..06e809a8
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-option-overflow-menu.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-option.png
new file mode 100644
index 00000000..f2f4fab1
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-pdf-options.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-pdf-options.png
new file mode 100644
index 00000000..5839d4df
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-pdf-options.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-visualization.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-visualization.png
new file mode 100644
index 00000000..b87ef6e1
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/export-visualization.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/field-settings-aggregation-options.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/field-settings-aggregation-options.png
new file mode 100644
index 00000000..c9a1b793
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/field-settings-aggregation-options.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/filter-options-dashboard.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/filter-options-dashboard.png
new file mode 100644
index 00000000..2a6f2cf3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/filter-options-dashboard.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/filter-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/filter-types.png
new file mode 100644
index 00000000..0ea03c39
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/filter-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/filtered-text-view-visualization.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/filtered-text-view-visualization.png
new file mode 100644
index 00000000..f78a3bf7
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/filtered-text-view-visualization.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/format-options.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/format-options.png
new file mode 100644
index 00000000..193ec127
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/format-options.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/funnel-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/funnel-chart-icon.png
new file mode 100644
index 00000000..fa1786da
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/funnel-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/funnel-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/funnel-chart.png
new file mode 100644
index 00000000..4a55bde8
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/funnel-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauge-kpi-chart-type.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauge-kpi-chart-type.png
new file mode 100644
index 00000000..d77178cc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauge-kpi-chart-type.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauge-views.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauge-views.png
new file mode 100644
index 00000000..76640855
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauge-views.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-bullet-graph-chart-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-bullet-graph-chart-types.png
new file mode 100644
index 00000000..3cd947dd
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-bullet-graph-chart-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-circular-chart-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-circular-chart-types.png
new file mode 100644
index 00000000..7e1c810d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-circular-chart-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-linear-chart-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-linear-chart-types.png
new file mode 100644
index 00000000..0df02407
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-linear-chart-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-text-chart-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-text-chart-types.png
new file mode 100644
index 00000000..ca377fd6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/gauges-text-chart-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-chart-data-organization.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-chart-data-organization.png
new file mode 100644
index 00000000..94bc97d7
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-chart-data-organization.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-chart-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-chart-sample.png
new file mode 100644
index 00000000..567a574d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-chart-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-chart-type.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-chart-type.png
new file mode 100644
index 00000000..260c4d7d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-chart-type.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-export-format.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-export-format.png
new file mode 100644
index 00000000..ae009051
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-export-format.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-view-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-view-icon.png
new file mode 100644
index 00000000..4d0fbb47
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-view-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-view.png
new file mode 100644
index 00000000..4d0fbb47
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/image-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/kpi-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/kpi-icon.png
new file mode 100644
index 00000000..c1772fdb
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/kpi-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/kpi.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/kpi.png
new file mode 100644
index 00000000..f8517ef2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/kpi.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/limit-options.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/limit-options.png
new file mode 100644
index 00000000..b1c148ce
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/limit-options.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/line-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/line-chart-icon.png
new file mode 100644
index 00000000..38634026
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/line-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/line-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/line-chart.png
new file mode 100644
index 00000000..0be311f2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/line-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-gauge-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-gauge-icon.png
new file mode 100644
index 00000000..ad40c3e1
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-gauge-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-gauge.png
new file mode 100644
index 00000000..b661b34e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-regression-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-regression-dialog.png
new file mode 100644
index 00000000..acf76cbc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-regression-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-regression-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-regression-example.png
new file mode 100644
index 00000000..dae7fd05
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linear-regression-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linking-to-url.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linking-to-url.png
new file mode 100644
index 00000000..3c01c1bb
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/linking-to-url.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/location-visualization-filter.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/location-visualization-filter.png
new file mode 100644
index 00000000..d826ac83
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/location-visualization-filter.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/maximized-visualization-trigger.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/maximized-visualization-trigger.png
new file mode 100644
index 00000000..d67a6555
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/maximized-visualization-trigger.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/multiple-kpi-gauges.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/multiple-kpi-gauges.png
new file mode 100644
index 00000000..f5ac389c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/multiple-kpi-gauges.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/multiple-selection-dashboard-filters.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/multiple-selection-dashboard-filters.png
new file mode 100644
index 00000000..f96f0678
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/multiple-selection-dashboard-filters.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/multiple-selection-option-dashboard-filter-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/multiple-selection-option-dashboard-filter-dialog.png
new file mode 100644
index 00000000..54bb1471
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/multiple-selection-option-dashboard-filter-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/new-visualization-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/new-visualization-dialog.png
new file mode 100644
index 00000000..a14e0080
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/new-visualization-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/new-visualization-screen.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/new-visualization-screen.png
new file mode 100644
index 00000000..4a770ca2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/new-visualization-screen.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-candlestick-logarithmic-axis.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-candlestick-logarithmic-axis.png
new file mode 100644
index 00000000..ae801dbb
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-candlestick-logarithmic-axis.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-candlestick-spreadsheet.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-candlestick-spreadsheet.png
new file mode 100644
index 00000000..4e53df04
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-candlestick-spreadsheet.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-chart-icon.png
new file mode 100644
index 00000000..931c94da
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-chart-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-chart-types.png
new file mode 100644
index 00000000..0fbfc3f8
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-chart-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-chart.png
new file mode 100644
index 00000000..1a8e29fa
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-charts-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-charts-example.png
new file mode 100644
index 00000000..5f173e62
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-charts-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-organizing-data.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-organizing-data.png
new file mode 100644
index 00000000..81329c29
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-organizing-data.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-visualization-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-visualization-editor.png
new file mode 100644
index 00000000..43dc0f06
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/ohlc-visualization-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/organizing-data-circular-gauge-visualization.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/organizing-data-circular-gauge-visualization.png
new file mode 100644
index 00000000..f24e1597
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/organizing-data-circular-gauge-visualization.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/organizing-data-gauge-visualization.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/organizing-data-gauge-visualization.png
new file mode 100644
index 00000000..2c14782a
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/organizing-data-gauge-visualization.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/organizing-data-text-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/organizing-data-text-view.png
new file mode 100644
index 00000000..de373b06
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/organizing-data-text-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/outlier-detection-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/outlier-detection-example.png
new file mode 100644
index 00000000..2c41ffea
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/outlier-detection-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/overflow-edit-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/overflow-edit-option.png
new file mode 100644
index 00000000..af215e05
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/overflow-edit-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/percentage-distribution.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/percentage-distribution.png
new file mode 100644
index 00000000..a91e0b57
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/percentage-distribution.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/pie-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/pie-chart-icon.png
new file mode 100644
index 00000000..2d784b84
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/pie-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/pie-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/pie-chart.png
new file mode 100644
index 00000000..1f5412ca
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/pie-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/pivot-editor-view-kpi-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/pivot-editor-view-kpi-gauge.png
new file mode 100644
index 00000000..98ccdec5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/pivot-editor-view-kpi-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/radial-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/radial-chart-icon.png
new file mode 100644
index 00000000..1080c94c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/radial-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/radial-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/radial-chart.png
new file mode 100644
index 00000000..1080c94c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/radial-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/required-selection-option-filters.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/required-selection-option-filters.png
new file mode 100644
index 00000000..cfa7553e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/required-selection-option-filters.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/reusing-visualization-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/reusing-visualization-example.png
new file mode 100644
index 00000000..e67514c1
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/reusing-visualization-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sample-dashboard-filters.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sample-dashboard-filters.png
new file mode 100644
index 00000000..b850eb95
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sample-dashboard-filters.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sample-linked-dashboards-2.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sample-linked-dashboards-2.png
new file mode 100644
index 00000000..c4e6a531
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sample-linked-dashboards-2.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sample-linked-dashboards.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sample-linked-dashboards.png
new file mode 100644
index 00000000..27f00a90
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sample-linked-dashboards.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/scatter-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/scatter-chart.png
new file mode 100644
index 00000000..f7711343
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/scatter-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/scatter-map.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/scatter-map.png
new file mode 100644
index 00000000..cffe217e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/scatter-map.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/select-data-filter-text-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/select-data-filter-text-view.png
new file mode 100644
index 00000000..318b36f2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/select-data-filter-text-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/select-image-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/select-image-view.png
new file mode 100644
index 00000000..3adb3eaf
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/select-image-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/select-your-data-source.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/select-your-data-source.png
new file mode 100644
index 00000000..e49f4634
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/select-your-data-source.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/selected-value-trigger.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/selected-value-trigger.png
new file mode 100644
index 00000000..fd597374
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/selected-value-trigger.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/settings-linking-option.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/settings-linking-option.png
new file mode 100644
index 00000000..4b28283e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/settings-linking-option.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/settings-tutorials.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/settings-tutorials.png
new file mode 100644
index 00000000..2a3d51aa
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/settings-tutorials.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-example.png
new file mode 100644
index 00000000..04d02276
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-example2.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-example2.png
new file mode 100644
index 00000000..1a5e09f3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-example2.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-example3.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-example3.png
new file mode 100644
index 00000000..94e7c814
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-example3.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-organizing-data.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-organizing-data.png
new file mode 100644
index 00000000..15024455
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-organizing-data.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-spreadsheet.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-spreadsheet.png
new file mode 100644
index 00000000..79ab07af
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-series-charts-spreadsheet.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-sparkline-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-sparkline-chart.png
new file mode 100644
index 00000000..e2567862
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/simple-sparkline-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/slice-label-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/slice-label-settings.png
new file mode 100644
index 00000000..b06c7f04
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/slice-label-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-area-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-area-chart.png
new file mode 100644
index 00000000..e3d87188
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-area-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart-columns-options.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart-columns-options.png
new file mode 100644
index 00000000..931b642d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart-columns-options.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart-date-aggregation.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart-date-aggregation.png
new file mode 100644
index 00000000..f86a4378
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart-date-aggregation.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart-icon.png
new file mode 100644
index 00000000..08f96bbd
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart.png
new file mode 100644
index 00000000..4b5dcabd
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-charts-organizing-data.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-charts-organizing-data.png
new file mode 100644
index 00000000..ed0f5d16
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-charts-organizing-data.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-charts-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-charts-settings.png
new file mode 100644
index 00000000..6703d751
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-charts-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-charts-spreadsheet.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-charts-spreadsheet.png
new file mode 100644
index 00000000..9a1bb52d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-charts-spreadsheet.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-with-day-aggregation.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-with-day-aggregation.png
new file mode 100644
index 00000000..a215edb0
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-with-day-aggregation.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-with-less-columns-and-area-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-with-less-columns-and-area-chart.png
new file mode 100644
index 00000000..e9b69e78
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/sparkline-with-less-columns-and-area-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-area-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-area-chart.png
new file mode 100644
index 00000000..c370f9be
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-area-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-area-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-area-icon.png
new file mode 100644
index 00000000..c370f9be
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-area-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-chart-icon.png
new file mode 100644
index 00000000..8f6bf117
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-chart.png
new file mode 100644
index 00000000..231952f2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/spline-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-area-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-area-chart-icon.png
new file mode 100644
index 00000000..55106cb5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-area-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-area-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-area-chart.png
new file mode 100644
index 00000000..84d0efd6
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-area-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-bar-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-bar-chart-icon.png
new file mode 100644
index 00000000..e74f521f
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-bar-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-bar-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-bar-chart.png
new file mode 100644
index 00000000..91066034
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-bar-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-chart-spreadsheet-data-source-details-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-chart-spreadsheet-data-source-details-dialog.png
new file mode 100644
index 00000000..d020bc0a
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-chart-spreadsheet-data-source-details-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-chart-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-chart-types.png
new file mode 100644
index 00000000..b6d4e379
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-chart-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-charts-organizing-data.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-charts-organizing-data.png
new file mode 100644
index 00000000..3ce76f85
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-charts-organizing-data.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-column-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-column-chart-icon.png
new file mode 100644
index 00000000..22304ca4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-column-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-column-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-column-chart.png
new file mode 100644
index 00000000..66587046
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/stacked-column-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/start-position-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/start-position-settings.png
new file mode 100644
index 00000000..8ad00bb7
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/start-position-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/statistical-functions-enable-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/statistical-functions-enable-icon.png
new file mode 100644
index 00000000..244257ec
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/statistical-functions-enable-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/step-area-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/step-area-chart-icon.png
new file mode 100644
index 00000000..41adb9da
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/step-area-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/step-area-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/step-area-chart.png
new file mode 100644
index 00000000..7e02e45a
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/step-area-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/step-line-chart-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/step-line-chart-icon.png
new file mode 100644
index 00000000..e2b44138
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/step-line-chart-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-gauge-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-gauge-icon.png
new file mode 100644
index 00000000..7aec8597
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-gauge-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-gauge-organizing-data.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-gauge-organizing-data.png
new file mode 100644
index 00000000..780f54e4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-gauge-organizing-data.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-gauge.png
new file mode 100644
index 00000000..5651fc33
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-option-in-export-image.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-option-in-export-image.png
new file mode 100644
index 00000000..d02ae363
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-option-in-export-image.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-chart-types.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-chart-types.png
new file mode 100644
index 00000000..2d8b51d4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-chart-types.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-icon.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-icon.png
new file mode 100644
index 00000000..55ef7213
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-icon.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-sample.png
new file mode 100644
index 00000000..1132ecba
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-visualization.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-visualization.png
new file mode 100644
index 00000000..9f7019e5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view-visualization.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view.png
new file mode 100644
index 00000000..3eb173dc
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/text-view.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/time-series-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/time-series-chart.png
new file mode 100644
index 00000000..e4158f66
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/time-series-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/time-series-forecast-dialog.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/time-series-forecast-dialog.png
new file mode 100644
index 00000000..3cd28d02
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/time-series-forecast-dialog.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/time-series-forecast-visualization-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/time-series-forecast-visualization-example.png
new file mode 100644
index 00000000..b17d2532
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/time-series-forecast-visualization-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/treemap-chart.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/treemap-chart.png
new file mode 100644
index 00000000..1855d6c3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/treemap-chart.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/tutorials-settings.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/tutorials-settings.png
new file mode 100644
index 00000000..9e799af8
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/tutorials-settings.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/tutorials-simple-series-charts-spreadsheet.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/tutorials-simple-series-charts-spreadsheet.png
new file mode 100644
index 00000000..4cbeb8be
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/tutorials-simple-series-charts-spreadsheet.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/underlying-data-time-series.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/underlying-data-time-series.png
new file mode 100644
index 00000000..fbcc9253
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/underlying-data-time-series.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/value-circular-gauge.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/value-circular-gauge.png
new file mode 100644
index 00000000..b98248ff
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/value-circular-gauge.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/various-charts-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/various-charts-example.png
new file mode 100644
index 00000000..5cd5fa21
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/various-charts-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-editor-dashboard-filter.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-editor-dashboard-filter.png
new file mode 100644
index 00000000..642ee9ee
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-editor-dashboard-filter.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-filter-visualization-editor.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-filter-visualization-editor.png
new file mode 100644
index 00000000..0b6cc085
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-filter-visualization-editor.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-quick-filter-example.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-quick-filter-example.png
new file mode 100644
index 00000000..a086225e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-quick-filter-example.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-tutorials-sample.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-tutorials-sample.png
new file mode 100644
index 00000000..76100701
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualization-tutorials-sample.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualizations-editor-sections.png b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualizations-editor-sections.png
new file mode 100644
index 00000000..9aa3d2de
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/images/visualizations-editor-sections.png differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/index.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/index.md
new file mode 100644
index 00000000..90747ad5
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/index.md
@@ -0,0 +1,28 @@
+---
+displayed_sidebar: userSideBar
+hide_table_of_contents: true
+---
+
+# Reveal ユーザー ドキュメントへようこそ!
+
+Reveal は、インタラクティブな表示形式を簡単に作成、分析、共有できるモダンなビジネス インテリジェンス (BI) ソリューションです。この包括的なユーザーガイドでは、最初のダッシュボードの作成から複雑な表示形式のカスタマイズ、高度なデータ フィルターの適用に至るまで、Reveal の機能を最大限に活用するための情報を提供します。
+
+## このドキュメントの内容
+
+### [ダッシュボード](dashboard-export.md)
+ダッシュボードの作成と管理に関する洞察を得ます。ダッシュボードをリンクする方法や、PDF、Excel、画像、PowerPoint などの形式でエクスポートする方法を理解し、ビジネスニーズに合わせてその可能性を最大限に引き出しましょう。
+
+### [表示形式](visualizations-overview.md)
+データ表示形式の世界に飛び込んでみましょう。表示形式エディターの理解から、階級区分図、複合チャート、散布マップなどの特定のチャート タイプの探索まで、Reveal はデータを表現するための多彩なオプションを提供します。
+
+### [フィールドとデータ操作](fields/overview.md)
+フィールド設定の操作方法、アドホック階層の作成、条件付き書式の適用、フィールド フィルターやルールの管理方法について説明します。高度なデータ処理のための計算フィールドについての詳細情報も得られます。
+
+### [フィルター](filters-overview.md)
+フィルターを適用およびカスタマイズしてデータを絞り込む方法を理解します。ダッシュボード間でのフィルター接続、フィルターのプロパティ管理、日付範囲フィルターや表示形式フィルターなどの特殊なフィルターの使用方法が含まれます。
+
+### [チュートリアル](tutorials-overview.md)
+特定のチャート タイプと高度な機能を作成し、習得するためのステップバイステップのチュートリアルです。ローソク足チャート、KPI ゲージ、スパークライン チャートを作成する方法など、実用的な手順を提供します。
+
+Reveal は、データを実用的な洞察に変えるお手伝いをします。このドキュメントを活用して、Reveal を使ったデータ表示形式とビジネス インテリジェンスをマスターしましょう。
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/reusing-visualizations.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/reusing-visualizations.md
new file mode 100644
index 00000000..61b77180
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/reusing-visualizations.md
@@ -0,0 +1,29 @@
+---
+title: Reveal で表示形式を再利用する方法
+_description: 表示形式を再利用し、ダッシュボードの作成を高速化できます。
+_language: ja
+---
+
+# 表示形式の再利用
+
+表示形式を再利用してダッシュボードの作成をスピード アップできます。それを行うには、必要な表示形式を**コピーし貼り付ける**だけです。
+
+
+
+## 表示形式の複製
+
+ダッシュボード内で元の表示形式と同じものを作成します。既にカスタマイズした表示形式を複製して、複製したデータ セットを調整します。たとえば、以下のチャートはすべてのオフィスの**雇用**を示し、特定のものを別に表示します。
+
+
+
+## 表示形式のコピーと貼り付け
+
+ダッシュボード内、またはダッシュボード間の任意の表示形式をコピーし貼り付けることができます。注: 他のダッシュボードの表示形式を使用して新しいダッシュボードを作成できます。
+
+## 考慮点
+
+新しい表示形式は元の表示形式と**同じ名前**になります。
+
+ダッシュボード編集モードの表示形式のオーバーフロー メニューから **[名前の変更]** を選択できます。鉛筆アイコンを使用して、[表示形式エディター](visualization-editor.md)でタイトルを変更することもできます。
+
+元の表示形式に**データ エディターのデータ**がある場合、新しい表示形式にもこのデータが使用されます。必要に応じて、データ エディターからフィールドを削除します。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/statistical-functions.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/statistical-functions.md
new file mode 100644
index 00000000..bc9781b8
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/statistical-functions.md
@@ -0,0 +1,101 @@
+---
+title: 統計関数を使用する方法
+_description: 統計関数を使用して表示形式からより多くの洞察を得る方法を説明します。
+_language: ja
+---
+
+# Reveal の統計関数
+
+Reveal の統計関数を使用すると、表示形式からより多くの気付きを得ることができます。3 種類の高度な予測分析を提供します。[**時系列予測**](#時系列予測)、[**線形回帰**](#線形回帰)、および[**外れ値の検出**](#外れ値の検出)を使用して、データ シリーズで予測を行い、傾向を認識して評価し、外れ値を検出できます。
+
+## 統計関数へのアクセス
+
+3 つの**統計関数**の 1 つを表示形式に適用するには、以下を行う必要があります。
+
+1. **ダッシュボードのビュー モード**でダッシュボードを開きます。
+
+2. 表示形式を**最大化します** (右上隅の**矢印**アイコンをクリックします)。
+
+3. 画面の右上に表示されるアイコンをクリックまたはタップします (以下を参照)。
+
+
+
+:::note
+**関数の有効/無効**: 表示形式に 3 つの関数のうち有効にできるのは 1 つのみです。有効な関数を再度クリックして無効にするか、あるいはリストから別の関数を選択して切り替えます。
+:::
+
+## 統計関数タイプ
+
+以下の表は、すべての関数の用途、関数が使用するアルゴリズム、および関数を有効にできる表示形式について説明します。
+
+| **関数** | **アルゴリズム** | **使用方法** | **それをサポートする表示形式 it?** |
+| ----------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 時系列予測 | 指数平滑法 | 特定のデータ系列について、データの予測を行うこと。ーザーは将来の時間範囲を選択できます。 | カテゴリ チャート: エリア、棒、柱状、折れ線、スプライン、スプライン エリア、ステップ エリア、ステップ折れ線 |
+| 線形回帰 | 線形回帰 | 2 つの変数間の線形関係を見つけることによって傾向を評価すること。アルゴリズムは、チャートのほとんどのポイントに近い線を計算して、進行中の傾向を示します。 | カテゴリ チャート: エリア、棒、柱状、折れ線、スプライン、スプライン エリア、ステップ エリア、ステップ折れ線 |
+| 外れ値の検出 | 四分位範囲ルール | ランダム要因のために他のデータから際立っているデータを検出するため。 | カテゴリ チャート: エリア、柱状、折れ線、スプライン、スプライン エリア、ステップ エリア、ステップ折れ線; 散布図 |
+
+### 時系列予測
+
+**時系列予測**関数は、特定のデータ シリーズのデータを予測するために使用します。以下の例では、関数が次の 12 か月間の 2 つの製品の売上予測を提供するために使用されています。
+
+
+
+上記の予測を実現するには、以下の手順を実行します。
+
+1. **[統計関数]** メニューから **[時系列予測]** を選択します。
+
+2. 以下の設定ダイアログが開きます。
+
+ 
+
+ ここで、**季節の長さ**と**期間予測**を構成する必要があります。
+
+ * **季節の長さ** - 表示形式のために季節の**日数、月数、年数**を選択します。季節の長さの時間単位は、**[日付]** フィールドが日、月、または年のいずれで測定されるかに基づいて決定されます。
+
+ 時系列データでは、**季節が変動が発生する特定の定期的な間隔です**。Reveal の指数平滑法アルゴリズムは、進化トレンドを計算し、季節調整を使用してそれを等しくします。
+
+ たとえば、スキー用品の販売は 1 年以内に変動します - 11 月と 12 月にピークに達し、4月に大幅に減少する場合があります。この傾向は来年も繰り返されます。つまり、この例の季節の長さは 12 か月です。
+
+ * **予測期間** - データを予測する**日、月、または年**を選択します。期間の長さの時間単位は、[日付] フィールドが日、月、または年のいずれで測定されるかに基づいて決定されます。
+
+:::note
+**時系列関数で使用可能な最小データ**: 表示形式には 2 つの季節以上のデータが含まれている必要があります。含まれていない場合、時系列関数を使用できません。つまり、季節の期間が 12 か月の場合は少なくとも 24 か月、6 か月の場合は 12 か月以上のデータが必要です。
+:::
+
+予測は線とその周りの網掛け領域で可視化されます。線は予測を表示し、**網掛け領域**は将来のデータセットが入ると予想される範囲を示します。
+
+時系列関数を適用した後に**表示形式の基になるデータ**を確認すると、予測値が黄色で強調表示されます (以下を参照)。
+
+
+
+:::note
+**時系列関数は時系列のチャートでのみ使用できます。**: 表示形式に日付フィールドが含まれていない場合、時系列関数を使用しようとするとエラーが表示されます。
+:::
+
+### 線形回帰
+
+線形回帰は、2 つの変数間の関係を線形方程式で示すための統計モデルです。回帰分析の結果、表示形式の上に折れ線グラフが作成され、**進行中の傾向を評価します**。線はデータセット内のほとんどのポイントに近づくように計算され、データの全体形状に適合します。
+
+**線形回帰**関数では、**選択した期間のデータの線形予測**を含めることもできます。**[統計関数]** メニューから **[線形回帰]** 関数を選択すると、以下のダイアログが表示されます。
+
+
+
+**予測期間**には、データを予測する**日、月、または年**を選択します。期間の長さの時間単位は、**日付**フィールドが日、月、または年のいずれで測定されるかに基づいて決定されます。
+
+以下は、**線形回帰**関数を表示形式に適用します。この場合、観測された傾向に基づいた予測を示すために線が 6 か月間延長されます。
+
+
+
+上記の表示形式で描画される線は、売上 (Y 軸に配置された変数) の変化が時間 (または X 軸に配置された他の変数) に起因する範囲を示します。売上データと時間データの間の線形関係が折れ線を決定します。これにより、売上が徐々に低下する傾向がより明確になります。
+
+線形回帰を適用した後に**表示形式の基本データ**を確認すると、[時系列予測](#時系列予測)の最後のスクリーンショットに示すように、予測値が黄色で強調表示されます。
+
+### 外れ値の検出
+
+外れ値は、データの他の観測値から逸脱する極値です。**外れ値の検出**関数は、データ シリーズの残りのポイントの平均値から大幅に逸脱されたポイントを表示します。
+
+
+
+上記の例では、検出されたデータ ポイントは分配の残りの部分から離れて位置し、特定の瞬間に売上の急上昇を示します。これは、売上の全体的なパターンとは大幅に異なります。
+
+外れ値の検出関数を適用した後に**表示形式の基になるデータ**を確認すると、外れ値として検出されたデータが黄色で強調表示されます。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-candlestick.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-candlestick.md
new file mode 100644
index 00000000..b72399f1
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-candlestick.md
@@ -0,0 +1,87 @@
+---
+title: Reveal でローソク足の表示形式を作成する方法
+_description: データのローソク足チャートの表示形式を作成する方法を説明します。
+_language: ja
+---
+
+## ローソク足表示形式を作成
+
+このチュートリアルは、サンプル スプレッドシートを使用して**ローソク足**の表示形式を作成する方法を説明します。
+
+
+
+## 重要なコンセプト
+
+[OHLC](tutorials-ohlc.md) チャートとローソク足チャートは各財務データの始値、高値、安値、終値を表します。財務シナリオと株の変動の分析のために役立ちます。このチャートは各垂直軸に**始値**および**終値**を表す 2 つの水平線で数値を垂直軸に表します。
+
+そのため、ローソク足チャートには以下の項目が必要になります。
+
+ - **通常日付に関連する日付エディターの **[ラベル]** プレースホルダーにドロップする 1 つのフィールド。
+
+ - *Open*、*High*、*Low* および *Close* の **4 つの異なるフィールド** データ エディターのカテゴリ。
+
+
+
+チャートに追加情報を表示するためのオプションが複数あります。
+
+ - **軸の構成**: 軸の構成でチャートの最大値と最小値を構成できます。デフォルトで最小値は 0 に設定され、最大値は使用されるデータによって設定されます。
+
+ - **対数軸構成**: [対数] ボックスをチェックする場合、値のスケールは通常のリニア スケールを使用する代わりに大きさを使用するリニア スケール以外で計算されます。
+
+## サンプル データ ソース
+
+このチュートリアルでは、Reveal Visualization Tutorials の「OHLC and Candlestick」シートを使用します。
+
+## ローソク足チャートを作成する方法
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **OHLC and Candlestick** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**ローソク足**の表示形式を選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. *Date* フィールドを **[ラベル]** にドラッグアンドドロップし、*Open*、*High*、*Low* および *Close* フィールドを対応するプレースホルダーにドラッグアンドドロップします。
+
+ 
+
+## 軸の構成の変更
+
+[ゲージの範囲](tutorials-gauge.md#ゲージの化でしきい値を追加する方法)と同様に、チャート軸構成でチャート (範囲) の最小値と最大値を設定できます。この機能を使用して、特定のデータ含有や除外ができます。
+
+以下は軸構成のメニューへアクセスするための手順です。
+
+| | | |
+| ------------------------------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
+| 1\. **設定メニューにアクセスする** | | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **軸範囲セクションに移動する** | | 変更する設定は **[軸範囲]** です。 |
+
+最大値または最小値 (または両方) のどれを設定するかに基づいて、以下のオプションの 1 つへアクセスする必要があります。
+
+### 最小境界値を変更します。
+
+デフォルト値は「自動」に設定されています。境界値を変更する場合は、チャートの開始値を入力してください。
+
+### 最大境界値を変更します。
+
+最大境界値の場合、Reveal が元のデータを使用するためにデフォルトの値は **[自動]** に設定されます。別の値を設定するには、チャートの上限値を入力します。
+
+## 軸を対数軸として設定
+
+| | | |
+| -------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------- |
+| 1\. **設定メニューにアクセスする** | | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **軸を対数に変更する** | | **[軸]** ドロップダウンを開き、**[対数]** を選択します。 |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-gauge.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-gauge.md
new file mode 100644
index 00000000..cbba21bc
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-gauge.md
@@ -0,0 +1,157 @@
+---
+title: Reveal でゲージで表示形式を作成する方法
+_description: ンプルス プレッドシートを使用してゲージ チャートの表示形式を作成する方法を説明します。
+_language: ja
+---
+
+# ゲージで表示形式を作成する方法
+
+このチュートリアルは、サンプル スプレッドシートを使用して**ゲージ**の表示形式を作成する方法を説明します。
+
+
+
+## 重要なコンセプト
+
+ゲージ チャートは、2 つのレイアウトから選択できます。
+
+ - **しきい値の構成**。ゲージのしきい値の構成ではゲージの最大値と最小値を設定できます。デフォルトで最小値に設定されますが、特定のデータを除外するために変更できます。
+
+ - **バンド構成**。バンドの構成は 3 つの範囲を設定できます (より大きい、中間、より小さい) です。データ ソースに基づく範囲でデフォルトの値を上書きします。
+
+## サンプル データ ソース
+
+このチュートリアルでは、Reveal Visualization Tutorials の「Gauge Views」シートを使用します。
+
+## リニア ゲージを作成する方法
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **Gauge Views** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**リニア**表示形式を選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. たとえば、このリニア ゲージは国別で平均寿命を表します。*Country Name* フィールドを **[ラベル]** へ、年フィールドの 1 つを **[値]** へドラッグアンドドロップします。
+
+ 
+
+## 円形ゲージを作成する方法
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **Gauge Views** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**円型**表示形式を選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. たとえば、このリニア ゲージは国別で平均寿命を表します。*Country Name* フィールドを **[ラベル]** へ、年フィールドの 1 つを **[値]** へドラッグアンドドロップします。
+
+ 
+
+
+円形ゲージは、特に平均値と値の合計の表示に適しています。[値] に表示されるフィールドの集計を変更する手順:
+
+| | | |
+| -------------------------------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| 1\. **[値] のフィールド設定にアクセスする** |  | **[値]** のフィールドを選択してアクセスします。 |
+| 2\. **別の集計を選択する** |  | **[集計]** のドロップダウンを展開し、別のオプションを選択します (平均値など)。 |
+
+
+## テキスト ゲージを作成する方法
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **Gauge Views** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**テキスト**の表示形式を選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. 例えば、このテキスト ゲージは国別平均寿命を表します。年フィールドの 1 つを **[値]** にドラッグアンドドロップし、*Country Name* フィールドを **[データ フィルター]** にドラッグアンドドロップします。次に、フィールドを選択して、必要な特定の国を選択します。
+
+ 
+
+上記の [テキスト ゲージのサンプル] は平均値の集計を使用します。
+
+## ブレット グラフを作成する方法
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **Gauge Views** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**ブレット グラフ**を選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. 例えば、このブレット グラフ は国別平均寿命を表します。*Country Name* フィールドを **[ラベル]** へ、年フィールドの 1 つを **[値]** へ、別の年フィールドを **[ターゲット]** へドラッグアンドドロップします。
+
+ 
+
+## ゲージの化でしきい値を追加する方法
+
+しきい値を使用すると、ゲージの最小値と最大値を設定できます。[重要なコンセプト](#重要なコンセプト)で述べたように、特定のデータを除外するように変更できます。以下は作業手順です。
+
+| | | |
+| ---------------------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
+| 1\. **設定を変更する** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **制限のデフォルトの選択を変更する** |  | 最大値または最小値 (または両方) 値を設定するかどうかに基づいて、チャートの開始値または終了値を入力します。 |
+
+## バンドの色の変更
+
+以下は、バンド ([より大きい]、[中間] および [より小さい]) の色を変更するための手順です。
+
+| | | |
+| ---------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------ |
+| 1\. **設定を変更する** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **色のドロップダウンを表示する** |  | 色を変更する範囲のドロップダウンを展開します。バンドの色として、Reveal の 3 つの事前定義された色のいずれかを選択します。|
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-image.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-image.md
new file mode 100644
index 00000000..18f74a9b
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-image.md
@@ -0,0 +1,47 @@
+---
+title: Reveal で画像チャートを作成する方法
+_description: サンプルス プレッドシートを使用して画像チャートの表示形式を作成する方法を説明します。
+_language: ja
+---
+
+# 画像チャートを作成する方法
+
+このチュートリアルでは、サンプル スプレッドシートを使用して**画像**の表示形式を作成する方法を説明します。
+
+
+
+## 重要なコンセプト
+
+[表示形式] セクションに述べたように、画像チャートは URL へ要求を送信して、埋め込みのブラウザーで結果を表示します。したがって、データ ソースに以下の項目が必要です:
+
+ - ウィジェットに表示されるウェブ リソースへのリンク。
+
+ - リンクを**データセットの最初の行**に含みます。
+
+## サンプル データ ソース
+
+このチュートリアルでは、Reveal Visualization Tutorials の「Image Chart」シートを使用します。
+
+ 1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+ 2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+ 3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+ 4. データ ソースを設定したら、*Image View* シートを選択します。
+
+ 
+
+ 5. デフォルトで、表示形式のタイプは**柱状**に設定されています。**[画像]** オプションを選択します。
+
+ 
+
+ 6. 使用可能なフィールドのいずれかを **[URL]** にドラッグします。
+
+ 
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-kpi-gauge.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-kpi-gauge.md
new file mode 100644
index 00000000..9f09e0a9
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-kpi-gauge.md
@@ -0,0 +1,105 @@
+---
+title: Reveal で KPI ゲージ チャートを作成する方法
+_description: サンプルス プレッドシートを使用して KPI ゲージの表示形式を作成する方法を説明します。
+_language: ja
+---
+
+# KPI ゲージを作成
+
+このチュートリアルでは、サンプル スプレッドシートを使用して KPI ゲージの表示形式を作成する方法を説明します。
+
+| | |
+|:---:|:---:|
+|  [KPI ゲージ](#kpi-ゲージの作成) |  [複数の KPI ゲージ](#1-つの表示形式で複数の-kpi-ゲージを作成する方法) |
+|  [月ごとの KPI ゲージ](#日付比較タイプの変更) |  [値とパーセンテージの違いがある KPI ゲージ](#kpi-ゲージの差分ラベルの変更) |
+|  [値が減少したときに緑色のマーカーが付いた KPI ゲージ](#差分マーカーの色の変更) | |
+
+## 重要なコンセプト
+
+KPI ゲージは、特定の期間内のパフォーマンスとその変動を表示するためのものです。作成するには、次のものが必要です:
+
+ - データエディターの **[日付]** プレースホルダーにドロップする **1 つのフィールド**。
+
+ - **[値]** にドロップする **1 つのフィールド**。
+
+## サンプル データ ソース
+
+このチュートリアルでは、Reveal Visualization Tutorials の「KPI View」シートを使用します。
+
+## KPI ゲージの作成
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **KPI View** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**KPI vs Time** を選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. *Date* フィールドを [日付] に、*Sales* フィールドを [値] に、*State* フィールドを [カテゴリ] にドラッグアンドドロップします。
+
+ 
+
+## 1 つの表示形式で複数の KPI ゲージを作成する方法
+
+1 つの表示形式で複数の KPI を作成するには、データ エディターの**カテゴリ** プレースホルダーにフィールドを追加する必要があります。
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **KPI View** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**KPI vs Time** を選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. *Date* フィールドを [日付] に、*Sales* フィールドを [値] に、*State* フィールドを [カテゴリ] にドラッグアンドドロップします。
+ 
+
+## 日付比較タイプの変更
+
+デフォルトでは、KPI ゲージの日付タイプは前年比になります。[タイプ] フィールドを変更することでこれを変更できます。以下は変更手順です。
+
+| | | |
+| -------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
+| 1\. **設定メニューにアクセスする** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **タイプを変更する** |  | デフォルトでは、日付のタイプは **[今年と前年]** に設定されます。**[期間]** の横にあるドロップダウンを選択し、選択を **[今月と先月]** に変更します。 |
+
+## KPI ゲージの差分ラベルの変更
+
+| | | |
+| -------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 1\. **設定メニューにアクセスする** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **タイプを変更する** |  | デフォルトで、差分ラベルは**パーセンテージ**に設定されています。 **[差異の表示]** の横のドロップダウンを選択し、選択を **[値とパーセンテージ]** に変更します。 |
+
+## 差分マーカーの色の変更
+
+デフォルトでは、KPI ゲージのマーカーの色は、正の値の場合は緑、負の値の場合は赤に設定されます。ただし、減少をプラスとして表現したい場合もあります。以下は設定方法です。
+
+| | | |
+| -------------------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 1\. **設定メニューにアクセスする** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **タイプを変更する** |  | デフォルトでは、マーカーの色は緑に設定されます。**[値の増加を表す色]** の横のドロップダウンを選択し、選択を **[赤色]** に変更します。 |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-ohlc.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-ohlc.md
new file mode 100644
index 00000000..0c743685
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-ohlc.md
@@ -0,0 +1,88 @@
+---
+title: Reveal で OHLC の表示形式を作成する方法
+_description: サンプルス プレッドシートを使用して OHLC の表示形式を作成する方法を説明します。
+_language: ja
+---
+
+# OHLC チャートを作成する方法
+
+このチュートリアルは、サンプル スプレッドシートを使用して OHLC チャートを作成する方法を説明します。
+
+
+
+
+## 重要なコンセプト
+
+OHLC チャートとローソク足チャートは各財務データの始値、高値、安値、終値を表します。財務シナリオと株の変動の分析のために役立ちます。このチャートは各垂直軸に**始値**および**終値**を表す 2 つの水平線で数値を垂直軸に表します。
+
+そのため、OHLC チャートには以下の項目が必要になります。
+
+ - 通常日付に関連する日付エディターの **[ラベル]** プレースホルダーにドロップする 1 つのフィールド。
+
+ - データ エディターの [始値]、[高値]、[安値]、および [終値] カテゴリの **4 つの異なるフィールド**。
+
+
+
+チャートに追加情報を表示するためのオプションが複数あります。
+
+ - **軸の構成**: 軸の構成でチャートの最大値と最小値を構成できます。デフォルトで最小値は 0 に設定され、最大値は使用されるデータによって設定されます。
+
+ - **対数軸構成**: [対数] ボックスをチェックする場合、値のスケールは通常のリニア スケールを使用する代わりに大きさを使用するリニア スケール以外で計算されます。
+
+## サンプル データ ソース
+
+このチュートリアルでは、Reveal Visualization Tutorials の「OHLC and Candlestick」シートを使用します。
+
+## OHLC チャートを作成する方法
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+ 2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+ 3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+ 4. データ ソースを設定したら、**OHLC and Candlestick** シートを選択します。
+
+ 
+
+ 5. **表示形式ピッカー**を開き、**OHLC** を選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+ 6. *Day* フィールドを **[ラベル]** にドラッグアンドドロップし、*Open*、*High*、*Low* および *Close* フィールドを対応するプレースホルダーにドラッグアンドドロップします。
+
+ 
+
+## 軸の構成の変更
+
+[ゲージの範囲](tutorials-gauge.md#ゲージの化でしきい値を追加する方法)と同様に、チャート軸構成でチャート (範囲) の最小値と最大値を設定できます。この機能を使用して、特定のデータ含有や除外ができます。
+
+以下は軸構成のメニューへアクセスするための手順です。
+
+| | | |
+| ------------------------------------------- | ------------------------------------------------------------------------------------ | ----------------------------------------------------------- |
+| 1\. **設定メニューにアクセスする** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **軸範囲セクションに移動する** |  | 変更する設定は**軸範囲**です。 |
+
+最大値または最小値 (または両方) のどれを設定するかに基づいて、以下のオプションの 1 つへアクセスする必要があります。
+
+### 最小境界値を変更します。
+
+デフォルトの値は *0* です。境界値を変更する場合は、チャートの開始値を入力してください。
+
+### 最大境界値を変更します。
+
+最大境界値の場合、Reveal が元のデータを使用するためにデフォルトの値は **[自動]** に設定されます。別の値を設定するには、チャートの上限値を入力します。
+
+## 軸を対数軸として設定
+
+| | | |
+| -------------------------------------- | ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
+| 1\. **設定メニューにアクセスする** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **軸を対数に変更する** |  | **[軸]** ドロップダウンを開き、**[対数]** を選択します。 |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-overview.md
new file mode 100644
index 00000000..1df29997
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-overview.md
@@ -0,0 +1,11 @@
+# 表示形式のチュートリアル
+
+このセクションでは、Reveal の表示形式の作成手順を説明します。すべてのセクションで、このリンク を使用してダウンロードできる Data Visualizations データ ソースを使用しています。
+
+| | | | | |
+|:-:|:-:|:-:|:-:|:-:|
+|  [エリア](tutorials-simple-charts.md) |  [棒](tutorials-simple-charts.md) |  [ブレット グラフ](tutorials-gauge.md#ブレット-グラフを作成する方法) |  [ロウソク足](tutorials-candlestick.md) |  [円型](tutorials-gauge.md#円形ゲージを作成する方法) |
+|  [柱状](tutorials-simple-charts.md) |  [ドーナツ型](tutorials-simple-charts.md) |  [ファンネル](tutorials-simple-charts.md) |  [画像](tutorials-image.md) |  [KPI](tutorials-kpi-gauge.md) |
+|  [折れ線](tutorials-simple-charts.md) |  [リニア](tutorials-gauge.md#リニア-ゲージを作成する方法) |  [OHLC](tutorials-ohlc.md) |  [円](tutorials-simple-charts.md) |  [ラジアル](tutorials-simple-charts.md) |
+|  [スパークライン](tutorials-sparkline-charts.md) |  [スプライン](tutorials-simple-charts.md) |  [スプライン エリア](tutorials-simple-charts.md) |  [積層型エリア](tutorials-stacked-charts.md) |  [積層型棒](tutorials-stacked-charts.md) |
+|  [積層型柱状](tutorials-stacked-charts.md) |  [ステップ エリア](tutorials-simple-charts.md) |  [ステップ折れ線](tutorials-simple-charts.md) |  [テキスト](tutorials-gauge.md#テキスト-ゲージを作成する方法) |  [テキスト ビュー](tutorials-text-view.md) |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-simple-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-simple-charts.md
new file mode 100644
index 00000000..72214b06
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-simple-charts.md
@@ -0,0 +1,99 @@
+---
+title: Reveal でシンプル シリーズ チャートの表示形式を作成する方法
+_description: サンプルス プレッドシートを使用してシンプル シリーズの表示形式を作成する方法を説明します。
+_language: ja
+---
+
+# シンプル シリーズ チャートを作成する方法
+
+このチュートリアルは、サンプル スプレッドシートを使用して**シンプル シリーズ** チャートの表示形式を作成する方法を説明します。
+
+
+
+
+
+
+
+## 重要なコンセプト
+
+チャートを使用する時、表示される情報とともに追加の情報も追加できます。これは以下の機能で追加できます。
+
+ - チャートに折れ線で表示する**チャート近似曲線**。変数間の関係や情報全体の方向性を表す場合に役立ちます。チャートに回帰と呼ばれるいくつかのアルゴリズムを適用できます。回帰は **[チャートの近似曲線]** から選択できます。
+
+ - **軸の構成**: 軸の構成でチャートの最大値と最小値を構成できます。デフォルトで最小値は 0 に設定され、最大値は使用されるデータによって設定されます。
+
+ - **対数軸構成**: [対数] ボックスをチェックする場合、値のスケールは通常のリニア スケールを使用する代わりに大きさを使用するリニア スケール以外で計算されます。
+
+ - **開始位置**: 円チャートおよびドーナツ型チャートでチャートのスライスを回転する開始位置を構成し、データの表示順序を変更できます。
+
+ - **スライス ラベル**: ドーナツ型、ファンネル、および円チャートでは、値やパーセンテージ、またはその両方を同時に表示するスライス ラベルを構成できます。
+
+## サンプル データ ソース
+
+このチュートリアルでは、Reveal Visualization Tutorials の「Simple Series Charts」シートを使用します。
+
+## チャートの作成
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **Simple Series Charts** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**カテゴリ**の下にある**チャート**表示形式のいずれかを選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. たとえば、上の表のチャートには、選択した国のリストの人口が表示されます。*Country Name* フィールドを **[ラベル]** へ、*Population* フィールドを **[値]** へドラッグアンドドロップします。
+
+ 
+
+## チャートに近似曲線を追加する
+
+情報全体の方向性またチャートの変数の関係を表すためにチャート 近似曲線を追加できます。以下は作業手順です。
+
+| | | |
+| ----------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------- |
+| 1\. **設定を変更する** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **チャートの近似曲線にアクセスする** |  | 下向き矢印を選択して [チャートの近似曲線] ドロップダウンを展開し、Reveal の定義済み近似曲線のいずれかを選択します。 |
+
+## 軸の構成の変更
+
+[ゲージの範囲](tutorials-gauge.md#ゲージの化でしきい値を追加する方法)と同様に、チャート軸構成でチャートの最小と最大値を設定できます。この機能を使用して、特定のデータ含有や除外ができます。
+
+| | | |
+| -------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
+| 1\. **設定を変更する** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **範囲の設定にアクセスする** |  | [軸範囲] に移動します。最大値または最小値 (または両方) 値を設定するかどうかに基づいて、チャートの開始値または終了値を入力します。 |
+
+
+## 軸を対数軸として設定
+
+| | | |
+| ----------------------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------- |
+| 1\. **設定を変更する** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **軸オプションにアクセスする** |  | 下矢印を選択して [軸] ドロップダウンを展開し、[対数] を選択します。 |
+
+## ドーナツ型と円チャートの開始位置の変更
+
+| | | |
+| ------------------------------------------------- | ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- |
+| 1\. **設定を変更する** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **開始位置セクションにアクセスする** |  | 下矢印を選択して、[開始位置] ドロップダウンを展開します。チャートに対して、Reveal の事前定義された開始位置 (0°、90°、180°、または 270°) のいずれかを選択します。 |
+
+## ドーナツ型、ファンネルと円チャートのスライスのラベルの変更
+
+| | | |
+| ---------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
+| 1\. **設定を変更する** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **スライス ラベルのセクションにアクセスする** |  | 下矢印を選択して、スライス ラベル ドロップダウンを展開します。Reveal の事前定義されたラベル付けオプション (パーセント、値、または値とパーセント) のいずれかを選択します。 |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-sparkline-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-sparkline-charts.md
new file mode 100644
index 00000000..bbf12b13
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-sparkline-charts.md
@@ -0,0 +1,98 @@
+---
+title: Reveal でスパークライン チャートの表示形式を作成する方法
+_description: サンプル スプレッドシートを使用してスパークライン チャートの表示形式を作成する方法を説明します。
+_language: ja
+---
+
+# スパークライン チャートの作成
+
+このチュートリアルは、サンプル スプレッドシートを使用してスパークライン チャートの表示形式を作成する方法を説明します。
+
+
+
+
+
+
+## 重要なコンセプト
+
+スパークライン チャートは、指定した日付範囲のトレンドとその進行を表示します。OHLC チャートやローソク足チャートなど、ファイナンシャル シナリオと株の変動の分析のために役立ちます。スパークラインは、グリッドセル内に折れ線チャートを表示します。
+
+ - データ エディターの **[日付]** プレースホルダーにドロップする**フィールド**。
+
+ - **[値]** にドロップする**フィールド**。
+
+ - **[カテゴリ]** にドロップする**フィールド**。
+
+スパークライン チャートを使用する時、表示するデータに対して情報を追加、変更または削除できます。これは以下の機能で追加できます。
+
+ - スパークラインの**チャート タイプ**は、**折れ線**または**エリア** チャートのいずれかを選択できます。
+
+ - チャートの日付**集計**。
+
+ - 同じチャート内に表示される**値の数**。
+
+ - データに**過去 2 か月を含めるかどうか、またそれらの差異など**、スパークラインのグリッドに含める明示的な情報。
+
+:::note
+スパークライン チャートには、デフォルトで過去 12 か月間の傾向とその進行状況が表示されます。[スパークライン チャートの日付範囲設定](#日付集計の変更)を使用して日付範囲を調整できます。
+:::
+
+## サンプル データ ソース
+
+このチュートリアルでは、Reveal Visualization Tutorials の「Sparkline Charts」シートを使用します。
+
+## スパークライン チャートの作成
+
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **Sparkline Charts** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**スパークライン チャート**を選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. *Date* フィールドを **[日付]** に、*Offer* フィールドを **[値]** に、*Stocks* を **[カテゴリ]** にドラッグアンドドロップします。
+
+ 
+
+## スパークラインのチャート タイプを変更する方法
+
+スパークライン チャートに使用するチャートのタイプを変更できます。以下は作業手順です。
+
+| | | |
+| -------------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
+| 1\. **設定メニューにアクセスする** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **チャート タイプを変更する** |  | デフォルトで、チャート タイプは [折れ線] に設定されています。[エリア] に設定します。 |
+
+## 日付集計の変更
+
+デフォルトでは、情報の集計は **12 ヶ月**です。**[表示: 過去]** 設定で変更できます。以下は変更手順です。
+
+| | | |
+| -------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 1\. **設定メニューにアクセスする** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **Change the Aggregation** |  | デフォルトで、[表示: 過去] 設定は **[月]** に設定されます。[月] の横のドロップダウンを選択し、[年] または [日] に変更します。 |
+
+日付の集計の隣にある数値を変更して、表示するデータを増減できます。
+
+## スパークラインの列数を変更する方法
+
+Reveal で、表示形式の列数は、過去 2 か月とそれらの差を表示するかどうかによって定義されます。デフォルトで有効になります。以下は削除方法です。
+
+| | | |
+| ------------------------------------ | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| 1\. **設定メニューにアクセスする** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **Change the Displayed Columns** |  | どちらもスパークラインに表示しない場合は、**[最後の 2 つの値の列を表示] または [差異のある列を表示] ボックスをオフにします**。 |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-stacked-charts.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-stacked-charts.md
new file mode 100644
index 00000000..547b134c
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-stacked-charts.md
@@ -0,0 +1,77 @@
+---
+title: Reveal で積層型チャートの表示形式を作成する方法
+_description: サンプルス プレッドシートを使用して積層型チャートの表示形式を作成する方法を説明します。
+_language: ja
+---
+
+# 積層型チャートを作成する方法
+
+このチュートリアルはサンプル スプレッドシートを使用し**積層型**チャートを作成する方法を説明します。
+
+
+
+## 重要なコンセプト
+
+積層型チャートは、3 つのレイアウトから選択できます - [エリア](#積層型チャートの作成)、[柱状](#積層型チャートの作成)および[棒](#積層型チャートの作成)。
+
+以下の項目も設定できます。
+
+ - **軸の構成**: 軸の構成でチャートの最大値と最小値を構成できます。デフォルトで最小値は 0 に設定され、最大値は使用されるデータによって設定されます。
+
+ - **対数軸構成**: [対数] ボックスをチェックする場合、値のスケールは通常のリニア スケールを使用する代わりに大きさを使用するリニア スケール以外で計算されます。
+
+## サンプル データ ソース
+
+このチュートリアルでは、Reveal Visualization Tutorials の *Stacked Charts* シートを使用します。
+
+
+## 積層型チャートの作成
+
+1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **Stacked Charts** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**積層型**表示形式のいずれかを選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. 積層型チャートでは、データ エディターの **[値]** プレースホルダーに 2 つ以上のフィールドをドラッグ アンド ドロップする必要があります。今の例で、*1960*、*2003*、*2008* と *2010* を **[値]** へ、*Country Name* を **[ラベル]** へドラッグアンドドロップします。
+
+ 
+
+## 軸の構成の変更
+
+[ゲージの範囲](tutorials-gauge.md#ゲージの化でしきい値を追加する方法)と同様に、チャート軸構成でチャートの最小と最大値を設定できます。この機能を使用して、特定のデータ含有や除外ができます。
+
+| | | |
+| -------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
+| 1\. **設定を変更する** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **範囲の設定にアクセスする** |  | [軸範囲] に移動します。最大値または最小値 (または両方) 値を設定するかどうかに基づいて、チャートの開始値または終了値を入力します。 |
+
+## 軸を対数軸として設定
+
+| | | |
+| ----------------------------------------- | ------------------------------------------------------------------------ | ----------------------------------------------------------- |
+| 1\. **設定を変更する** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **軸のオプションにアクセスする** |  | 下矢印を選択して、軸ドロップダウンを展開します。次に、[対数] を選択します。|
+
+## パーセンテージの配分を有効します。
+
+積層型チャートにパーセンテージの配分も構成できます。このタイプのチャートに値とパーセンテージの配分スケールを切り替えます。以下は作業手順です。
+
+| | | |
+| -------------------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| 1\. **設定を変更する** |  | 表示形式エディターの **[設定]** セクションに移動します。 |
+| 2\. **パーセンテージの配分を有効にする** |  | [パーセンテージの配分] ボックスをチェックして、パーセンテージの配分設定を有効にします。 |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-text-view.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-text-view.md
new file mode 100644
index 00000000..6979c430
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/tutorials-text-view.md
@@ -0,0 +1,69 @@
+---
+title: Reveal でテキスト ビューの表示形式を作成する方法
+_description: サンプルス プレッドシートを使用してテキスト ビューの表示形式を作成する方法を説明します。
+_language: ja
+---
+
+# テキスト ビューを作成する方法
+
+このチュートリアルはサンプル スプレッドシートを使用し**テキスト ビュー**を作成する方法を説明します。
+
+
+
+## 重要なコンセプト
+
+テキストビューではキーと値のパターンで情報が表示されますが、**列のラベルとペアになっているデータの最初の行のみが表示されます**。ただし、フィルターを追加して、必要な行が Reveal 表示されるようにすることができます。
+
+## サンプル データ ソース
+
+このチュートリアルでは、Reveal Visualization Tutorials の「Simple Series Charts」シートを使用します。
+
+## テキスト ビューを作成する方法
+
+ 1. オーバーフロー メニューで **[編集]** を選択します。
+
+ 
+
+2. 右上隅にある **[+ 表示形式]** ボタンを選択します。
+
+ 
+
+3. データ ソースのリストからデータ ソースを選択します。
+
+ 
+
+4. **Simple Series Charts** シートを選択します。
+
+ 
+
+5. **表示形式ピッカー**を開き、**テキスト ビュー**を選択します。デフォルトで、表示形式のタイプは**柱状**に設定されています。
+
+ 
+
+6. たとえば、上記のテキスト ビューには、特定の国の人口、平均余命および出生率が表示されます。*Country Name*、*Population*、*Life Expectancy*、*Fertility Rate* を [列] にドラッグアンドドロップします。
+
+ 
+
+ 以下は結果です。
+ 
+
+## 選択された行を変更する
+
+デフォルトで、テキスト ビューはシートの最初の行を表示されます。これを変更するためにフィルターを適用できます。たとえば、テキスト ビューに行 9 (ボスニア・ヘルツェゴビナ) を表示させます。
+
+1. *Country Name* フィールドを **[データ フィルター]** にドラッグ アンド ドロップします。
+
+ 
+
+2. [フィルター タイプ] を選択してドロップダウン メニューを有効にし、**[値の選択]** を選択します。
+
+ 
+
+3. デフォルトでは、すべての値が選択済です。**[すべて]** ボックスのチェックを外し、**Bosnia and Herzegovina** のみを選択します。次に、**[フィルターの作成]** を選択します。
+
+ 
+
+ 更新されたデータが表示されます:
+
+ 
+
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/visualization-editor.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/visualization-editor.md
new file mode 100644
index 00000000..09f5a10c
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/visualization-editor.md
@@ -0,0 +1,62 @@
+---
+title: 表示形式エディターの使用方法
+_description: 表示形式を作成および編集し、さまざまなオプションを使用する方法をご覧ください。
+_language: ja
+---
+
+# 表示形式エディター
+
+**表示形式エディター**は、Reveal で表示形式を作成および編集する場所です。ここでは、データセットからのデータが集約されて使用できるように準備されているほか、それを使用して構築するためのさまざまな表示形式が表示されます。
+
+## 表示形式の作成方法
+
+表示形式は、ダッシュボードの基本要素です。したがって、表示形式の作成を開始するときに、開始点には 2 つの選択肢があります。
+
+* **新しいダッシュボードを作成する**ことから始めます。このダッシュボードでは、新しい表示形式が最初または唯一の表示形式になります。これを行うには、青い **[+ 表示形式]** ボタンをクリックまたはタップします。
+
+* 既存のダッシュボードに**新しい表示形式を追加する**ことから始めます。これを行うには、右上隅のオーバーフロー ボタンを選択し、**[編集]** をクリックまたはタップして、**[+ 表示形式]** の青いボタンをクリックまたはタップします。
+
+その後、新しいデータ ソースを追加するか、既存のデータ ソースを選択するように求められます。
+
+
+
+データ ソースを選択して構成すると、[表示形式エディター](visualization-editor.md)に移動し、表示形式の作成を開始できます。
+
+表示形式エディターは、データを使用して最も望ましいビューを作成するのに役立ちます。
+
+## 表示形式エディターにアクセスする
+
+表示形式エディターには、次の 2 つの方法でアクセスできます。
+
+**1. 表示形式作成プロセス**
+
+データ ソースを選択して設定すると、**表示形式エディター**が自動的に開きます。
+
+**2. ダッシュボード編集プロセス**
+
+選択したダッシュボードを開き、**ダッシュボード編集**モードに入ると、表示形式のオーバーフロー ボタンから **[編集]** を選択して、**表示形式エディターにアクセス**できます。または、オーバーフロー メニューの横にある鉛筆アイコンをクリックまたはタップすることもできます。
+
+## 表示形式エディターの概要
+
+以下は、**エディター**のすべてのセクションとその機能のリストです。
+
+
+
+1. **[データ] セクション** - このセクションには 2 つのパネルがあります。
+ 1. **[フィールド]** - データ ソース内で使用可能なすべてのフィールドが左側のパネルに表示されます。各フィールドには、フィールド タイプ (**日付**、**値**、**テキスト**) をユーザーに通知するインジケーターがあります。使用可能なフィールドが 10 を超えると、検索バーが表示されます。このパネルの **[+]** アイコンを使用すると、データ ソースをブレンドするか、フィールドを計算することができます。**脳**アイコンを使用すると、BigQuery または Azure の**機械学習モデル**のフィールドを表示形式に使用できます。BigQuery 機械学習モデルは、BigQuery データ ソースでのみ機能することにご注意ください。
+ 2. **表示形式フィールド** - ここでフィールドをドラッグアンドドロップするか、**[+]** マークをクリックして使用可能なフィールドから作成する表示形式に使用するフィールドを選択します。
+
+2. **[設定] セクション** - このセクションでは、表示する内容をカスタマイズできます。各表示形式には独自の設定があります。 **[設定]** セクションの下部に、リンクのオプションが表示されます。これは、ドリル ダウンを全く新しいレベルに到達させる強力な機能です。詳細については、[ダッシュボード リンク](dashboard-linking.md) トピックをご覧ください。
+
+3. **表示形式ピッカー** - ここで目的の表示形式を選択して、最終結果をプレビューできます。ドロップダウン メニューでさまざまなチャート タイプを切り替えると、表示形式フィールドのセクションが変更されます。各表示形式のフィールドは異なりますが、入力するだけで自動的に変更されます。
+
+4. **表示形式のワークスペース** - フィールドをドラッグアンドドロップしながら作成または編集している表示形式を確認できます。そのチャート タイプを作成するために必要なすべてのフィールドが揃うまで、表示形式は入力されません。
+
+5. **データ ソース** - 現在使用しているデータ ソースがここに表示されます。クリックによってデータ ソース内のシート、テーブル、またはビューを変更し、またエディターを離れることなく、接続を新しいデータ ソースへ完全に変更できます。
+
+特に、次のことが可能になります。
+- データの**並べ替え**と**フィルター**
+- データ エディターの**集計データ**。
+- データの**検索**、**視覚化**、および**書式設定**。
+
+表示形式の作成を完了したら、**チェック** アイコンを選択して**ダッシュボード エディター**に戻ります。ダッシュボード エディターでは、表示形式をドラッグしてレイアウト、サイズ、配置を操作できます。ダッシュボードの書式設定とスタイル設定の準備ができたら、**チェック** アイコンをもう一度クリックまたはタップしてダッシュボードを保存します。
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/visualizations-overview.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/visualizations-overview.md
new file mode 100644
index 00000000..3f493333
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/user/visualizations-overview.md
@@ -0,0 +1,51 @@
+---
+title: Reveal の表示形式 – 必要な知識
+_description: Reveal でのデータ表示形式の仕組みとカスタマイズ方法の概要です。
+_language: ja
+---
+
+# データ表示形式
+
+Reveal は、さまざまな表示形式を提供することにより、ビジネス データから可能な限り多くの気付きを得るのに役立ちます。
+
+## 表示形式の概要
+
+ビジネス データを理解するために Reveal は情報の表示形式をカスタマイズする複数のオプションを提供します。これらは表示形式といいます。すべてのダッシュボードは 1 つ以上の表示形式で構成されます。
+
+以下に示すダッシュボードには、セールスのさまざまな側面を分析する多様な表示形式が含まれています。
+
+
+
+## 適切な表示形式タイプの選択
+
+最適なチャート タイプを選択するには、データを確認し、表示形式で伝えようとしているストーリーを見つけるのに役立つ質問に答える必要があります。
+
+データを比較することか、データの分布を示すことあるいはデータを全体の一部分として提示しようとしていますか? 財務、マーケティング、または販売データのトレンド分析を行っていますか? 日付/時刻軸が必要ですか? データ間の関係を調べていますか? または、読みやすく、簡単なストーリーを伝える KPI とゲージを表示したいだけですか? データを地図上にプロットすることは重要ですか?
+
+データを通じて何を表示したいかについて回答し、以下の表を使用して最適なチャートを選択してください。
+
+| | | | | | | | | | | |
+|:------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------------------------------------------------------:|:------------------------------------------------------:|:---------------------------------------------------------------------------:|:---------------------------------------------------------------------------:|
+| データの比較 |  [棒](chart-types/category-charts.md) |  [柱状](chart-types/category-charts.md) |  [エリア](chart-types/category-charts.md) |  [スプライン](chart-types/category-charts.md) |  [複合](chart-types/combo-charts.md) |  [円型](chart-types/gauge-charts.md#円形ゲージ) |  [スプライン エリア](chart-types/category-charts.md) |  [OHLC](chart-types/financial-charts.md) |  [ロウソク足](chart-types/financial-charts.md) |  [時系列](chart-types/time-series-charts.md) |
+| 部分から全体 |  [積層型柱状](chart-types/category-charts.md) |  [積層型棒](chart-types/category-charts.md) |  [積層型エリア](chart-types/category-charts.md) |  [円](chart-types/category-charts.md) |  [ドーナツ型](chart-types/category-charts.md) |  [ファンネル](chart-types/category-charts.md) |  [ツリーマップ](chart-types/treemap-charts.md) | | | |
+| データ分布 |  [ステップ エリア](chart-types/category-charts.md) |  [積層型柱状](chart-types/category-charts.md) |  [散布図](chart-types/scatter-bubble-charts.md) |  [バブル](chart-types/scatter-bubble-charts.md) | | | | | | |
+| データ トレンド分析 |  [折れ線](chart-types/category-charts.md) |  [スプライン](chart-types/category-charts.md) |  [複合](chart-types/combo-charts.md) |  [OHLC](chart-types/financial-charts.md) |  [ロウソク足](chart-types/financial-charts.md) |  [ラジアル](chart-types/radial-charts.md) |  [時系列](chart-types/time-series-charts.md) | | | |
+| データの関係 |  [散布図](chart-types/scatter-bubble-charts.md) |  [バブル](chart-types/scatter-bubble-charts.md) |  [折れ線](chart-types/category-charts.md) | | | | | | | |
+| KPI とゲージ |  [ブレット グラフ](chart-types/gauge-charts.md#ブレット-グラフ) |  [リニア](chart-types/gauge-charts.md#リニア-ゲージ) |  [テキスト](chart-types/gauge-charts.md#テキスト-ゲージ) |  [KPI](chart-types/kpi-gauge.md) |  [円型](chart-types/gauge-charts.md#円形ゲージ) | | | | | |
+| 地理的データ |  [階級区分図](chart-types/choropleth-map.md) |  [散布マップ](chart-types/scatter-map.md) | | | | | | | | |
+
+
+
+これらの各表示形式の使用方法に関する詳細が必要な場合は、表のハイパーリンクを使用してください。
+
+## 表示形式チュートリアル
+
+このセクションでは、Reveal の表示形式の作成手順を説明します。すべてのセクションで、このリンク を使用してダウンロードできる Data Visualizations データ ソースを使用しています。
+
+| | | | | |
+|:-:|:-:|:-:|:-:|:-:|
+|  [エリア](tutorials-simple-charts.md) |  [棒](tutorials-simple-charts.md) |  [ブレット グラフ](tutorials-gauge.md#ブレット-グラフを作成する方法) |  [ローソク足](tutorials-candlestick.md) |  [円型](tutorials-gauge.md#円形ゲージを作成する方法) |
+|  [柱状](tutorials-simple-charts.md) |  [ドーナツ型](tutorials-simple-charts.md) |  [ファンネル](tutorials-simple-charts.md) |  [画像](tutorials-image.md) |  [KPI](tutorials-kpi-gauge.md) |
+|  [折れ線](tutorials-simple-charts.md) |  [リニア](tutorials-gauge.md#リニア-ゲージを作成する方法) |  [OHLC](tutorials-ohlc.md) |  [円](tutorials-simple-charts.md) |  [ラジアル](tutorials-simple-charts.md) |
+|  [スパークライン](tutorials-sparkline-charts.md) |  [スプライン](tutorials-simple-charts.md) |  [スプライン エリア](tutorials-simple-charts.md) |  [積層型エリア](tutorials-stacked-charts.md) |  [積層型棒](tutorials-stacked-charts.md) |
+|  [積層型柱状](tutorials-stacked-charts.md) |  [ステップ エリア](tutorials-simple-charts.md) |  [ステップ折れ線](tutorials-simple-charts.md) |  [テキスト](tutorials-gauge.md#テキスト-ゲージを作成する方法) |  [テキスト ビュー](tutorials-text-view.md) |
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/amazon-athena.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/amazon-athena.md
new file mode 100644
index 00000000..b10b734d
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/amazon-athena.md
@@ -0,0 +1,339 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Amazon Athena データ ソース
+
+## 概要
+
+Amazon Athena は、標準 SQL を使用して Amazon S3 内のデータを簡単に分析できるインタラクティブなクエリ サービスです。このトピックでは、Reveal アプリケーションで Amazon Athena データ ソースに接続して、データを視覚化および分析する方法について説明します。
+
+## サーバーの構成
+
+### インストール
+
+
+
+
+ASP.NET アプリケーションの場合、Amazon Athena サポートを有効にするには、別の NuGet パッケージをインストールする必要があります。
+
+```bash
+dotnet add package Reveal.Sdk.Data.Amazon.Athena
+```
+
+次に、アプリケーションに Amazon Athena プロバイダーを登録します。
+
+```csharp
+builder.Services.AddControllers().AddReveal( builder =>
+{
+ builder.DataSources.RegisterAmazonAthena();
+});
+```
+
+
+
+
+Node.js アプリケーションの場合、Amazon Athena データ ソースはメインの Reveal SDK パッケージにすでに含まれています。標準の Reveal SDK セットアップ以外に追加のインストールは必要ありません。
+
+
+
+
+Java アプリケーションの場合、Amazon Athena データ ソースはメインの Reveal SDK パッケージにすでに含まれています。標準の Reveal SDK セットアップ以外に追加のインストールは必要ありません。
+
+
+
+
+### 接続の構成
+
+Amazon Athena のすべての接続プロパティは、データ ソース プロバイダーの実装を通じてサーバー側で構成されます。
+
+
+
+
+```csharp
+// Create a data source provider
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public async Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId, RVDataSourceItem dataSourceItem)
+ {
+ // Required: Update the underlying data source
+ await ChangeDataSourceAsync(userContext, dataSourceItem.DataSource);
+
+ if (dataSourceItem is RVAthenaDataSourceItem athenaItem)
+ {
+ // Configure specific item properties as needed
+ if (athenaItem.Id == "my-data-source-item")
+ {
+ athenaItem.Table = "your_table_name";
+ }
+ }
+
+ return dataSourceItem;
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVAthenaDataSource athenaDS)
+ {
+ // Configure connection properties
+ athenaDS.Region = "your_region";
+ athenaDS.Database = "your_database_name";
+ }
+
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+
+
+
+```javascript
+// Create data source providers
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ // Required: Update the underlying data source
+ await dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ if (dataSourceItem instanceof reveal.RVAthenaDataSourceItem) {
+ // Configure specific item properties if needed
+ if (dataSourceItem.id === "my-data-source-item") {
+ dataSourceItem.table = "your_table_name";
+ }
+ }
+
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVAthenaDataSource) {
+ // Configure connection properties
+ dataSource.region = "your_region";
+ dataSource.database = "your_database_name";
+ }
+
+ return dataSource;
+}
+
+```
+
+
+
+
+```typescript
+// Create data source providers
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ // Required: Update the underlying data source
+ await dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ if (dataSourceItem instanceof RVAthenaDataSourceItem) {
+ // Configure specific item properties if needed
+ if (dataSourceItem.id === "my-data-source-item") {
+ dataSourceItem.table = "your_table_name";
+ }
+ }
+
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVAthenaDataSource) {
+ // Configure connection properties
+ dataSource.region = "your_region";
+ dataSource.database = "your_database_name";
+ }
+
+ return dataSource;
+}
+```
+
+
+
+
+```java
+// Create a data source provider
+public class DataSourceProvider implements IRVDataSourceProvider {
+
+ public RVDataSourceItem changeDataSourceItem(IRVUserContext userContext, String dashboardId, RVDataSourceItem dataSourceItem) {
+ // Required: Update the underlying data source
+ changeDataSource(userContext, athenaItem.getDataSource());
+
+ if (dataSourceItem instanceof RVAthenaDataSourceItem athenaItem) {
+ // Configure specific item properties if needed
+ if ("my-data-source-item".equals(athenaItem.getId())) {
+ athenaItem.setTable("your_table_name");
+ }
+ }
+
+ return dataSourceItem;
+ }
+
+ public RVDashboardDataSource changeDataSource(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVAthenaDataSource athenaDS) {
+ // Configure connection properties
+ athenaDS.setRegion("your_region");
+ athenaDS.setDatabase("your_database_name");
+ }
+
+ return dataSource;
+ }
+}
+```
+
+
+
+
+:::danger Important
+`ChangeDataSourceAsync` メソッドでデータ ソースに加えられた変更は、`ChangeDataSourceItemAsync` メソッドには引き継がれません。どちらの方法でも、データ ソース プロパティを**更新する必要があります**。上記の例に示すように、`ChangeDataSourceItemAsync` メソッド内で `ChangeDataSourceAsync` メソッドを呼び出し、データ ソース項目の基になるデータ ソースをパラメーターとして渡すことをお勧めします。
+:::
+
+### 認証
+
+Amazon Athena の認証は、AWS 認証情報を使用してサーバー側で処理されます。認証オプションの詳細については、「[認証](../authentication.md#amazon-web-services)」トピックを参照してください。
+
+
+
+
+```csharp
+public class AuthenticationProvider: IRVAuthenticationProvider
+{
+ public Task ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ IRVDataSourceCredential userCredential = null;
+ if (dataSource is RVS3DataSource)
+ {
+ userCredential = new RVAmazonWebServicesCredentials("key", "secret");
+ }
+ return Task.FromResult(userCredential);
+ }
+}
+```
+
+
+
+
+```javascript
+const authenticationProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVS3DataSource) {
+ return new reveal.RVAmazonWebServicesCredentials("key", "secret");
+ }
+ return null;
+}
+```
+
+
+
+
+```ts
+const authenticationProvider = async (userContext:IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVS3DataSource) {
+ return new RVAmazonWebServicesCredentials("key", "secret");
+ }
+ return null;
+}
+```
+
+
+
+
+```java
+public class AuthenticationProvider implements IRVAuthenticationProvider {
+ @Override
+ public IRVDataSourceCredential resolveCredentials(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVS3DataSource) {
+ return new RVAmazonWebServicesCredentials("key", "secret");
+ }
+ return null;
+ }
+}
+```
+
+
+
+
+## クライアント側の実装
+
+クライアント側では、データ ソースの ID、タイトル、サブタイトルなどの基本プロパティを指定するだけです。実際の接続構成はサーバー上で行われます。
+
+### データ ソースの作成
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+const revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ // Add data source here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、`RVAthenaDataSource` オブジェクトの新しいインスタンスを作成します。`title` と `subtitle` プロパティを設定します。`RVAthenaDataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const athenaDS = new $.ig.RVAthenaDataSource();
+ athenaDS.title = "My Athena Data Source";
+ athenaDS.subtitle = "Amazon Athena";
+
+ callback(new $.ig.RevealDataSources([athenaDS], [], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Amazon Athena データ ソースが [データ ソースの選択] ダイアログにリストされます。
+
+
+
+### データ ソース項目の作成
+
+データ ソース項目は、ユーザーが表示形式のために選択できる Athena データ ソース内の特定のデータセットを表します。クライアント側では、ID、タイトル、サブタイトルを指定するだけです。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ // Create the data source
+ const athenaDS = new $.ig.RVAthenaDataSource();
+ athenaDS.title = "My Athena Data Source";
+ athenaDS.subtitle = "Amazon Athena";
+
+ // Create a data source item
+ const athenaDSI = new $.ig.RVAthenaDataSourceItem(athenaDS);
+ athenaDSI.id = "my-data-source-item";
+ athenaDSI.title = "My Athena Data Source Item";
+ athenaDSI.subtitle = "Amazon Athena";
+
+ callback(new $.ig.RevealDataSources([athenaDS], [athenaDSI], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Amazon Athena データ ソース項目が [データ ソースの選択] ダイアログにリストされます。
+
+
+
+## その他のリソース
+
+- [Amazon Athena のドキュメント](https://docs.aws.amazon.com/athena/)
+- [GitHub のサンプル ソース コード](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/Amazon-Athena)
+
+## API リファレンス
+
+
+
+
+* [RVAthenaDataSource](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.Data.Amazon.Athena.RVAthenaDataSource.html) - Amazon Athena データ ソースを表します
+* [RVAthenaDataSourceItem](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.Data.Amazon.Athena.RVAthenaDataSourceItem.html) - Amazon Athena データ ソース項目を表します
+
+
+
+
+* [RVAthenaDataSource](https://help.revealbi.io/api/javascript/latest/classes/rvathenadatasource.html) - Amazon Athena データ ソースを表します
+* [RVAthenaDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvathenadatasourceitem.html) - Amazon Athena データ ソース項目を表します
+
+
+
+
+* [RVAthenaDataSource](https://help.revealbi.io/api/java/latest/com/infragistics/reveal/sdk/api/model/RVAthenaDataSource.html) - Amazon Athena データ ソースを表します
+* [RVAthenaDataSourceItem](https://help.revealbi.io/api/java/latest/com/infragistics/reveal/sdk/api/model/RVAthenaDataSourceItem.html) - Amazon Athena データ ソース項目を表します
+
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/amazon-s3.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/amazon-s3.md
new file mode 100644
index 00000000..709fd355
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/amazon-s3.md
@@ -0,0 +1,53 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Amazon S3 データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、[RVS3DataSource](https://help.revealbi.io/api/javascript/latest/classes/rvgoogledrivedatasource.html) オブジェクトの新しいインスタンスを作成します。`Title`、`Subtitle`、および `Region` プロパティを設定します。`RVS3DataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var s3 = new $.ig.RVS3DataSource();
+ s3.title = "My S3 Server";
+ s3.subtitle = "Amazon S3";
+ s3.region = "region";
+
+ callback(new $.ig.RevealDataSources([s3], [], false));
+};
+```
+
+アプリケーションを実行し、新しい可視化を作成すると、新しく作成された Amazon S3 データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+:::note
+
+`RVS3DataSource` は、Reveal SDK に登録された認証プロバイダーに基づいてフォルダーとファイルを読み込みます。Amazon S3 は `RVAmazonWebServicesCredentials` を使用して認証します。詳細については、[認証](../authentication.md#amazon-web-services)トピックを参照してください。
+
+:::
+
+:::info コードの取得
+
+このサンプルのソース コードは、[GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/Amazon-S3) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/csv.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/csv.md
new file mode 100644
index 00000000..ba81d02d
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/csv.md
@@ -0,0 +1,73 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# CSV データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、[RVWebResourceDataSource](https://help.revealbi.io/api/javascript/latest/classes/rvwebresourcedatasource.html) オブジェクトの新しいインスタンスを作成します。CSV リソースへのアクセスに認証が必要ない場合は、`URL` プロパティを CSV リソースの URL に設定し、`useAnonymousAuthentication` プロパティを `false` に設定します。オプションで、`RVWebResourceDataSource` オブジェクトをコールバックのデータ ソース コレクションに追加して、RevealView の [データ ソース] ダイアログに表示できます。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const webDS = new $.ig.RVWebResourceDataSource();
+ webDS.title = "Web Data Source";
+ webDS.subtitle = "Web Data Source Subtitle";
+ webDS.url = "https://raw.githubusercontent.com/fivethirtyeight/data/master/airline-safety/airline-safety.csv";
+ webDS.useAnonymousAuthentication = true;
+
+ callback(new $.ig.RevealDataSources([webDS], [], false));
+};
+```
+
+アプリケーションを実行し、新しい可視化を作成すると、新しく作成された Web リソース データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+**手順 3** - [データ ソース] ダイアログの **[CSV の設定]** 画面をスキップして CSV データを直接使用するには、[RVWebResourceDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvwebresourcedatasourceitem.html) の新しいインスタンスを作成し、前の手順で作成した `RVWebResourceDataSource` オブジェクトをコンストラクター引数として渡します。次に、[RVCsvDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvcsvdatasourceitem.html) の新しいインスタンスを作成し、`RVWebResourceDataSourceItem` をコンストラクター引数として渡します。`Title`、`Subtitle`、およびその他の必要なプロパティを設定します。`RVCsvDataSourceItem` オブジェクトを作成したら、それをデータ ソース項目コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const webDS = new $.ig.RVWebResourceDataSource();
+ webDS.title = "Web Data Source";
+ webDS.subtitle = "Web Data Source Subtitle";
+ webDS.url = "https://raw.githubusercontent.com/fivethirtyeight/data/master/airline-safety/airline-safety.csv";
+ webDS.useAnonymousAuthentication = true;
+
+ //to skip the "Set up your CSV" dialog and directly use the CSV data
+ const webDSI = new $.ig.RVWebResourceDataSourceItem(webDS);
+ const csvDSI = new $.ig.RVCsvDataSourceItem(webDSI);
+ csvDSI.title = "CSV Data";
+ csvDSI.subtitle = "CSV Data Subtitle";
+
+ callback(new $.ig.RevealDataSources([webDS], [csvDSI], false));
+};
+```
+
+アプリケーションを実行し、新しい可視化を作成すると、新しく作成された CSV データ ソース項目が [データ ソースの選択] ダイアログに表示されます。
+
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは、[GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/Csv) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/databricks.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/databricks.md
new file mode 100644
index 00000000..9c8eabec
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/databricks.md
@@ -0,0 +1,377 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Databricks データ ソース
+
+## 概要
+
+Databricks は、データ エンジニアリング チームとデータ サイエンス チームが大規模なデータ処理、機械学習、分析を共同で行うことができる統合分析プラットフォームです。このトピックでは、Reveal アプリケーションで Databricks データ ソースに接続して、データを視覚化および分析する方法について説明します。
+
+:::important 前提条件
+Reveal で Databricks データ ソースを構成する前に、適切なデータベース ドライバーをインストールする必要があります。
+- Windows/.NET の場合: [Databricks ODBC ドライバー](https://www.databricks.com/spark/odbc-drivers-download)
+- Node.js の場合: [Databricks ODBC ドライバー](https://www.databricks.com/spark/odbc-drivers-download)
+- Java の場合: JDBC ドライバーは Maven 経由で自動的にインストールされます。
+
+これらのドライバーは、Databricks データ ソースへの接続を確立するために不可欠です。インストール後、Databricks のドキュメントに従ってドライバーが適切に構成されていることを確認します。
+:::
+
+## サーバーの構成
+
+### インストール
+
+
+
+
+**手順 1** - Reveal Databricks コネクタ パッケージをインストールします。
+
+ASP.NET アプリケーションの場合、Databricks サポートを有効にするには、別の NuGet パッケージをインストールする必要があります。
+
+```bash
+dotnet add package Reveal.Sdk.Data.Databricks
+```
+
+**手順 2** - アプリケーションに Databricks データ ソースを登録します。
+
+```csharp
+builder.Services.AddControllers().AddReveal( builder =>
+{
+ builder.DataSources.RegisterDatabricks();
+});
+```
+
+
+
+
+Node.js アプリケーションの場合、Databricks データ ソースはメインの Reveal SDK パッケージに既に含まれています。標準の Reveal SDK セットアップ以外に追加のインストールは必要ありません。
+
+
+
+
+Java アプリケーションの場合、Databricks データ ソースはメインの Reveal SDK パッケージに既に含まれています。標準の Reveal SDK セットアップ以外に追加のインストールは必要ありません。
+
+:::danger 重要
+Databricks JDBC ドライバーは Apache Arrow をサポートしています。Java JVM バージョン 11 以降を使用する場合は、JVM 引数に --add-opens java.base/java.nio=ALL-UNNAMED という行を追加してください。この JVM 引数がない場合、ドライバーは動作しません。
+:::
+
+JVM 引数を設定するには、`pom.xml` ファイルに以下を追加してください:
+
+```xml
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ --add-opens java.base/java.nio=ALL-UNNAMED
+
+
+```
+
+この方法は一例です。他にも設定方法は多数ありますので、詳細は関連ドキュメントをご確認ください。
+
+
+
+
+### 接続の構成
+
+
+
+
+```csharp
+// Create a data source provider
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public async Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId, RVDataSourceItem dataSourceItem)
+ {
+ // Required: Update the underlying data source
+ await ChangeDataSourceAsync(userContext, dataSourceItem.DataSource);
+
+ if (dataSourceItem is RVDatabricksDataSourceItem databricksItem)
+ {
+ // Configure specific item properties as needed
+ if (databricksItem.Id == "databricks_sales_data")
+ {
+ databricksItem.Table = "sales_data";
+ }
+ }
+
+ return dataSourceItem;
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVDatabricksDataSource databricksDS)
+ {
+ // Configure connection properties
+ databricksDS.Host = "your-databricks-instance.cloud.databricks.com";
+ databricksDS.HttpPath = "/sql/1.0/warehouses/abc123";
+ databricksDS.Port = 443;
+ databricksDS.Database = "default";
+ databricksDS.Schema = "public";
+ }
+
+ return dataSource;
+ }
+}
+```
+
+
+
+
+```javascript
+// Create data source providers
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ // Required: Update the underlying data source
+ await dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ if (dataSourceItem instanceof reveal.RVDatabricksDataSourceItem) {
+ // Configure specific item properties if needed
+ if (dataSourceItem.id === "databricks_sales_data") {
+ dataSourceItem.table = "sales_data";
+ }
+ }
+
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVDatabricksDataSource) {
+ // Configure connection properties
+ dataSource.host = "your-databricks-instance.cloud.databricks.com";
+ dataSource.httpPath = "/sql/1.0/warehouses/abc123";
+ dataSource.port = 443;
+ dataSource.database = "default";
+ dataSource.schema = "public";
+ }
+
+ return dataSource;
+}
+```
+
+
+
+
+```typescript
+// Create data source providers
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ // Required: Update the underlying data source
+ await dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ if (dataSourceItem instanceof RVDatabricksDataSourceItem) {
+ // Configure specific item properties if needed
+ if (dataSourceItem.id === "databricks_sales_data") {
+ dataSourceItem.table = "sales_data";
+ }
+ }
+
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVDatabricksDataSource) {
+ // Configure connection properties
+ dataSource.host = "your-databricks-instance.cloud.databricks.com";
+ dataSource.httpPath = "/sql/1.0/warehouses/abc123";
+ dataSource.port = 443;
+ dataSource.database = "default";
+ dataSource.schema = "public";
+ }
+
+ return dataSource;
+}
+```
+
+
+
+
+```java
+// Create a data source provider
+public class DataSourceProvider implements IRVDataSourceProvider {
+
+ public RVDataSourceItem changeDataSourceItem(IRVUserContext userContext, String dashboardId, RVDataSourceItem dataSourceItem) {
+ // Required: Update the underlying data source
+ changeDataSource(userContext, databricksItem.getDataSource());
+
+ if (dataSourceItem instanceof RVDatabricksDataSourceItem databricksItem) {
+ // Configure specific item properties if needed
+ if ("databricks_sales_data".equals(databricksItem.getId())) {
+ databricksItem.setTable("sales_data");
+ }
+ }
+
+ return dataSourceItem;
+ }
+
+ public RVDashboardDataSource changeDataSource(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVDatabricksDataSource databricksDS) {
+ // Configure connection properties
+ databricksDS.setHost("your-databricks-instance.cloud.databricks.com");
+ databricksDS.setHttpPath("/sql/1.0/warehouses/abc123");
+ databricksDS.setPort(443);
+ databricksDS.setDatabase("default");
+ databricksDS.setSchema("public");
+ }
+
+ return dataSource;
+ }
+}
+```
+
+
+
+
+:::danger Important
+`ChangeDataSourceAsync` メソッドでデータ ソースに加えられた変更は、`ChangeDataSourceItemAsync` メソッドには引き継がれません。どちらの方法でも、データ ソース プロパティを**更新する必要があります**。上記の例に示すように、`ChangeDataSourceItemAsync` メソッド内で `ChangeDataSourceAsync` メソッドを呼び出し、データ ソース項目の基になるデータ ソースをパラメーターとして渡すことをお勧めします。
+:::
+
+### 認証
+
+Databricks の認証は、個人アクセス トークンを使用してサーバー側で処理されます。認証オプションの詳細については、「[認証](../authentication.md)」トピックを参照してください。
+
+
+
+
+```csharp
+public class AuthenticationProvider: IRVAuthenticationProvider
+{
+ public Task ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ IRVDataSourceCredential userCredential = null;
+ if (dataSource is RVDatabricksDataSource)
+ {
+ // Use Personal Access Token
+ userCredential = new RVBearerTokenDataSourceCredential("your_personal_access_token", "your_userid");
+ }
+ return Task.FromResult(userCredential);
+ }
+}
+```
+
+
+
+
+```javascript
+const authenticationProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVDatabricksDataSource) {
+ // Use Personal Access Token
+ return new reveal.RVBearerTokenDataSourceCredential("your_personal_access_token", "your_userid");
+ }
+ return null;
+}
+```
+
+
+
+
+```ts
+const authenticationProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVDatabricksDataSource) {
+ // Use Personal Access Token
+ return new RVBearerTokenDataSourceCredential("your_personal_access_token", "your_userid");
+ }
+ return null;
+}
+```
+
+
+
+
+```java
+public class AuthenticationProvider implements IRVAuthenticationProvider {
+ @Override
+ public IRVDataSourceCredential resolveCredentials(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVDatabricksDataSource) {
+ // Use Personal Access Token
+ return new RVBearerTokenDataSourceCredential("your_personal_access_token", "your_userid");
+ }
+ return null;
+ }
+}
+```
+
+
+
+
+## クライアント側の実装
+
+クライアント側では、データ ソースの ID、タイトル、サブタイトルなどの基本プロパティを指定するだけです。実際の接続構成はサーバー上で行われます。
+
+### データ ソースの作成
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+const revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ // Add data source here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、`RVDatabricksDataSource` オブジェクトの新しいインスタンスを作成します。`title` と `subtitle` プロパティを設定します。`RVDatabricksDataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const databricksDS = new $.ig.RVDatabricksDataSource();
+ databricksDS.title = "Databricks";
+ databricksDS.subtitle = "Data Source";
+
+ callback(new $.ig.RevealDataSources([databricksDS], [], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Databricks データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+### データ ソース項目の作成
+
+データ ソース項目は、ユーザーが表示形式のために選択できる Databricks データ ソース内の特定のデータセットを表します。クライアント側では、ID、タイトル、サブタイトルを指定するだけです。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ // Create the data source
+ const databricksDS = new $.ig.RVDatabricksDataSource();
+ databricksDS.title = "My Databricks Datasource";
+ databricksDS.subtitle = "Databricks";
+
+ // Create a data source item
+ const databricksDSI = new $.ig.RVDatabricksDataSourceItem(databricksDS);
+ databricksDSI.id = "databricks_sales_data";
+ databricksDSI.title = "My Databricks Datasource Item";
+ databricksDSI.subtitle = "Databricks";
+
+ callback(new $.ig.RevealDataSources([databricksDS], [databricksDSI], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Databricks データ ソース項目が [データ ソースの選択] ダイアログに表示されます。
+
+
+
+## その他のリソース
+
+- [Databricks SQL ドキュメント](https://docs.databricks.com/sql/index.html)
+- [Databricks ODBC ドライバー](https://www.databricks.com/spark/odbc-drivers-download)
+- [Databricks JDBC ドライバー](https://www.databricks.com/spark/jdbc-drivers-download)
+- [GitHub のサンプル ソース コード](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/Databricks)
+
+## API リファレンス
+
+
+
+
+* [RVDatabricksDataSource](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.Data.Databricks.RVDatabricksDataSource.html) - Databricks データ ソースを表します
+* [RVDatabricksDataSourceItem](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.Data.Databricks.RVDatabricksDataSourceItem.html) - Databricks データ ソース項目を表します
+
+
+
+
+* [RVDatabricksDataSource](https://help.revealbi.io/api/javascript/latest/classes/rvdatabricksdatasource.html) - Databricks データ ソースを表します
+* [RVDatabricksDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvdatabricksdatasourceitem.html) - Databricks データ ソース項目を表します
+
+
+
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/elasticsearch.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/elasticsearch.md
new file mode 100644
index 00000000..287a4693
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/elasticsearch.md
@@ -0,0 +1,318 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Elasticsearch データ ソース
+
+## 概要
+
+Elasticsearch は、増え続けるユースケースに対応できる、分散型の RESTful 検索および分析エンジンです。Elastic Stack の中核として、データを一元的に保存し、高速な検索、微調整された関連性、簡単にスケールする強力な分析を実現します。Elasticsearch SQL を使用すると、Elasticsearch インデックスに対して SQL クエリを実行でき、使い慣れた SQL 構文を使用してデータを操作しやすくなります。このトピックでは、Reveal アプリケーションで Elasticsearch データ ソースに接続して、データを視覚化および分析する方法について説明します。
+
+## サーバーの構成
+
+### インストール
+
+
+
+
+ASP.NET アプリケーションの場合、Elasticsearch サポートを有効にするには、別の NuGet パッケージをインストールする必要があります。
+
+```bash
+dotnet add package Reveal.Sdk.Data.Elasticsearch
+```
+
+次に、アプリケーションに Elasticsearch プロバイダーを登録します。
+
+```csharp
+builder.Services.AddControllers().AddReveal( builder =>
+{
+ builder.DataSources.RegisterElasticsearch();
+});
+```
+
+
+
+
+Node.js アプリケーションの場合、Elasticsearch データ ソースはメインの Reveal SDK パッケージにすでに含まれています。標準の Reveal SDK セットアップ以外に追加のインストールは必要ありません。
+
+
+
+
+### 接続の構成
+
+Elasticsearch のすべての接続プロパティは、データ ソース プロバイダーの実装を通じてサーバー側で構成されます。
+
+
+
+
+```csharp
+// データ ソース プロバイダーを作成する
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public async Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId, RVDataSourceItem dataSourceItem)
+ {
+ // 必須: 基になるデータ ソースを更新する
+ await ChangeDataSourceAsync(userContext, dataSourceItem.DataSource);
+
+ if (dataSourceItem is RVElasticsearchDataSourceItem elasticsearchDataSourceItem)
+ {
+ // 特定のインデックスを使用して構成する
+ if (dataSourceItem.Id == "elasticsearchDataSourceItemId")
+ {
+ elasticsearchDataSourceItem.Index = "kibana_sample_data_ecommerce";
+ }
+
+ // またはカスタム SQL クエリを使用して構成する
+ if (dataSourceItem.Id == "elasticsearchDataSourceItemCustomQueryId")
+ {
+ elasticsearchDataSourceItem.CustomQuery = "SELECT * FROM \"kibana_sample_data_ecommerce\" WHERE \"customer_first_name\" = 'Eddie'";
+ }
+
+ // フィールドの複数値処理を構成する
+ elasticsearchDataSourceItem.FieldMultiValueLeniency = true;
+ }
+
+ return dataSourceItem;
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVElasticsearchDataSource elasticsearchDataSource)
+ {
+ // 接続プロパティを構成する
+ elasticsearchDataSource.Nodes = new List { "http://localhost:9200" };
+
+ // オプション: SSL/TLS 証明書フィンガープリントを構成する
+ elasticsearchDataSource.CertificateFingerprint = "your_certificate_fingerprint";
+
+ // オプション: データ ソース レベルでフィールドの複数値処理を構成する
+ elasticsearchDataSource.FieldMultiValueLeniency = true;
+ }
+
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+
+
+
+```javascript
+// データ ソース プロバイダーを作成する
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ // 必須: 基になるデータ ソースを更新する
+ await dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ if (dataSourceItem instanceof reveal.RVElasticsearchDataSourceItem) {
+ // 特定のインデックスを使用して構成する
+ if (dataSourceItem.id === "elasticsearchDataSourceItemId") {
+ dataSourceItem.index = "kibana_sample_data_ecommerce";
+ }
+
+ // またはカスタム SQL クエリを使用して構成する
+ if (dataSourceItem.id === "elasticsearchDataSourceItemCustomQueryId") {
+ dataSourceItem.customQuery = "SELECT * FROM \"kibana_sample_data_ecommerce\" WHERE \"customer_first_name\" = 'Eddie'";
+ }
+
+ // フィールドの複数値処理を構成する
+ dataSourceItem.fieldMultiValueLeniency = true;
+ }
+
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVElasticsearchDataSource) {
+ // 接続プロパティを構成する
+ dataSource.nodes = ["http://localhost:9200"];
+
+ // オプション: SSL/TLS 証明書フィンガープリントを構成する
+ dataSource.certificateFingerprint = "your_certificate_fingerprint";
+
+ // オプション: データ ソース レベルでフィールドの複数値処理を構成する
+ dataSource.fieldMultiValueLeniency = true;
+ }
+
+ return dataSource;
+}
+
+```
+
+
+
+
+```typescript
+// データ ソース プロバイダーを作成する
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ // 必須: 基になるデータ ソースを更新する
+ await dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ if (dataSourceItem instanceof RVElasticsearchDataSourceItem) {
+ // 特定のインデックスを使用して構成する
+ if (dataSourceItem.id === "elasticsearchDataSourceItemId") {
+ dataSourceItem.index = "kibana_sample_data_ecommerce";
+ }
+
+ // またはカスタム SQL クエリを使用して構成する
+ if (dataSourceItem.id === "elasticsearchDataSourceItemCustomQueryId") {
+ dataSourceItem.customQuery = "SELECT * FROM \"kibana_sample_data_ecommerce\" WHERE \"customer_first_name\" = 'Eddie'";
+ }
+
+ // フィールドの複数値処理を構成する
+ dataSourceItem.fieldMultiValueLeniency = true;
+ }
+
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVElasticsearchDataSource) {
+ // 接続プロパティを構成する
+ dataSource.nodes = ["http://localhost:9200"];
+
+ // オプション: SSL/TLS 証明書フィンガープリントを構成する
+ dataSource.certificateFingerprint = "your_certificate_fingerprint";
+
+ // オプション: データ ソース レベルでフィールドの複数値処理を構成する
+ dataSource.fieldMultiValueLeniency = true;
+ }
+
+ return dataSource;
+}
+```
+
+
+
+
+:::danger 重要
+`ChangeDataSourceAsync` メソッドでデータ ソースに加えられた変更は、`ChangeDataSourceItemAsync` メソッドに引き継がれません。両方のメソッドでデータ ソース プロパティを更新する**必要があります**。上記の例に示すように、`ChangeDataSourceItemAsync` メソッド内で `ChangeDataSourceAsync` メソッドを呼び出し、データ ソース項目の基になるデータ ソースをパラメーターとして渡すことをお勧めします。
+:::
+
+### 認証
+
+Elasticsearch の認証は、個人アクセス トークンを使用してサーバー側で処理されます。認証オプションの詳細については、「[認証](../authentication.md#ユーザー名パスワード認証)」トピックを参照してください。
+
+
+
+
+```csharp
+public class AuthenticationProvider: IRVAuthenticationProvider
+{
+ public Task ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ IRVDataSourceCredential userCredential = null;
+
+ if (dataSource is RVElasticsearchDataSource)
+ {
+ userCredential = new RVUsernamePasswordDataSourceCredential("elastic", "your_password");
+ }
+
+ return Task.FromResult(userCredential);
+ }
+}
+```
+
+
+
+
+```javascript
+const authenticationProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVElasticsearchDataSource) {
+ return new reveal.RVUsernamePasswordDataSourceCredential("elastic", "your_password");
+ }
+ return null;
+}
+```
+
+
+
+
+```ts
+const authenticationProvider = async (userContext:IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVElasticsearchDataSource) {
+ return new RVUsernamePasswordDataSourceCredential("elastic", "your_password");
+ }
+ return null;
+}
+```
+
+
+
+
+## クライアント側の実装
+
+クライアント側では、データ ソースの ID、タイトル、サブタイトルなどの基本プロパティを指定するだけです。実際の接続構成はサーバー上で行われます。
+
+### データ ソースの作成
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+const revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ // ここにデータ ソースを追加する
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、`RVElasticsearchDataSource` オブジェクトの新しいインスタンスを作成します。`title` プロパティと `subtitle` プロパティを設定します。`RVElasticsearchDataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const elasticsearchDS = new $.ig.RVElasticsearchDataSource();
+ elasticsearchDS.title = "My Elasticsearch Data Source";
+ elasticsearchDS.subtitle = "Elasticsearch";
+
+ callback(new $.ig.RevealDataSources([elasticsearchDS], [], false));
+};
+```
+
+アプリケーションを実行すると、新しい表示形式を作成すると、新しく作成された Elasticsearch データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+### データ ソース項目の作成
+
+データ ソース項目は、ユーザーが表示形式のために選択できる Elasticsearch データ ソース内の特定のデータセットを表します。クライアント側では、ID、タイトル、サブタイトルを指定するだけです。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ // データ ソースを作成する
+ const elasticsearchDS = new $.ig.RVElasticsearchDataSource();
+ elasticsearchDS.title = "My Elasticsearch Data Source";
+ elasticsearchDS.subtitle = "Elasticsearch";
+
+ // データ ソース アイテムを作成する
+ const elasticsearchDSI = new $.ig.RVElasticsearchDataSourceItem(elasticsearchDS);
+ elasticsearchDSI.id = "my-data-source-item";
+ elasticsearchDSI.title = "My Elasticsearch Data Source Item";
+ elasticsearchDSI.subtitle = "Elasticsearch";
+
+ callback(new $.ig.RevealDataSources([elasticsearchDS], [elasticsearchDSI], false));
+};
+```
+
+アプリケーションを実行すると、新しい表示形式を作成すると、新しく作成された Elasticsearch データ ソース項目が [データ ソースの選択] ダイアログに表示されます。
+
+## その他のリソース
+
+- [Elasticsearch ドキュメント](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html)
+- [Elasticsearch SQL ドキュメント](https://www.elastic.co/guide/en/elasticsearch/reference/current/xpack-sql.html)
+
+## API リファレンス
+
+
+
+
+* [RVElasticsearchDataSource](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.Data.Elasticsearch.RVElasticsearchDataSource.html) - Elasticsearch データ ソースを表します
+* [RVElasticsearchDataSourceItem](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.Data.Elasticsearch.RVElasticsearchDataSourceItem.html) - Elasticsearch データ ソース項目を表します
+
+
+
+
+* [RVElasticsearchDataSource](https://help.revealbi.io/api/javascript/latest/classes/rvelasticsearchdatasource.html) - Elasticsearch データ ソースを表します
+* [RVElasticsearchDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvelasticsearchdatasourceitem.html) - Elasticsearch データ ソース項目を表します
+
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/excel-file.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/excel-file.md
new file mode 100644
index 00000000..75dc9d97
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/excel-file.md
@@ -0,0 +1,159 @@
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Excel ファイル データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+**手順 1** - サーバー アプリケーションで、Excel ファイルを格納するフォルダーを作成します。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+**手順 2** - `RevealEmbedSettings.LocalFileStoragePath` プロパティを**手順 1** で作成したフォルダーの場所に設定します。
+
+
+
+
+```cs
+builder.Services.AddControllers().AddReveal( builder =>
+{
+ builder.AddSettings(settings =>
+ {
+ settings.LocalFileStoragePath = "Data";
+ });
+});
+```
+
+
+
+
+
+```java
+RevealEngineInitializer.initialize(new InitializeParameterBuilder()
+.setLocalFilesStoragePath("data")
+.build());
+```
+
+
+
+
+
+```js
+const revealOptions = {
+ localFileStoragePath: "data"
+}
+app.use('/', reveal(revealOptions));
+```
+
+
+
+
+
+```ts
+const revealOptions: RevealOptions = {
+ localFileStoragePath: "data"
+}
+app.use('/', reveal(revealOptions));
+```
+
+
+
+
+**手順 3** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+まず、`id` を `revealView` に設定した `` タグを定義します。
+
+```html
+
+```
+
+`revealView` を初期化し、イベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], true));
+};
+```
+
+**手順 4** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、`RVLocalFileDataSourceItem` オブジェクトの新しいインスタンスを作成します。`Uri` プロパティを、データ ソースとして使用する Excel ファイルのパス (ファイル名を含む) に設定します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var localFileItem = new $.ig.RVLocalFileDataSourceItem();
+ localFileItem.uri = "local:/Samples.xlsx";
+
+ callback(new $.ig.RevealDataSources([], [], true));
+};
+```
+
+:::caution
+
+Excel ファイルパスの前に `local:/` を付ける必要があります。これは、`RevealEmbedSettings.LocalFileStoragePath` をファイル パスのルートとして使用してファイルを読み込むように Reveal SDK に指示するためです。ルート パス内にサブフォルダーがある場合は、これらのサブフォルダーを `Uri` プロパティに含めるようにしてください。
+
+例:
+* サブフォルダーなし - `RVLocalFileDataSourceItem.Uri = "local:/FileName.xlsx"`
+* サブフォルダーあり - `RVLocalFileDataSourceItem.Uri = "local:/SubFolder/FileName.xlsx"`
+:::
+
+**手順 5** - 前の手順で作成した `RVLocalFileDataSourceItem` インスタンスをコンストラクター引数に指定して、`RVExcelDataSourceItem` オブジェクトの新しいインスタンスを作成し、`Title` プロパティを Excel ファイル内のデータを説明する文字列に設定します。
+
+最後に、`RVExcelDataSourceItem` オブジェクトを `callback` のデータ ソース項目配列に追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var localFileItem = new $.ig.RVLocalFileDataSourceItem();
+ localFileItem.uri = "local:/Samples.xlsx";
+
+ var excelDataSourceItem = new $.ig.RVExcelDataSourceItem(localFileItem);
+ excelDataSourceItem .title = "Local Excel File";
+
+ callback(new $.ig.RevealDataSources([], [excelDataSourceItem], true));
+};
+```
+
+アプリケーションを開始し、新しい表示形式を作成すると、[データ ソースの選択] ダイアログに新しく作成された Excel ファイル データ ソースが表示されます。
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/ExcelFile) にあります。
+
+:::
+
+:::caution
+
+サーバーがクライアント アプリケーションとは異なる URL で実行されている場合は、`$.ig.RevealSdkSettings.setBaseUrl` を呼び出す必要があります。サーバー アプリケーションとクライアント アプリケーションの両方が同じ URL で実行されている場合、このメソッドは必要ありません。このメソッドを呼び出す必要があるのは 1 回だけです。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/google-big-query.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/google-big-query.md
new file mode 100644
index 00000000..cbbf941b
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/google-big-query.md
@@ -0,0 +1,71 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Google BigQuery データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、[RVBigQueryDataSource](https://help.revealbi.io/api/javascript/latest/classes/rvbigquerydatasource.html) オブジェクトの新しいインスタンスを作成します。`Title` プロパティを設定します。`RVBigQueryDataSource` オブジェクトを作成したら、それをデータ ソース項目コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var bigQuery = new $.ig.RVBigQueryDataSource();
+ bigQuery.title = "My Big Query";
+
+ callback(new $.ig.RevealDataSources([bigQuery], [], false));
+};
+```
+アプリケーションを実行し、新しい可視化を作成すると、新しく作成された Big Query データ ソースが [データ ソースの選択] ダイアログに 表示されます。
+
+
+
+:::note
+
+`RVBigQueryDataSource` は、Reveal SDK に登録された認証プロバイダーに基づいてテーブルを読み込みます。Google Big Query は `RVBearerTokenDataSourceCredential` を使用して認証します。詳細については、[認証](../authentication.md#ベアラー-トークン認証)トピックを参照してください。
+
+:::
+
+**手順 3** - [RVBigQueryDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvbigquerydatasourceitem.html) オブジェクトの新しいインスタンスを作成して、新しい Big Query データ ソース項目を作成します。`Title` および `Subtitle` プロパティの値を指定します。`RVBigQueryDataSourceItem` オブジェクトを作成したら、それをデータ ソース項目コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var bigQuery = new $.ig.RVBigQueryDataSource();
+ bigQuery.title = "My Big Query";
+ bigQuery.subtitle = "My Big Query Subtitle";
+
+ var bigQueryItem = new $.ig.RVBigQueryDataSourceItem(bigQuery);
+ bigQueryItem.title = "My Big Query Item";
+ bigQueryItem.subtitle = "My Big Query Item Subtitle";
+
+ callback(new $.ig.RevealDataSources([bigQuery], [bigQueryItem], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Big Query データ ソース項目が [データ ソースの選択] ダイアログに表示されます。
+
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは、[GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/BigQuery-ServiceAccount) にあります。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/google-sheets.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/google-sheets.md
new file mode 100644
index 00000000..e320b20d
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/google-sheets.md
@@ -0,0 +1,71 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Google スプレッドシート データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、[RVGoogleDriveDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvgoogledrivedatasourceitem.html) オブジェクトの新しいインスタンスを作成します。`Identifier` プロパティを Google スプレッドシート ID に設定します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ //get file from google drive
+ const googleDriveDSI = new $.ig.RVGoogleDriveDataSourceItem();
+ googleDriveDSI.identifier = "file_identifier";
+
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+`Identifier` とも呼ばれる Google スプレッドシート ID は、Google スプレッドシートで作成する各スプレッドシートの一意の識別子です。`Identifier` を見つける最も簡単な方法は、スプレッドシートの URL を確認することです。URL では、スプレッドシート ID は、URL の「/d/」部分の後に続く文字と数字の文字列です。
+
+
+
+この例では、`Identifier` は **1Tv8z8ya_qTfaiRSYv0U_z21nubgzE_-ZskuPbP1VDxA** です。
+
+**手順 3** - [RVGoogleSheetDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvgooglesheetdatasourceitem.html) オブジェクトの新しいインスタンスを作成して、新しい Google スプレッドシート データ ソース項目を作成します。値に対応する `Title`、`Subtitle`、および `Sheet` プロパティを設定します。`RVGoogleSheetDataSourceItem` オブジェクトを作成したら、それをデータ ソース項目コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ //get file from google drive
+ const googleDriveDSI = new $.ig.RVGoogleDriveDataSourceItem();
+ googleDriveDSI.identifier = "file_identifier";
+
+ //indicate the file is a google sheet and set the sheet name
+ const googleSheet = new $.ig.RVGoogleSheetDataSourceItem(googleDriveDSI);
+ googleDriveDSI.title = "My Google Sheet";
+ googleSheet.subtitle = "Google Drive";
+ googleSheet.sheet = "Sheet1";
+
+ callback(new $.ig.RevealDataSources([], [googleSheet], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Google スプレッド データ ソース項目が [データ ソースの選択] ダイアログに表示されます。
+
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは、[GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/GoogleSheets-ServiceAccount) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/amazon-athena-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/amazon-athena-data-source-item.jpg
new file mode 100644
index 00000000..c174b39e
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/amazon-athena-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/amazon-athena-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/amazon-athena-data-source.jpg
new file mode 100644
index 00000000..27d53bd9
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/amazon-athena-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/amazon-s3-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/amazon-s3-data-source.jpg
new file mode 100644
index 00000000..a9a6a53a
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/amazon-s3-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/big-query-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/big-query-data-source-item.jpg
new file mode 100644
index 00000000..88d006e7
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/big-query-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/big-query-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/big-query-data-source.jpg
new file mode 100644
index 00000000..3c477913
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/big-query-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/csv-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/csv-data-source-item.jpg
new file mode 100644
index 00000000..e79cab50
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/csv-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/databricks-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/databricks-data-source-item.jpg
new file mode 100644
index 00000000..97566fe5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/databricks-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/databricks-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/databricks-data-source.jpg
new file mode 100644
index 00000000..e77728d2
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/databricks-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-data-source.jpg
new file mode 100644
index 00000000..870c2791
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-folder-java.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-folder-java.jpg
new file mode 100644
index 00000000..8eb9ec2c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-folder-java.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-folder-node.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-folder-node.jpg
new file mode 100644
index 00000000..adf07293
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-folder-node.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-folder.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-folder.jpg
new file mode 100644
index 00000000..3285f638
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/excel-file-folder.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/google-sheets-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/google-sheets-data-source.jpg
new file mode 100644
index 00000000..fbf7f3b3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/google-sheets-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/google-sheets-url-identifier.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/google-sheets-url-identifier.jpg
new file mode 100644
index 00000000..e6903ca4
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/google-sheets-url-identifier.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/json-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/json-data-source-item.jpg
new file mode 100644
index 00000000..22270492
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/json-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mariadb-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mariadb-data-source-item.jpg
new file mode 100644
index 00000000..7cb98a6f
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mariadb-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mariadb-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mariadb-data-source.jpg
new file mode 100644
index 00000000..fbd55f7f
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mariadb-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mongodb-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mongodb-data-source-item.jpg
new file mode 100644
index 00000000..e406c00b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mongodb-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mongodb-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mongodb-data-source.jpg
new file mode 100644
index 00000000..2595182d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mongodb-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/ms-sql-server-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/ms-sql-server-data-source-item.jpg
new file mode 100644
index 00000000..ba0d63b5
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/ms-sql-server-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/ms-sql-server-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/ms-sql-server-data-source.jpg
new file mode 100644
index 00000000..067c0bc3
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/ms-sql-server-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mysql-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mysql-data-source-item.jpg
new file mode 100644
index 00000000..eb4ff794
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mysql-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mysql-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mysql-data-source.jpg
new file mode 100644
index 00000000..c4b8b51c
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/mysql-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/oracle-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/oracle-data-source-item.jpg
new file mode 100644
index 00000000..bb0c69e0
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/oracle-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/oracle-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/oracle-data-source.jpg
new file mode 100644
index 00000000..f7e1f68d
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/oracle-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/postgres-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/postgres-data-source-item.jpg
new file mode 100644
index 00000000..a6a30f49
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/postgres-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/postgres-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/postgres-data-source.jpg
new file mode 100644
index 00000000..7d320261
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/postgres-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/rest-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/rest-data-source.jpg
new file mode 100644
index 00000000..2f79c478
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/rest-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/snowflake-data-source-item.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/snowflake-data-source-item.jpg
new file mode 100644
index 00000000..c2124e12
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/snowflake-data-source-item.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/snowflake-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/snowflake-data-source.jpg
new file mode 100644
index 00000000..266e3f9b
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/snowflake-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/web-resource-data-source.jpg b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/web-resource-data-source.jpg
new file mode 100644
index 00000000..83e36d00
Binary files /dev/null and b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/images/web-resource-data-source.jpg differ
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/in-memory-data.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/in-memory-data.md
new file mode 100644
index 00000000..8e07db12
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/in-memory-data.md
@@ -0,0 +1,299 @@
+# インメモリ データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+Reveal SDK を使用すると、実行時に生成されたデータを使用してダッシュボードを作成できます。このデータは通常、ASP.NET Web API サーバー アプリケーション内で使用されるビジネス オブジェクト (POCO クラス) によってサポートされます。このタイプのデータは、**インメモリ データ**と呼ばれます。
+
+アプリケーションのインメモリ データを Reveal SDK のデータ ソース項目として追加するには、主に 3 つの手順があります。
+
+**手順 1** - ASP.NET Web API サーバー アプリケーションで、`IRVDataProvider` を実装するクラスを作成します。このクラスは、Reveal SDK に返される実際のインメモリ データを提供します。`RVInMemoryDataSourceItem.DatasetId` プロパティをチェックして、返すデータを確認する必要があります。
+
+```cs
+public class MyInMemoryDataProvider: IRVDataProvider
+{
+ public Task
GetData(IRVUserContext userContext, RVInMemoryDataSourceItem dataSourceItem)
+ {
+ if (dataSourceItem.DatasetId == "MyDataSetId")
+ {
+ return Task.FromResult(new RVInMemoryData(your-data));
+ }
+ else
+ {
+ throw new Exception("Invalid datasetId");
+ }
+ }
+}
+```
+
+`GetData` メソッドは、`Task` を返します。つまり、使用するインメモリ データはすべて `RVInMemoryData` オブジェクトでラップする必要があります。インメモリ データをコンストラクター引数に指定して `RVInMemoryData` オブジェクトの新しいインスタンスを作成するだけです。
+
+**手順 2** - `RevealSetupBuilder.AddDataProvider` メソッドを使用して、作成した `IRVDataProvider` を `RevealSetupBuilder` に追加するよう、`Program.cs` ファイル の `AddReveal` メソッドを更新します。
+
+```cs
+builder.Services.AddControllers().AddReveal( builder =>
+{
+ builder.AddDataProvider();
+});
+```
+
+**手順 3** - `RevealView.onDataSourcesRequested` イベント内で `$.ig.RVInMemoryDataSourceItem` を作成します。
+
+`RevealView.onDataSourcesRequested` にイベント ハンドラーを追加します。
+
+まず、`id` を `revealView` に設定した `` タグを定義します。
+
+```html
+
+```
+
+次に、イベント ハンドラーで、`$.ig.RVInMemoryDataSourceItem` オブジェクトの新しいインスタンスを作成し、パラメーターとして一意の名前 / ID を指定します。この ID は、`IRVDataProvider` で、要求しているデータはどのデータ ソースかを示すために使用されます。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+
+ var inMemoryDataSourceItem = new $.ig.RVInMemoryDataSourceItem("MyDataSetId");
+ inMemoryDataSourceItem.title = "My Data";
+
+ callback(new $.ig.RevealDataSources([], [inMemoryDataSourceItem], true));
+};
+```
+
+:::caution
+
+サーバーがクライアント アプリケーションとは異なる URL で実行されている場合は、`$.ig.RevealSdkSettings.setBaseUrl` を呼び出す必要があります。サーバー アプリケーションとクライアント アプリケーションの両方が同じ URL で実行されている場合、このメソッドは必要ありません。このメソッドを呼び出す必要があるのは 1 回だけです。
+
+:::
+
+## 例: インメモリ データ ソースの実装
+
+### ビジネス オブジェクトの作成
+
+ASP.NET Web API サーバー アプリケーションで、`Product`、`Seller`、および `Sale` の 3 つのビジネス オブジェクトを作成します。これらのオブジェクトは、ダッシュボードに表示されるデータを保持するために使用されます。
+
+```cs
+public class Product
+{
+ public string Name { get; set; } = string.Empty;
+ public double UnitPrice { get; set; }
+}
+
+public class Seller
+{
+ public string Name { get; set; } = string.Empty;
+ public string City { get; set; } = string.Empty;
+}
+
+public class Sale
+{
+ internal Product Product { get; set; } = new Product();
+
+ internal Seller Seller { get; set; } = new Seller();
+
+ public string SalesPerson
+ {
+ get { return Seller.Name; }
+ set { Seller.Name = value; }
+ }
+
+ public DateTime Date { get; set; }
+
+ public string City
+ {
+ get { return Seller.City; }
+ set { Seller.City = value; }
+ }
+
+ public string ProductName
+ {
+ get { return Product.Name; }
+ set { Product.Name = value; }
+ }
+
+ internal double Value { get; set; }
+
+ internal string Quarter { get; set; } = string.Empty;
+
+ public int NumberOfUnits { get; set; }
+
+ public double UnitPrice
+ {
+ get { return Product.UnitPrice; }
+ set { Product.UnitPrice = value; }
+ }
+
+ public int AmountOfSale
+ {
+ get { return (int)UnitPrice * NumberOfUnits; }
+ set { Product.UnitPrice = value / NumberOfUnits; }
+ }
+}
+```
+
+### インメモリ データの生成
+
+次に、Reveal ダッシュボードの構築に使用されるデータを生成する必要があります。このために、ダッシュボードで使用するランダム データを生成する `SalesDataGenerator` というヘルパー クラスを作成します。
+
+```cs
+public class SalesDataGenerator
+{
+ private static string[] _products = new string[4] { "Apple", "Grape", "Orage", "Banana" };
+ private static string[] _sellerNames = new string[8] { "Ellen Adams", "Lisa Andrews", "William Fox", "Walter Harp", "Jessica Oxley", "Misty Shock", "Chris Meyer", "Jay Calvin" };
+ private static string[] _cities = new string[6] { "Tokyo", "Shanghai", "Beijing", "Singapore", "New York", "Seoul" };
+ private static readonly Random Random = new Random();
+ public static List
GenerateSales(int numberOfSales)
+ {
+ List sales = new List();
+
+ for (double i = 0; i < numberOfSales; i++)
+ {
+ Sale sale = new Sale
+ {
+ Quarter = "Q " + i,
+ Value = GetRandomPrice(),
+ Date = GetRandomDate(),
+ Product = GerRandomProduct(),
+ NumberOfUnits = GetRandomNumUnits(),
+ Seller = GetRandomSeller()
+ };
+ sales.Add(sale);
+ }
+ return sales;
+ }
+
+ private static Seller GetRandomSeller()
+ {
+ return new Seller
+ {
+ City = GetRandomCity(),
+ Name = GetRandomSellerName()
+ };
+ }
+
+ private static string GetRandomSellerName()
+ {
+ Random a = new Random(Random.Next());
+ int length = _sellerNames.Length;
+ int RandomMaxLength = a.Next(length) % 2 == 0 ? a.Next(length) : length;
+ return _sellerNames[a.Next(RandomMaxLength)];
+ }
+
+ private static string GetRandomCity()
+ {
+ Random a = new Random(Random.Next());
+ int length = _cities.Length;
+ int RandomMaxLength = a.Next(length) % 2 == 0 ? a.Next(length) : length;
+ return _cities[a.Next(RandomMaxLength)];
+ }
+
+ private static int GetRandomNumUnits()
+ {
+ Random a = new Random(Random.Next());
+ return a.Next(1, 100);
+ }
+
+ private static Product GerRandomProduct()
+ {
+ return new Product
+ {
+ Name = GetRandomProductName(),
+ UnitPrice = GetRandomPrice()
+ };
+ }
+
+ private static double GetRandomPrice()
+ {
+ Random a = new Random(Random.Next());
+ return a.NextDouble() * 1000;
+ }
+
+ private static string GetRandomProductName()
+ {
+ Random a = new Random(Random.Next());
+ int length = _products.Length;
+ int RandomMaxLength = a.Next(length) % 2 == 0 ? a.Next(length) : length;
+ return _products[a.Next(RandomMaxLength)];
+ }
+
+ private static DateTime GetRandomDate()
+ {
+ Random a = new Random(Random.Next());
+ int day = a.Next(1, 28);
+ int month = a.Next(1, 13);
+ int year = a.Next(2016, 2020);
+
+ return new DateTime(year, month, day);
+ }
+}
+```
+
+### データ プロバイダーの作成
+
+ダッシュボードで使用するデータを作成したので、次の手順は、そのデータを Reveal SDK で利用できるようにすることです。これを行うには、`IRVDataProvider` を実装する新しいクラスを作成する必要があります。このインターフェイスは、Reveal SDK 内のインメモリ データの実装に特に使用されます。
+
+`MyInMemoryDataProvider` という新しいクラスを作成し、`IRVDataProvider` インターフェイスを実装しましょう。`_salesInMemoryData` という名前の変数を定義し、`SalesDataGenerator` を使用して生成した 10,000 個のデータ レコードを参照していることに注意してください。
+
+```cs
+public class MyInMemoryDataProvider: IRVDataProvider
+{
+ RVInMemoryData _salesInMemoryData = new RVInMemoryData(SalesDataGenerator.GenerateSales(10000));
+
+ public Task GetData(IRVUserContext userContext, RVInMemoryDataSourceItem dataSourceItem)
+ {
+ if (dataSourceItem.DatasetId == "SalesRecords")
+ {
+ return Task.FromResult(_salesInMemoryData);
+ }
+ else
+ {
+ throw new Exception("Invalid datasetId");
+ }
+ }
+}
+```
+
+ご覧のとおり、`GetData` メソッドでは、`DatasetId` で特定の値をチェックしています。この ID が `SalesRecords` データ ソース項目と一致する場合、ダッシュボードのデータ ソースとして `_salesInMemoryData` 変数に格納されているインメモリ ビジネス オブジェクト コレクションを使用します。
+
+データとデータ プロバイダーができたので、`RevealSetupBuilder.AddDataProvider` メソッドを使用して、作成した `IRVDataProvider` を `RevealSetupBuilder` に追加するよう、`Program.cs` ファイルの `AddReveal` メソッドを更新する必要があります。
+
+```cs
+builder.Services.AddControllers().AddReveal( builder =>
+{
+ builder.AddDataProvider();
+});
+```
+
+ここで、`DataSetId` 値について疑問に思われるかもしれません。これは、次の手順でデータ ソース項目を作成するときに発生します。
+
+### onDataSourcesRequested イベントの処理
+
+次の手順は、`RevealView.onDataSourcesRequested` イベントにイベント ハンドラーを追加することです。
+
+まず、`id` を `revealView` に設定した `` タグを定義します。
+
+```html
+
+```
+
+ここで、`revealView` を初期化し、`RevealView.onDataSourcesRequested` イベントを処理します。この例では、**SalesRecords** の `id` と **SalesRecords** に設定された `title` で新しい `$.ig.RVInMemoryDataSourceItem` を作成しています。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+
+ var inMemoryDSI = new $.ig.RVInMemoryDataSourceItem("SalesRecords");
+ inMemoryDSI.title = "Sales Records";
+
+ callback(new $.ig.RevealDataSources([], [inMemoryDSI], true));
+};
+```
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/InMemory) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/json.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/json.md
new file mode 100644
index 00000000..c701a476
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/json.md
@@ -0,0 +1,94 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# JSON データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、[RVWebResourceDataSource](https://help.revealbi.io/api/javascript/latest/classes/rvwebresourcedatasource.html) オブジェクトの新しいインスタンスを作成します。CSV リソースへのアクセスに認証が必要ない場合は、`URL` プロパティを CSV リソースの URL に設定し、`useAnonymousAuthentication` プロパティを `false` に設定します。オプションで、`RVWebResourceDataSource` オブジェクトをコールバックのデータ ソース コレクションに追加して、RevealView の [データ ソース] ダイアログに表示できます。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const webDS = new $.ig.RVWebResourceDataSource();
+ webDS.title = "Web Data Source";
+ webDS.subtitle = "Web Data Source Subtitle";
+ webDS.url = "https://excel2json.io/api/share/6e0f06b3-72d3-4fec-7984-08da43f56bb9";
+ webDS.useAnonymousAuthentication = true;
+
+ callback(new $.ig.RevealDataSources([webDS], [], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Web リソース データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+**手順 3** - データ ソース ダイアログの **[JSON の設定]** 画面をスキップして JSON データを直接使用するには、[RVWebResourceDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvwebresourcedatasourceitem.html) の新しいインスタンスを作成し、前の手順で作成した `RVWebResourceDataSource` オブジェクトをコンストラクター引数として渡します。次に、[RVJsonDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvjsondatasourceitem.html) の新しいインスタンスを作成し、「RVWebResourceDataSourceItem」 をコンストラクター引数として渡します。`Title` と `Subtitle` プロパティを設定します。最後に、`Config` プロパティをデータの構造を表す JSON 文字列に設定する**必要があります**。このプロセスを簡単にするために、[RVJsonSchemaConfigBuilder](https://help.revealbi.io/api/javascript/latest/classes/rvjsonschemaconfigbuilder.html) クラスを使用して、流暢な API を使用して JSON 構造を構築できます。
+
+`RVJsonDataSourceItem` オブジェクトを作成したら、それをデータ ソース項目コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const webDS = new $.ig.RVWebResourceDataSource();
+ webDS.title = "Web Data Source";
+ webDS.subtitle = "Web Data Source Subtitle";
+ webDS.url = "https://raw.githubusercontent.com/fivethirtyeight/data/master/airline-safety/airline-safety.csv";
+ webDS.useAnonymousAuthentication = true;
+
+ //to skip the "Set up your JSON" dialog and directly use the JSON data
+ const webDSI = new $.ig.RVWebResourceDataSourceItem(webDS);
+ const jsonDSI = new $.ig.RVJsonDataSourceItem(webDSI);
+ jsonDSI.title = "Sales by Category";
+ jsonDSI.subtitle = "Excel2Json";
+ jsonDSI.config = new $.ig.RVJsonSchemaConfigBuilder()
+ .addNumericField("CategoryID")
+ .addStringField("CategoryName")
+ .addStringField("ProductName")
+ .addNumericField("ProductSales")
+ .build();
+
+ callback(new $.ig.RevealDataSources([webDS], [jsonDSI], false));
+};
+```
+
+アプリケーションが実行されたら、新しい3可視化を作成すると、[データ ソースの選択] ダイアログに新しく作成された JSON データ ソース項目が表示されます。
+
+
+
+# ネストされたプロパティの操作
+
+JSON では、データは階層的に編成され、多くの場合、オブジェクトに他のオブジェクトまたは配列が含まれる入れ子構造が特徴です。これらの構造をプログラムでナビゲートするには、ネストされたプロパティを指定できます。これは基本的に、目的のデータにつながるキーまたはインデックスのシーケンスです。
+```js
+const jsonDsItem = new $.ig.RVJsonDataSourceItem(dsItem);
+jsonDsItem.config = new RevealApi.RVJsonSchemaConfigBuilder()
+ .addStringField("fieldA")
+ .addNumericField("fieldB")
+ .addNumericField("/geo/location/lat")
+ .addNumericField("/geo/location/lng")
+ .setIterationDepth(0)
+ .build();
+```
+
+:::info コードの取得
+
+このサンプルのソース コードは、[GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/Json) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/mariadb.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/mariadb.md
new file mode 100644
index 00000000..e92c2c6a
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/mariadb.md
@@ -0,0 +1,290 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# MariaDB Data Source
+
+## Introduction
+
+MariaDB is a community-developed, commercially supported open-source relational database that is a drop-in replacement for MySQL. This topic explains how to connect to MariaDB data sources in your Reveal application to visualize and analyze your data.
+
+
+## Server Configuration
+
+### Installation
+
+
+
+
+**Step 1** - Install the Reveal MariaDB connector package
+
+For ASP.NET applications, you need to install a separate NuGet package to enable MariaDB support:
+
+```bash
+dotnet add package Reveal.Sdk.Data.MariaDB
+```
+
+**Step 2** - Register the MariaDB data source in your application:
+
+```csharp
+builder.Services.AddControllers().AddReveal(builder =>
+{
+ builder.DataSources.RegisterMariaDB();
+});
+```
+
+
+
+
+For Node.js applications, the MariaDB data source is already included in the main Reveal SDK package. No additional installation is required beyond the standard Reveal SDK setup.
+
+
+
+
+
+### Connection Configuration
+
+
+
+
+```csharp
+// Create a data source provider
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public async Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId, RVDataSourceItem dataSourceItem)
+ {
+ // Required: Update the underlying data source
+ await ChangeDataSourceAsync(userContext, dataSourceItem.DataSource);
+
+ if (dataSourceItem is RVMariaDBDataSourceItem mariadbItem)
+ {
+ // Configure specific item properties as needed
+ if (mariadbItem.Id == "mariadb_sales_data")
+ {
+ mariadbItem.Table = "orders";
+ }
+ }
+
+ return dataSourceItem;
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVMariaDBDataSource mariadbDS)
+ {
+ // Configure connection properties
+ mariadbDS.Host = "localhost";
+ mariadbDS.Port = 3306;
+ mariadbDS.Database = "your-db-name";
+ }
+
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+
+
+
+```javascript
+// Create data source providers
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ // Required: Update the underlying data source
+ await dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ if (dataSourceItem instanceof reveal.RVMariaDBDataSourceItem) {
+ // Configure specific item properties if needed
+ if (dataSourceItem.id === "mariadb_sales_data") {
+ dataSourceItem.table = "orders";
+ }
+ }
+
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVMariaDBDataSource) {
+ // Configure connection properties
+ dataSource.host = "localhost";
+ dataSource.port = 3306;
+ dataSource.database = "your-db-name";
+ }
+
+ return dataSource;
+}
+```
+
+
+
+
+```typescript
+// Create data source providers
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ // Required: Update the underlying data source
+ await dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ if (dataSourceItem instanceof RVMariaDBDataSourceItem) {
+ // Configure specific item properties if needed
+ if (dataSourceItem.id === "mariadb_sales_data") {
+ dataSourceItem.table = "orders";
+ }
+ }
+
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVMariaDBDataSource) {
+ // Configure connection properties
+ dataSource.host = "localhost";
+ dataSource.port = 3306;
+ dataSource.database = "your-db-name";
+ }
+
+ return dataSource;
+}
+```
+
+
+
+
+
+:::danger Important
+Any changes made to the data source in the `ChangeDataSourceAsync` method are not carried over into the `ChangeDataSourceItemAsync` method. You **must** update the data source properties in both methods. We recommend calling the `ChangeDataSourceAsync` method within the `ChangeDataSourceItemAsync` method passing the data source item's underlying data source as the parameter as shown in the examples above.
+:::
+
+### Authentication
+
+Authentication for MariaDB is typically handled with username and password. For detailed information on authentication options, see the [Authentication](web/authentication.md) topic.
+
+
+
+
+```csharp
+public class AuthenticationProvider : IRVAuthenticationProvider
+{
+ public Task ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ IRVDataSourceCredential userCredential = null;
+ if (dataSource is RVMariaDBDataSource)
+ {
+ userCredential = new RVUsernamePasswordDataSourceCredential("your_username", "your_password");
+ }
+ return Task.FromResult(userCredential);
+ }
+}
+```
+
+
+
+
+```javascript
+const authenticationProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVMariaDBDataSource) {
+ return new reveal.RVUsernamePasswordDataSourceCredential("your_username", "your_password");
+ }
+ return null;
+}
+```
+
+
+
+
+```ts
+const authenticationProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVMariaDBDataSource) {
+ return new RVUsernamePasswordDataSourceCredential("your_username", "your_password");
+ }
+ return null;
+}
+```
+
+
+
+
+
+## Client-Side Implementation
+
+On the client side, you only need to specify basic properties like ID, title, and subtitle for the data source. The actual connection configuration happens on the server.
+
+### Creating Data Sources
+
+**Step 1** - Add an event handler for the `RevealView.onDataSourcesRequested` event.
+
+```js
+const revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ // Add data source here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**Step 2** - In the `RevealView.onDataSourcesRequested` event handler, create a new instance of the `RVMariaDBDataSource` object. Set the `title` and `subtitle` properties. After you have created the `RVMariaDBDataSource` object, add it to the data sources collection.
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const mariadbDS = new $.ig.RVMariaDBDataSource();
+ mariadbDS.title = "MariaDB";
+ mariadbDS.subtitle = "Data Source";
+
+ callback(new $.ig.RevealDataSources([mariadbDS], [], false));
+};
+```
+
+When the application runs, create a new Visualization and you will see the newly created MariaDB data source listed in the "Select a Data Source" dialog.
+
+
+
+### Creating Data Source Items
+
+Data source items represent specific tables or datasets within your MariaDB data source that users can select for visualization. On the client side, you only need to specify ID, title, and subtitle.
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ // Create the data source
+ const mariadbDS = new $.ig.RVMariaDBDataSource();
+ mariadbDS.title = "My MariaDB Datasource";
+ mariadbDS.subtitle = "MariaDB";
+
+ // Create a data source item
+ const mariadbDSI = new $.ig.RVMariaDBDataSourceItem(mariadbDS);
+ mariadbDSI.id = "mariadb_sales_data";
+ mariadbDSI.title = "My MariaDB Datasource Item";
+ mariadbDSI.subtitle = "MariaDB";
+
+ callback(new $.ig.RevealDataSources([mariadbDS], [mariadbDSI], true));
+};
+```
+
+When the application runs, create a new Visualization and you will see the newly created MariaDB data source item listed in the "Select a Data Source" dialog.
+
+
+
+:::warning Error Messages
+MariaDB is MySQL-compatible, and it is common for drivers and error messages to reference MySQL even when connected to MariaDB.
+:::
+
+## Additional Resources
+
+- [MariaDB Documentation](https://mariadb.com/kb/en/documentation/)
+- [Sample Source Code on GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/MariaDB)
+
+## API Reference
+
+
+
+
+* [RVMariaDBDataSource](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.Data.MariaDB.RVMariaDBDataSource.html) - Represents a MariaDB data source
+* [RVMariaDBDataSourceItem](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.Data.MariaDB.RVMariaDBDataSourceItem.html) - Represents a MariaDB data source item
+
+
+
+
+* [RVMariaDBDataSource](https://help.revealbi.io/api/javascript/latest/classes/rvmariadbdatasource.html) - Represents a MariaDB data source
+* [RVMariaDBDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvmariadbdatasourceitem.html) - Represents a MariaDB data source item
+
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/mongodb.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/mongodb.md
new file mode 100644
index 00000000..5f7ba141
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/mongodb.md
@@ -0,0 +1,183 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# MongoDB データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+## クライアント側
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、`RVMongoDBDataSource` オブジェクトの新しいインスタンスを作成します。`Title` プロパティを、MongoDB Server に対応する値に設定します。`RVMongoDBDataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var mongoDataSource = new $.ig.RVMongoDataSource();
+ mongoDataSource.title = "My MongoDB";
+
+ callback(new $.ig.RevealDataSources([mongoDataSource], [], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された MongoDB データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+**手順 3** - `RVMongoDBDataSourceItem` オブジェクトの新しいインスタンスを作成して、新しいデータ ソース項目を追加します。データベース コレクションに対応する `id` および `title` プロパティを設定します。`RVMongoDBDataSourceItem` オブジェクトを作成したら、それをデータ ソース項目コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var mongoDataSource = new $.ig.RVMongoDBDataSource();
+ mongoDataSource.title = "My MongoDB";
+
+ var mongoDsi = new $.ig.RVMongoDBDataSourceItem(mongoDataSource);
+ mongoDsi.id = "MyMongoDatasourceItem";
+ mongoDsi.title = "My MongoDB Item";
+
+ callback(new $.ig.RevealDataSources([mongoDataSource], [mongoDsi], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された MongoDB データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+## サーバー側
+
+**手順 1** - クライアントでデータ ソースとデータ ソース項目を作成しますが、接続情報は指定しません。`id`、`title`、および/または `subtitle` のみを入力してください。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+
+ var mongoDS = new $.ig.RVMongoDBDataSource();
+ mongoDS.id = "MyMongoDBDataSource";
+ mongoDS.title = "My MongoDB";
+
+ var mongoDSI = new $.ig.RVMongoDBDataSourceItem(mongoDS);
+ mongoDSI.id = "MyMongoDBDataSourceItem";
+ mongoDSI.title = "My MongoDB Item";
+
+ callback(new $.ig.RevealDataSources([mongoDS], [mongoDSI], false));
+};
+```
+
+**手順 2** - データ ソース プロバイダーを作成します。この例では、クライアントで定義された **MongoDB** データベースに接続するための接続情報を提供しています。これを実現するために、使用しているデータ ソース/項目のタイプを決定し、オブジェクトで使用可能なプロパティを設定します。
+
+
+
+
+```cs
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId, RVDataSourceItem dataSourceItem)
+ {
+ if (dataSourceItem is RVMongoDBDataSourceItem mongoDsi)
+ {
+ //required: update underlying data source
+ ChangeDataSourceAsync(userContext, mongoDsi.DataSource);
+
+ //only change the table if we have selected our data source item
+ if (mongoDsi.Id == "MyMongoDatasourceItem")
+ {
+ //set the collection
+ mongoDsi.collection = "orders";
+ }
+ }
+ return Task.FromResult(dataSourceItem);
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVMongoDBDataSource mongoDatasource)
+ {
+ mongoDatasource.connectionString = "mongodb+srv://cluster0.ta2xrrt.mongodb.net/";
+ mongoDatasource.database = "test";
+ }
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+
+
+
+
+```js
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ if (dataSourceItem instanceof reveal.RVMongoDBDataSourceItem) {
+
+ //required: update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the collection if we have selected our data source item
+ if (dataSourceItem.id === "MyMongoDBDatasourceItem") {
+ dataSourceItem.collection = "orders";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVMongoDBDataSource) {
+ dataSource.connectionString = "mongodb+srv://cluster0.ta2xrrt.mongodb.net/";
+ dataSource.database = "test";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+```ts
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ if (dataSourceItem instanceof RVMongoDBDataSourceItem) {
+
+ //required: update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the collection if we have selected our data source item
+ if (dataSourceItem.id === "MyMongoDBDatasourceItem") {
+ dataSourceItem.collection = "orders";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVMongoDBDataSource) {
+ dataSource.connectionString = "mongodb+srv://cluster0.ta2xrrt.mongodb.net/";
+ dataSource.database = "test";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/MongoDB) にあります。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/ms-sql-server.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/ms-sql-server.md
new file mode 100644
index 00000000..048d453f
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/ms-sql-server.md
@@ -0,0 +1,224 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# MS SQL Server データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+## クライアント側
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、`RVSqlServerDataSource` オブジェクトの新しいインスタンスを作成します。MS SQL Server に対応する `Title` プロパティを設定します。`RVSqlServerDataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var sqlDataSource = new $.ig.RVSqlServerDataSource();
+ sqlDataSource.title = "My SQL Server";
+
+ callback(new $.ig.RevealDataSources([sqlDataSource], [], false));
+};
+```
+
+アプリケーションを開始し、新しい表示形式を作成すると、[データ ソースの選択] ダイアログに新しく作成された MS SQL Server データ ソースが表示されます。
+
+
+
+**手順 3** - `RVSqlServerDataSourceItem` オブジェクトの新しいインスタンスを作成して、新しいデータ ソース項目を追加します。データベース テーブルに対応する `Id` および `Title` プロパティを設定します。`RVSqlServerDataSourceItem` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var sqlDataSource = new $.ig.RVSqlServerDataSource();
+ sqlDataSource.title = "My SQL Server";
+
+ var sqlServerDsi = new $.ig.RVSqlServerDataSourceItem(sqlDataSource);
+ sqlServerDsi.id = "MySqlServerDatasourceItem";
+ sqlServerDsi.title = "My SQL Server Item";
+
+ callback(new $.ig.RevealDataSources([sqlDataSource], [sqlServerDsi], false));
+};
+```
+
+アプリケーションを開始し、新しい表示形式を作成すると、[データ ソースの選択] ダイアログに新しく作成された MS SQL Server データ ソース項目が表示されます。
+
+
+
+## サーバー側
+
+**手順 1** - クライアントでデータ ソースとデータ ソース項目を作成しますが、接続情報は指定しません。`id`、`title`、および/または `subtitle` のみを提供します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+
+ var sqlServerDS = new $.ig.RVSqlServerDataSource();
+ sqlServerDS.id = "MySqlServerDataSource";
+ sqlServerDS.title = "My Sql Server";
+
+ var sqlServerDSI = new $.ig.RVSqlServerDataSourceItem(sqlServerDS);
+ sqlServerDSI.id = "MySqlServerDataSourceItem";
+ sqlServerDSI.title = "My Sql Server Item";
+
+ callback(new $.ig.RevealDataSources([sqlDataSource], [sqlServerDSI], false));
+};
+```
+
+**手順 2** - データ ソース プロバイダーを作成します。この例では、クライアントで定義された **MS SQL Server** データベースに接続するための接続情報を提供しています。これを実現するために、使用しているデータ ソース/項目のタイプを決定し、オブジェクトで使用可能なプロパティを設定します。
+
+
+
+
+```cs
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId, RVDataSourceItem dataSourceItem)
+ {
+ if (dataSourceItem is RVSqlServerDataSourceItem sqlServerDsi)
+ {
+ //required: update underlying data source
+ ChangeDataSourceAsync(userContext, sqlServerDsi.DataSource);
+
+ //only change the table if we have selected our data source item
+ if (sqlServerDsi.Id == "MySqlServerDatasourceItem")
+ {
+ //set the table/view
+ sqlServerDsi.Table = "Orders";
+ }
+ }
+ return Task.FromResult(dataSourceItem);
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVSqlServerDataSource sqlDatasource)
+ {
+ sqlDatasource.Host = "10.0.0.20";
+ sqlDatasource.Database = "Northwind";
+ sqlDatasource.Schema = "dbo";
+ }
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+
+
+
+
+```java
+public class DataSourceProvider implements IRVDataSourceProvider {
+
+ public RVDataSourceItem changeDataSourceItem(IRVUserContext userContext, String dashboardsID, RVDataSourceItem dataSourceItem) {
+
+ if (dataSourceItem instanceof RVSqlServerDataSourceItem sqlServerDsi) {
+ //required: update underlying data source
+ changeDataSource(userContext, dataSourceItem.getDataSource());
+
+ //only change the table if we have selected our custom data source item
+ if (dataSourceItem.getId() == "MySqlServerDatasourceItem") {
+ sqlServerDsi.setTable("Orders");
+ }
+ }
+ return dataSourceItem;
+ }
+
+ public RVDashboardDataSource changeDataSource(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVSqlServerDataSource sqlDatasource) {
+ sqlDatasource.setHost("10.0.0.20");
+ sqlDatasource.setDatabase("Northwind");
+ sqlDatasource.setSchema("dbo");
+ }
+ return dataSource;
+ }
+}
+```
+
+
+
+
+
+```js
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ if (dataSourceItem instanceof reveal.RVSqlServerDataSourceItem) {
+
+ //required: update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MySqlServerDatasourceItem") {
+ dataSourceItem.table = "Orders";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVSqlServerDataSource) {
+ dataSource.host = "10.0.0.20";
+ dataSource.database = "Northwind";
+ dataSource.schema = "dbo";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+```ts
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ if (dataSourceItem instanceof RVSqlServerDataSourceItem) {
+
+ //required: update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MySqlServerDatasourceItem") {
+ dataSourceItem.table = "Orders";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVSqlServerDataSource) {
+ dataSource.host = "10.0.0.20";
+ dataSource.database = "Northwind";
+ dataSource.schema = "dbo";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+:::tip Entra ID 認証
+
+Microsoft Entra ID を使用して SQL Server データベースに対して認証を行う場合は、[Microsoft Entra ID 認証](../authentication.md#microsoft-entra-id-認証) セクションで完全な例を参照してください。
+
+:::
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/MsSqlServer) にあります。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/mysql.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/mysql.md
new file mode 100644
index 00000000..d9aa4c33
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/mysql.md
@@ -0,0 +1,225 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# MySQL データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+## クライアント側
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、`RVMySqlDataSource` オブジェクトの新しいインスタンスを作成します。`Host`、`Database`、`Port`、および `Title` プロパティを、MySQL サーバーに対応する値に設定します。`RVMySqlDataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var mySqlDataSource = new $.ig.RVMySqlDataSource();
+ mySqlDataSource.host = "your-db-host";
+ mySqlDataSource.database = "your-db-name";
+ mySqlDataSource.port = 1234;
+ mySqlDataSource.title = "My MySQL";
+
+ callback(new $.ig.RevealDataSources([mySqlDataSource], [], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された MySQL データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+**手順 3** - `RVMySqlDataSourceItem` オブジェクトの新しいインスタンスを作成して、新しいデータ ソース項目を追加します。データベース テーブルに対応する `Id`、`Title`、および `Table` プロパティを設定します。`RVMySqlDataSourceItem` オブジェクトを作成したら、それをデータ ソース項目コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var mySqlDataSource = new $.ig.RVMySqlDataSource();
+ mySqlDataSource.host = "your-db-host";
+ mySqlDataSource.database = "your-db-name";
+ mySqlDataSource.port = 1234;
+ mySqlDataSource.title = "My MySQL";
+
+ var mySqlDsi = new $.ig.RVMySqlDataSourceItem(mySqlDataSource);
+ mySqlDsi.id = "MyMySqlDataSourceItem";
+ mySqlDsi.title = "My MySQL Item";
+ mySqlDsi.table = "TableName";
+
+ callback(new $.ig.RevealDataSources([mySqlDataSource], [mySqlDsi], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された MySQL データ ソース項目が [データ ソースの選択] ダイアログに表示されます。
+
+
+
+## サーバー側
+
+**手順 1** - クライアントでデータ ソースとデータ ソース項目を作成しますが、接続情報は指定しません。`id`、`title`、および/または `subtitle` のみを入力してください。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+
+ var mySqlDataSource = new $.ig.RVMySqlDataSource();
+ mySqlDataSource.id = "MyMySqlDataSource";
+ mySqlDataSource.title = "My MySQL";
+
+ var mySqlDataSourceItem = new $.ig.RVMySqlDataSourceItem(mySqlDataSource);
+ mySqlDataSourceItem.id = "MyMySqlDataSourceItem";
+ mySqlDataSourceItem.title = "My MySQL Item";
+
+ callback(new $.ig.RevealDataSources([mySqlDataSource], [mySqlDataSourceItem], true));
+};
+```
+
+**手順 2** - データ ソース プロバイダーを作成します。この例では、クライアントで定義された **MySQL** データベースに接続するための接続情報を提供しています。これを実現するために、使用しているデータ ソース/項目のタイプを決定し、オブジェクトで使用可能なプロパティを設定します。
+
+
+
+
+```cs
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId,
+ RVDataSourceItem dataSourceItem)
+ {
+ if (dataSourceItem is RVMySqlDataSourceItem mySqlDataSourceItem)
+ {
+ //update underlying data source
+ ChangeDataSourceAsync(userContext, mySqlDataSourceItem.DataSource);
+
+ //only change the table if we have selected our custom data source item
+ if (mySqlDataSourceItem.Id == "MyMySqlDataSourceItem")
+ {
+ mySqlDataSourceItem.Table = "orders";
+ }
+ }
+
+ return Task.FromResult(dataSourceItem);
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext,
+ RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVMySqlDataSource mySqlDataSource)
+ {
+ mySqlDataSource.Host = "localhost";
+ mySqlDataSource.Database = "database";
+ }
+
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+
+
+
+
+```java
+public class DataSourceProvider implements IRVDataSourceProvider {
+ public RVDataSourceItem changeDataSourceItem(IRVUserContext userContext, String dashboardsID, RVDataSourceItem dataSourceItem) {
+
+ if (dataSourceItem instanceof RVMySqlDataSourceItem mySqlDataSourceItem) {
+
+ //update underlying data source
+ changeDataSource(userContext, dataSourceItem.getDataSource());
+
+ //only change the table if we have selected our custom data source item
+ if (Objects.equals(dataSourceItem.getId(), "MyMySqlDataSourceItem")) {
+ mySqlDataSourceItem.setTable("orders");
+ }
+ }
+ return dataSourceItem;
+ }
+
+ public RVDashboardDataSource changeDataSource(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+
+ if (dataSource instanceof RVMySqlDataSource mySqlDataSource) {
+ mySqlDataSource.setHost("localhost");
+ mySqlDataSource.setDatabase("database");
+ }
+ return dataSource;
+ }
+}
+```
+
+
+
+
+
+```js
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ if (dataSourceItem instanceof reveal.RVMySqlDataSourceItem) {
+
+ //update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MyMySqlDataSourceItem") {
+ dataSourceItem.table = "orders";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVMySqlDataSource) {
+ dataSource.host = "localhost";
+ dataSource.database = "database";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+```ts
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ if (dataSourceItem instanceof RVMySqlDataSourceItem) {
+
+ //update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MyMySqlDataSourceItem") {
+ dataSourceItem.table = "orders";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVMySqlDataSource) {
+ dataSource.host = "localhost";
+ dataSource.database = "database";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/MySQL) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/oracle.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/oracle.md
new file mode 100644
index 00000000..8d7ef9ba
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/oracle.md
@@ -0,0 +1,310 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Oracle データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+## クライアント側
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、`RVOracleSIDDataSource` または `RVOracleServiceDataSource` オブジェクト (セットアップに応じて) の新しいインスタンスを作成します。`Host`、`Database`、`Port`、`Title`、および `SID` / `Service` (SID またはサービス名を使用しているかどうかに応じて) プロパティを Oracle サーバーに対応する値に設定します。`RVOracleXXXXDataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ //if you are using SID
+ const oracleSIDDataSource = new $.ig.RVOracleSIDDataSource();
+ oracleSIDDataSource.id = "MyOracleSIDDataSource";
+ oracleSIDDataSource.title = "My Oracle SID";
+ oracleSIDDataSource.host = "your-host";
+ oracleSIDDataSource.port = "your-port";
+ oracleSIDDataSource.database = "your-database";
+
+ //if you are using Service Name
+ const oracleServiceDataSource = new $.ig.RVOracleServiceDataSource();
+ oracleServiceDataSource.id = "MyOracleServiceDataSource";
+ oracleServiceDataSource.title = "My Oracle Service";
+ oracleServiceDataSource.host = "your-host";
+ oracleServiceDataSource.port = "your-port";
+ oracleServiceDataSource.database = "your-database";
+
+ callback(new $.ig.RevealDataSources([oracleSIDDataSource, oracleServiceDataSource], [], true));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Oracle データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+**手順 3** - `RVOracleDataSourceItem` オブジェクトの新しいインスタンスを作成して、新しいデータ ソース項目を追加します。データベース テーブルに対応する `Id`、`Title`、および `Table` プロパティを設定します。`RVOracleDataSourceItem` オブジェクトを作成したら、それをデータ ソース項目コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ //if you are using SID
+ const oracleSIDDataSource = new $.ig.RVOracleSIDDataSource();
+ oracleSIDDataSource.id = "MyOracleSIDDataSource";
+ oracleSIDDataSource.title = "My Oracle SID";
+ oracleSIDDataSource.host = "your-host";
+ oracleSIDDataSource.port = "your-port";
+ oracleSIDDataSource.database = "your-database";
+
+ //if you are using Service Name
+ const oracleServiceDataSource = new $.ig.RVOracleServiceDataSource();
+ oracleServiceDataSource.id = "MyOracleServiceDataSource";
+ oracleServiceDataSource.title = "My Oracle Service";
+ oracleServiceDataSource.host = "your-host";
+ oracleServiceDataSource.port = "your-port";
+ oracleServiceDataSource.database = "your-database";
+
+ const oracleSIDDataSourceItem = new $.ig.RVOracleDataSourceItem(oracleSIDDataSource);
+ oracleSIDDataSourceItem.id = "MyOracleSIDDataSourceItem";
+ oracleSIDDataSourceItem.title = "My Oracle SID Item";
+
+ const oracleServiceDataSourceItem = new $.ig.RVOracleDataSourceItem(oracleServiceDataSource);
+ oracleServiceDataSourceItem.id = "MyOracleServiceDataSourceItem";
+ oracleServiceDataSourceItem.title = "My Oracle Service Item";
+
+ callback(new $.ig.RevealDataSources([oracleSIDDataSource, oracleServiceDataSource], [oracleSIDDataSourceItem, oracleServiceDataSourceItem], true));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Oracle データ ソース項目が [データ ソースの選択] ダイアログに表示されます。
+
+
+
+## サーバー側
+
+**手順 1** - クライアントでデータ ソースとデータ ソース項目を作成しますが、接続情報は指定しません。`id`、`title`、および/または `subtitle` のみを入力してください。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ //if you are using SID
+ const oracleSIDDataSource = new $.ig.RVOracleSIDDataSource();
+ oracleSIDDataSource.id = "MyOracleSIDDataSource";
+ oracleSIDDataSource.title = "My Oracle SID";
+
+ //if you are using Service Name
+ const oracleServiceDataSource = new $.ig.RVOracleServiceDataSource();
+ oracleServiceDataSource.id = "MyOracleServiceDataSource";
+ oracleServiceDataSource.title = "My Oracle Service";
+
+ const oracleSIDDataSourceItem = new $.ig.RVOracleDataSourceItem(oracleSIDDataSource);
+ oracleSIDDataSourceItem.id = "MyOracleSIDDataSourceItem";
+ oracleSIDDataSourceItem.title = "My Oracle SID Item";
+
+ const oracleServiceDataSourceItem = new $.ig.RVOracleDataSourceItem(oracleServiceDataSource);
+ oracleServiceDataSourceItem.id = "MyOracleServiceDataSourceItem";
+ oracleServiceDataSourceItem.title = "My Oracle Service Item";
+
+ callback(new $.ig.RevealDataSources([oracleSIDDataSource, oracleServiceDataSource], [oracleSIDDataSourceItem, oracleServiceDataSourceItem], true));
+};
+```
+
+**手順 2** - データ ソース プロバイダーを作成します。この例では、クライアントで定義された **Oracle** データベースに接続するための接続情報を提供しています。これを実現するために、使用しているデータ ソース/項目のタイプを決定し、オブジェクトで使用可能なプロパティを設定します。
+
+
+
+
+```cs
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId,
+ RVDataSourceItem dataSourceItem)
+ {
+ if (dataSourceItem is RVOracleDataSourceItem oracleDataSourceItem)
+ {
+ //update underlying data source
+ ChangeDataSourceAsync(userContext, oracleDataSourceItem.DataSource);
+
+ //only change the table if we have selected our custom data source item
+ if (oracleDataSourceItem.Id == "MyOracleSIDDataSourceItem")
+ {
+ oracleDataSourceItem.Table = "your-table";
+ }
+
+ if (oracleDataSourceItem.Id == "MyOracleServiceDataSourceItem")
+ {
+ oracleDataSourceItem.Table = "your-table";
+ }
+ }
+
+ return Task.FromResult(dataSourceItem);
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext,
+ RVDashboardDataSource dataSource)
+ {
+ //using SID
+ if (dataSource is RVOracleSIDDataSource oracleSidDataSource)
+ {
+ oracleSidDataSource.Host = "your-host";
+ oracleSidDataSource.Database = "your-database";
+ oracleSidDataSource.SID = "your-service-sid";
+ }
+
+ //using service name
+ if (dataSource is RVOracleServiceDataSource oracleServiceDataSource)
+ {
+ oracleServiceDataSource.Host = "your-host";
+ oracleServiceDataSource.Database = "your-database";
+ oracleServiceDataSource.Service = "your-service-name";
+ }
+
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+
+
+
+
+```java
+public class DataSourceProvider implements IRVDataSourceProvider {
+ public RVDataSourceItem changeDataSourceItem(IRVUserContext userContext, String dashboardsID, RVDataSourceItem dataSourceItem) {
+
+ if (dataSourceItem instanceof RVOracleDataSourceItem oracleDataSourceItem) {
+
+ //update underlying data source
+ changeDataSource(userContext, dataSourceItem.getDataSource());
+
+ //only change the table if we have selected our custom data source item
+ if (Objects.equals(dataSourceItem.getId(), "MyOracleSIDDataSourceItem")) {
+ oracleDataSourceItem.setTable("your-table");
+ }
+
+ if (Objects.equals(dataSourceItem.getId(), "MyOracleServiceDataSourceItem")) {
+ oracleDataSourceItem.setTable("your-table");
+ }
+ }
+ return dataSourceItem;
+ }
+
+ public RVDashboardDataSource changeDataSource(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ //using SID
+ if (dataSource instanceof RVOracleSIDDataSource oracleSIDDataSource) {
+ oracleSIDDataSource.setHost("your-host");
+ oracleSIDDataSource.setDatabase("your-database");
+ oracleSIDDataSource.setSID("your-sid");
+ }
+
+ //using service name
+ if (dataSource instanceof RVOracleServiceDataSource oracleServiceDataSource) {
+ oracleServiceDataSource.setHost("your-host");
+ oracleServiceDataSource.setDatabase("your-database");
+ oracleServiceDataSource.setService("your-service-name");
+ }
+
+ return dataSource;
+ }
+}
+```
+
+
+
+
+
+```js
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ if (dataSourceItem instanceof reveal.RVOracleDataSourceItem) {
+
+ //update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MyOracleSIDDataSourceItem") {
+ dataSourceItem.table = "your-table";
+ }
+
+ if (dataSourceItem.id === "MyOracleServiceDataSourceItem") {
+ dataSourceItem.table = "your-table";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ //using SID
+ if (dataSource instanceof reveal.RVOracleSIDDataSource) {
+ dataSource.host = "your-host";
+ dataSource.database = "your-database";
+ dataSource.sID = "your-sid";
+ }
+
+ //using service name
+ if (dataSource instanceof reveal.RVOracleServiceDataSource) {
+ dataSource.host = "your-host";
+ dataSource.database = "your-database";
+ dataSource.service = "your-service-name";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+```ts
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ if (dataSourceItem instanceof RVOracleDataSourceItem) {
+
+ //update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MyOracleSIDDataSourceItem") {
+ dataSourceItem.table = "your-table";
+ }
+
+ if (dataSourceItem.id === "MyOracleServiceDataSourceItem") {
+ dataSourceItem.table = "your-table";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ //using SID
+ if (dataSource instanceof RVOracleSIDDataSource) {
+ dataSource.host = "your-host";
+ dataSource.database = "your-database";
+ dataSource.sID = "your-sid";
+ }
+
+ //using service name
+ if (dataSource instanceof RVOracleServiceDataSource) {
+ dataSource.host = "your-host";
+ dataSource.database = "your-database";
+ dataSource.service = "your-service-name";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/Oracle) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/postgres.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/postgres.md
new file mode 100644
index 00000000..1672baed
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/postgres.md
@@ -0,0 +1,229 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# PostgreSQL データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+## クライアント側
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、`RVPostgresDataSource` オブジェクトの新しいインスタンスを作成します。`Host`、`Database`、`Port`、および `Title` プロパティを、PostgreSQL サーバーに対応する値に設定します。`RVPostgresDataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var postgresDataSource = new $.ig.RVPostgresDataSource();
+ postgresDataSource.host = "your-db-host";
+ postgresDataSource.database = "your-db-name";
+ postgresDataSource.port = 1234;
+ postgresDataSource.title = "My PostgreSQL";
+
+ callback(new $.ig.RevealDataSources([postgresDataSource], [], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された PostgreSQL データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+**手順 3** - `RVPostgresDataSourceItem` オブジェクトの新しいインスタンスを作成して、新しいデータ ソース項目を追加します。データベース テーブルに対応する `Id`、`Title`、および `Table` プロパティを設定します。`RVPostgresDataSourceItem` オブジェクトを作成したら、それをデータ ソース項目コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ var postgresDataSource = new $.ig.RVPostgresDataSource();
+ postgresDataSource.host = "your-db-host";
+ postgresDataSource.database = "your-db-name";
+ postgresDataSource.port = 1234;
+ postgresDataSource.title = "My PostgreSQL";
+
+ var postgresDsi = new $.ig.RVPostgresDataSourceItem(postgresDataSource);
+ postgresDsi.id = "MyPostgresDataSourceItem";
+ postgresDsi.title = "My PostgreSQL Item";
+ postgresDsi.table = "TableName";
+
+ callback(new $.ig.RevealDataSources([postgresDataSource], [postgresDsi], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された PostgreSQL データ ソース項目が [データ ソースの選択] ダイアログに表示されます。
+
+
+
+## サーバー側
+
+**手順 1** - クライアントでデータ ソースとデータ ソース項目を作成しますが、接続情報は指定しません。`id`、`title`、および/または `subtitle` のみを入力してください。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+
+ var postgresDataSource = new $.ig.RVPostgresDataSource();
+ postgresDataSource.id = "MyPostgresDataSource";
+ postgresDataSource.title = "My PostgreSQL";
+
+ var postgresDsi = new $.ig.RVPostgresDataSourceItem(postgresDataSource);
+ postgresDsi.id = "MyPostgresDataSourceItem";
+ postgresDsi.title = "My PostgreSQL Item";
+
+ callback(new $.ig.RevealDataSources([postgresDataSource], [postgresDsi], false));
+};
+```
+
+**手順 2** - データ ソース プロバイダーを作成します。この例では、クライアントで定義された **PostgreSQL** データベースに接続するための接続情報を提供しています。これを実現するために、使用しているデータ ソース/項目のタイプを決定し、オブジェクトで使用可能なプロパティを設定します。
+
+
+
+
+```cs
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId,
+ RVDataSourceItem dataSourceItem)
+ {
+ if (dataSourceItem is RVPostgresDataSourceItem postgresDataSourceItem)
+ {
+ //update underlying data source
+ ChangeDataSourceAsync(userContext, postgresDataSourceItem.DataSource);
+
+ //only change the table if we have selected our custom data source item
+ if (postgresDataSourceItem.Id == "MyPostgresDataSourceItem")
+ {
+ postgresDataSourceItem.Table = "orders";
+ }
+ }
+
+ return Task.FromResult(dataSourceItem);
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext,
+ RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVPostgresDataSource postgresDataSource)
+ {
+ postgresDataSource.Host = "localhost";
+ postgresDataSource.Database = "database";
+ postgresDataSource.Schema = "public";
+ }
+
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+
+
+
+
+```java
+public class DataSourceProvider implements IRVDataSourceProvider {
+ public RVDataSourceItem changeDataSourceItem(IRVUserContext userContext, String dashboardsID, RVDataSourceItem dataSourceItem) {
+
+ if (dataSourceItem instanceof RVPostgresDataSourceItem postgresDataSourceItem) {
+
+ //update underlying data source
+ changeDataSource(userContext, dataSourceItem.getDataSource());
+
+ //only change the table if we have selected our custom data source item
+ if (dataSourceItem.getId() == "MyPostgresDataSourceItem") {
+ postgresDataSourceItem.setTable("orders");
+ }
+ }
+ return dataSourceItem;
+ }
+
+ public RVDashboardDataSource changeDataSource(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+
+ if (dataSource instanceof RVPostgresDataSource postgresDataSource) {
+ postgresDataSource.setHost("localhost");
+ postgresDataSource.setDatabase("database");
+ postgresDataSource.setSchema("public");
+ }
+ return dataSource;
+ }
+}
+```
+
+
+
+
+
+```js
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ if (dataSourceItem instanceof reveal.RVPostgresDataSourceItem) {
+
+ //update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MyPostgresDataSourceItem") {
+ dataSourceItem.table = "orders";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVPostgresDataSource) {
+ dataSource.host = "localhost";
+ dataSource.database = "database";
+ dataSource.schema = "public";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+```ts
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ if (dataSourceItem instanceof RVPostgresDataSourceItem) {
+
+ //update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MyPostgresDataSourceItem") {
+ dataSourceItem.table = "orders";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVPostgresDataSource) {
+ dataSource.host = "localhost";
+ dataSource.database = "database";
+ dataSource.schema = "public";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/PostgreSQL) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/rest.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/rest.md
new file mode 100644
index 00000000..e070744a
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/rest.md
@@ -0,0 +1,49 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# REST データ ソースの追加
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ //add code here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、[RVRESTDataSource](https://help.revealbi.io/api/javascript/latest/classes/rvrestdatasource.html) オブジェクトの新しいインスタンスを作成します。REST エンドポイントへのアクセスに認証が必要ない場合は、`URL` プロパティを REST エンドポイントの URL に設定し、`useAnonymousAuthentication` プロパティを false に設定します。`RVRESTDataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const restDataSource = new $.ig.RVRESTDataSource();
+ restDataSource.title = "Sales by Category";
+ restDataSource.subtitle = "Excel2Json";
+ restDataSource.url = "https://excel2json.io/api/share/6e0f06b3-72d3-4fec-7984-08da43f56bb9";
+ restDataSource.useAnonymousAuthentication = true;
+
+ callback(new $.ig.RevealDataSources([restDataSource], [], true));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された REST データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは、[GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/RestService) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/snowflake.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/snowflake.md
new file mode 100644
index 00000000..5e301027
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-data-sources/snowflake.md
@@ -0,0 +1,330 @@
+---
+pagination_next: web/authentication
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# Snowflake データ ソース
+
+## はじめに
+
+Snowflake は、データ分析、データ共有、ビジネス インテリジェンス ワークロード向けにスケーラブルなストレージとコンピューティング リソースを提供するクラウドベースのデータ ウェアハウス プラットフォームです。このトピックでは、Reveal アプリケーションで Snowflake データ ソースに接続してデータを視覚化および分析する方法について説明します。
+
+## サーバー構成
+
+### インストール
+
+
+
+
+**手順 1** - Reveal Snowflake コネクタ パッケージをインストールします。
+
+ASP.NET アプリケーションの場合、Snowflake サポートを有効にするには、別の NuGet パッケージをインストールする必要があります。
+
+```bash
+dotnet add package Reveal.Sdk.Data.Snowflake
+```
+
+**手順 2** - アプリケーションに Snowflake データ ソースを登録します。
+
+```csharp
+builder.Services.AddControllers().AddReveal( builder =>
+{
+ builder.DataSources.RegisterSnowflake();
+});
+```
+
+
+
+
+Node.js アプリケーションの場合、Snowflake データ ソースはメインの Reveal SDK パッケージに既に含まれています。標準の Reveal SDK セットアップ以外に追加のインストールは必要ありません。
+
+
+
+
+Java アプリケーションの場合、Snowflake データ ソースはメインの Reveal SDK パッケージに既に含まれています。標準の Reveal SDK セットアップ以外に追加のインストールは必要ありません。
+
+
+
+
+### 接続構成
+
+
+
+
+```csharp
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId,
+ RVDataSourceItem dataSourceItem)
+ {
+ if (dataSourceItem is RVSnowflakeDataSourceItem snowflakeDataSourceItem)
+ {
+ //update underlying data source
+ ChangeDataSourceAsync(userContext, snowflakeDataSourceItem.DataSource);
+
+ //only change the table if we have selected our custom data source item
+ if (snowflakeDataSourceItem.Id == "MySnowflakeDataSourceItem")
+ {
+ snowflakeDataSourceItem.Schema = "TPCDS_SF100TCL";
+ snowflakeDataSourceItem.Table = "CUSTOMER";
+ }
+ }
+
+ return Task.FromResult(dataSourceItem);
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext,
+ RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVSnowflakeDataSource snowflakeDataSource)
+ {
+ snowflakeDataSource.Account = "your-account";
+ snowflakeDataSource.Host = "your-account-host";
+ snowflakeDataSource.Database = "SNOWFLAKE_SAMPLE_DATA";
+ }
+
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+
+
+
+```java
+public class DataSourceProvider implements IRVDataSourceProvider {
+ public RVDataSourceItem changeDataSourceItem(IRVUserContext userContext, String dashboardsID, RVDataSourceItem dataSourceItem) {
+
+ if (dataSourceItem instanceof RVSnowflakeDataSourceItem snowflakeDataSourceItem) {
+
+ //update underlying data source
+ changeDataSource(userContext, dataSourceItem.getDataSource());
+
+ //only change the table if we have selected our custom data source item
+ if (Objects.equals(dataSourceItem.getId(), "MySnowflakeDataSourceItem")) {
+ snowflakeDataSourceItem.setSchema("TPCDS_SF100TCL");
+ snowflakeDataSourceItem.setTable("CUSTOMER");
+ }
+ }
+ return dataSourceItem;
+ }
+
+ public RVDashboardDataSource changeDataSource(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+
+ if (dataSource instanceof RVSnowflakeDataSource snowflakeDataSource) {
+ snowflakeDataSource.setAccount("your-account");
+ snowflakeDataSource.setHost("your-account-host");
+ snowflakeDataSource.setDatabase("SNOWFLAKE_SAMPLE_DATA");
+ }
+ return dataSource;
+ }
+}
+```
+
+
+
+
+```javascript
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ if (dataSourceItem instanceof reveal.RVSnowflakeDataSourceItem) {
+
+ //update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MySnowflakeDataSourceItem") {
+ dataSourceItem.schema = "TPCDS_SF100TCL";
+ dataSourceItem.table = "CUSTOMER";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVSnowflakeDataSource) {
+ dataSource.account = "your-account";
+ dataSource.host = "your-account-host";
+ dataSource.database = "SNOWFLAKE_SAMPLE_DATA";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+```ts
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ if (dataSourceItem instanceof RVSnowflakeDataSourceItem) {
+
+ //update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MySnowflakeDataSourceItem") {
+ dataSourceItem.schema = "TPCDS_SF100TCL";
+ dataSourceItem.table = "CUSTOMER";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVSnowflakeDataSource) {
+ dataSource.account = "your-account";
+ dataSource.host = "your-account-host";
+ dataSource.database = "SNOWFLAKE_SAMPLE_DATA";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+:::danger Important
+`ChangeDataSourceAsync` メソッドでデータ ソースに加えた変更は、`ChangeDataSourceItemAsync` メソッドには引き継がれません。両方のメソッドでデータ ソースのプロパティを更新する**必要があります**。上記の例に示すように、`ChangeDataSourceItemAsync` メソッド内で、データ ソース項目の基になるデータ ソースをパラメーターとして渡して `ChangeDataSourceAsync` メソッドを呼び出すことをお勧めします。
+:::
+
+### 認証
+
+Snowflake の認証は、ユーザー名とパスワードの資格情報を使用してサーバー側で処理されます。すべての認証オプションの詳細については、「[認証](../authentication.md)」トピックを参照してください。
+
+
+
+
+```csharp
+public class AuthenticationProvider: IRVAuthenticationProvider
+{
+ public Task ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ IRVDataSourceCredential userCredential = null;
+ if (dataSource is RVSnowflakeDataSource)
+ {
+ userCredential = new RVUsernamePasswordDataSourceCredential("username", "password");
+ }
+ return Task.FromResult(userCredential);
+ }
+}
+```
+
+
+
+
+```javascript
+const authenticationProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVSnowflakeDataSource) {
+ return new reveal.RVUsernamePasswordDataSourceCredential("username", "password");
+ }
+ return null;
+}
+```
+
+
+
+
+```ts
+const authenticationProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVSnowflakeDataSource) {
+ return new RVUsernamePasswordDataSourceCredential("username", "password");
+ }
+ return null;
+}
+```
+
+
+
+
+```java
+public class AuthenticationProvider implements IRVAuthenticationProvider {
+ @Override
+ public IRVDataSourceCredential resolveCredentials(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVSnowflakeDataSource) {
+ return new RVUsernamePasswordDataSourceCredential("username", "password");
+ }
+ return null;
+ }
+}
+```
+
+
+
+
+## クライアント側の実装
+
+### データ ソースの作成
+
+**手順 1** - `RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。
+
+```js
+const revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+ // Add data source here
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+
+**手順 2** - `RevealView.onDataSourcesRequested` イベント ハンドラーで、`RVSnowflakeDataSource` オブジェクトの新しいインスタンスを作成します。`title` と `subtitle` プロパティを設定します。`RVSnowflakeDataSource` オブジェクトを作成したら、それをデータ ソース コレクションに追加します。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const snowflakeDS = new $.ig.RVSnowflakeDataSource();
+ snowflakeDS.title = "Snowflake";
+ snowflakeDS.subtitle = "Data Source";
+
+ callback(new $.ig.RevealDataSources([snowflakeDS], [], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Snowflake データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+### データ ソース項目の作成
+
+データ ソース項目は、ユーザーが視覚化のために選択できる Snowflake データ ソース内の特定のデータセットを表します。クライアント側では、ID、タイトル、サブタイトルのみを指定する必要があります。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ // Create the data source
+ const snowflakeDS = new $.ig.RVSnowflakeDataSource();
+ snowflakeDS.title = "My Snowflake Datasource";
+ snowflakeDS.subtitle = "Snowflake";
+
+ // Create a data source item
+ const snowflakeDSI = new $.ig.RVSnowflakeDataSourceItem(snowflakeDS);
+ snowflakeDSI.id = "MySnowflakeDataSourceItem";
+ snowflakeDSI.title = "My Snowflake Datasource Item";
+ snowflakeDSI.subtitle = "Snowflake";
+
+ callback(new $.ig.RevealDataSources([snowflakeDS], [snowflakeDSI], false));
+};
+```
+
+アプリケーションが実行されたら、新しい可視化を作成すると、新しく作成された Snowflake 項目データ ソースが [データ ソースの選択] ダイアログに表示されます。
+
+
+
+## その他のリソース
+
+- [Snowflake ドキュメント](https://docs.snowflake.com/)
+- [GitHub のサンプル ソース コード](https://github.com/RevealBi/sdk-samples-javascript/tree/main/DataSources/Snowflake)
+
+## API リファレンス
+
+
+
+
+* [RVSnowflakeDataSource](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.Data.Snowflake.RVSnowflakeDataSource.html) - Snowflake データ ソースを表します
+* [RVSnowflakeDataSourceItem](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.Data.Snowflake.RVSnowflakeDataSourceItem.html) - Snowflake データ ソース項目を表します
+
+
+
+
+* [RVSnowflakeDataSource](https://help.revealbi.io/api/javascript/latest/classes/rvsnowflakedatasource.html) - Snowflake データ ソースを表します
+* [RVSnowflakeDataSourceItem](https://help.revealbi.io/api/javascript/latest/classes/rvsnowflakedatasourceitem.html) - Snowflake データ ソース項目を表します
+
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-license-key.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-license-key.md
new file mode 100644
index 00000000..a045abbd
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/adding-license-key.md
@@ -0,0 +1,78 @@
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# ライセンス キーを追加
+
+Reveal SDK をインストールするときは、ライセンス キーを指定する必要があります。指定しない場合、SDK は機能しません。ライセンス キーは 2 種類あります:
+- トライアル - [Reveal SDK Web サイト](https://www.revealbi.io/ja/download-sdk)からトライアルをリクエストすると取得されます。
+- ライセンス済み - Reveal SDK の購入時にライセンスを取得されています。[カスタマー ポータル](https://account.infragistics.com/subscriptions)で入手できます。
+
+## キー ファイル
+デフォルトでは、Reveal SDK は、ユーザーの「ホーム」ディレクトリの下で `.revealbi-sdk` という名前のフォルダー内の `license.key` というファイルで有効なライセンスを検索します。
+
+「ホーム」ディレクトリは、お使いの OS によって異なります。
+- Windows: `C:/Users/your-user-name/`
+- Mac: `/Users/your-user-name/`
+- Linux: `/home/your-user-name/`
+
+ライセンス キーを受け取ったら、「ホーム」ディレクトリにある `.revealbi-sdk` という名前のディレクトリ内に `license.key` という名前のテキスト ファイルを作成してください。このファイルにライセンス キーをコンテンツとして記載します。
+
+:::note [ライセンス キー ファイルの内容]
+
+ファイルには生のライセンス文字列のみを含めてください。追加のコード、コメント、引用符、またはフォーマットを含めないでください。それ以外が含まれている場合、アプリケーションは「ファイルに有効な Base64 文字列が含まれていない」という内容のランタイム例外をスローする可能性があります。
+
+:::
+
+例えば、Windows を使用している場合、ライセンス ファイルの場所は `C:/Users/ユーザー名/.revealbi-sdk/license.key` になります。
+
+## コードで設定
+
+ライセンス キーはアプリケーション コードで指定することもできます。
+
+
+
+
+```cs
+services.AddMvc().AddReveal(builder =>
+{
+ builder.AddSettings(settings =>
+ {
+ settings.License = "LICENSE_KEY";
+ });
+});
+```
+
+
+
+
+
+```java
+RevealEngineInitializer.initialize(new InitializeParameterBuilder().
+ setLicense("LICENSE_KEY").
+ build());
+```
+
+
+
+
+
+```js
+const revealOptions = {
+ license: "LICENSE_KEY",
+};
+app.use("/", reveal(revealOptions));
+```
+
+
+
+
+
+```ts
+const revealOptions: RevealOptions = {
+ license: "LICENSE_KEY",
+};
+app.use("/", reveal(revealOptions));
+```
+
+
+
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/authentication.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/authentication.md
new file mode 100644
index 00000000..2bbad51f
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/authentication.md
@@ -0,0 +1,538 @@
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# 認証
+
+Reveal SDK を使用すると、認証プロバイダーを使用し、そのプロバイダーを Reveal SDK に登録することで、ユーザー名 / パスワードおよびベアラー トークン認証資格情報などのさまざまな認証方法をデータ ソースに提供できます。
+
+認証プロバイダーは、認証資格情報を要求しているデータ ソースを確認し、その特定のデータ ソースの正しい認証資格情報を返すために使用されます。
+
+**手順 1** - 認証プロバイダーを作成します。
+
+
+
+
+```cs
+public class AuthenticationProvider: IRVAuthenticationProvider
+{
+ public Task ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ ...
+ }
+}
+```
+
+
+
+
+
+```java
+public class AuthenticationProvider implements IRVAuthenticationProvider {
+ @Override
+ public IRVDataSourceCredential resolveCredentials(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ ...
+ }
+}
+```
+
+
+
+
+
+```js
+const authenticationProvider = async (userContext, dataSource) => {
+ ...
+}
+```
+
+
+
+
+
+```ts
+const authenticationProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ ...
+}
+```
+
+
+
+
+**手順 2** - 認証プロバイダーを Reveal SDK に登録します。
+
+
+
+
+```cs
+builder.Services.AddControllers().AddReveal( builder =>
+{
+ builder.AddAuthenticationProvider();
+});
+```
+
+
+
+
+
+```java
+RevealEngineInitializer.initialize(new InitializeParameterBuilder().
+ setAuthProvider(new AuthenticationProvider()).
+ build());
+```
+
+
+
+
+
+```js
+const revealOptions = {
+ authenticationProvider: authenticationProvider
+};
+
+app.use('/', reveal(revealOptions));
+```
+
+
+
+
+
+```js
+const revealOptions: RevealOptions = {
+ authenticationProvider: authenticationProvider
+};
+
+app.use('/', reveal(revealOptions));
+```
+
+
+
+
+## ユーザー名/パスワード認証
+
+データ ソースがユーザー名とパスワードの使用を要求する場合、`RVUsernamePasswordDataSourceCredential` クラスのインスタンスを返す必要があります。`RVUsernamePasswordDataSourceCredential` クラスは、**ユーザー名**、**パスワード**、およびオプションで**ドメイン**を定義するコンストラクターのオーバーロードを提供します。
+
+
+
+
+```cs
+public class AuthenticationProvider: IRVAuthenticationProvider
+{
+ public Task ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ IRVDataSourceCredential userCredential = null;
+ if (dataSource is RVPostgresDataSource)
+ {
+ userCredential = new RVUsernamePasswordDataSourceCredential("username", "password");
+ }
+ else if (dataSource is RVSqlServerDataSource)
+ {
+ userCredential = new RVUsernamePasswordDataSourceCredential("username", "password", "domain");
+ }
+ return Task.FromResult(userCredential);
+ }
+}
+```
+
+
+
+
+
+```java
+public class AuthenticationProvider implements IRVAuthenticationProvider {
+ @Override
+ public IRVDataSourceCredential resolveCredentials(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVPostgresDataSource) {
+ return new RVUsernamePasswordDataSourceCredential("username", "password");
+ }
+ else if (dataSource instanceof RVSqlServerDataSource) {
+ return new RVUsernamePasswordDataSourceCredential("username", "password", "domain");
+ }
+ return null;
+ }
+}
+```
+
+
+
+
+
+```js
+const authenticationProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVPostgresDataSource) {
+ return new reveal.RVUsernamePasswordDataSourceCredential("username", "password");
+ } else if (dataSource instanceof reveal.RVSqlServerDataSource) {
+ return new reveal.RVUsernamePasswordDataSourceCredential("username", "password", "domain");
+ }
+ return null;
+}
+```
+
+
+
+
+
+```ts
+const authenticationProvider = async (userContext:IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVPostgresDataSource) {
+ return new RVUsernamePasswordDataSourceCredential("username", "password");
+ } else if (dataSource instanceof RVSqlServerDataSource) {
+ return new RVUsernamePasswordDataSourceCredential("username", "password", "domain");
+ }
+ return null;
+}
+```
+
+
+
+
+データ ソースが認証なしで匿名ログインを使用している場合、空のコンストラクターで `RVUsernamePasswordDataSourceCredential` を使用できます。
+
+
+
+
+```cs
+if (dataSource is RVSqlServerDataSource)
+{
+ userCredential = new RVUsernamePasswordDataSourceCredential();
+}
+```
+
+
+
+
+
+```java
+if (dataSource instanceof RVSqlServerDataSource) {
+ return new RVUsernamePasswordDataSourceCredential();
+}
+```
+
+
+
+
+
+```js
+if (dataSource instanceof reveal.RVSqlServerDataSource) {
+ return new reveal.RVUsernamePasswordDataSourceCredential();
+}
+```
+
+
+
+
+
+```ts
+if (dataSource instanceof RVSqlServerDataSource) {
+ return new RVUsernamePasswordDataSourceCredential();
+}
+```
+
+
+
+
+`RVUsernamePasswordDataSourceCredential` は、以下のデータ ソースでサポートされます。
+- Amazon Redshift
+- Microsoft Analysis Services サーバー
+- Microsoft Dynamics CRM (オンプレミスおよびオンライン)
+- Microsoft SQL Server
+- MySQL
+- OData サービス
+- Oracle
+- PostgreSQL
+- REST サービス
+- Snowflake
+- Sybase
+- ウェブ リソース
+
+## ベアラー トークン認証
+
+データ ソースがセキュリティ トークンの使用を要求する場合、`RVBearerTokenDataSourceCredential` クラスのインスタンスを返す必要があります。`RVBearerTokenDataSourceCredential` クラスは、**トークン**と**ユーザー ID** を定義するコンストラクターのオーバーロードを提供します。
+
+
+
+
+```cs
+public class AuthenticationProvider: IRVAuthenticationProvider
+{
+ public Task ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ IRVDataSourceCredential userCredential = null;
+ if (dataSource is RVGoogleDriveDataSource)
+ {
+ userCredential = new RVBearerTokenDataSourceCredential("token", "userid");
+ }
+ return Task.FromResult(userCredential);
+ }
+}
+```
+
+
+
+
+
+```java
+public class AuthenticationProvider implements IRVAuthenticationProvider {
+ @Override
+ public IRVDataSourceCredential resolveCredentials(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVGoogleDriveDataSource) {
+ return new RVBearerTokenDataSourceCredential("token", "userid");
+ }
+ return null;
+ }
+}
+```
+
+
+
+
+
+```js
+const authenticationProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVGoogleDriveDataSource) {
+ return new reveal.RVBearerTokenDataSourceCredential("token", "userid");
+ }
+ return null;
+}
+```
+
+
+
+
+
+```ts
+const authenticationProvider = async (userContext:IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVGoogleDriveDataSource) {
+ return new RVBearerTokenDataSourceCredential("token", "userid");
+ }
+ return null;
+}
+```
+
+
+
+
+`RVBearerTokenDataSourceCredential` は、以下のデータ ソースでサポートされます。
+- Box
+- Databricks
+- Dropbox
+- Google アナリティクス
+- Google Big Query
+- Google Drive
+- Microsoft SQL Server
+- OData サービス
+- OneDrive
+- REST サービス
+- SharePoint オンライン
+- Snowflake
+- ウェブ リソース
+
+## Microsoft Entra ID 認証
+
+Microsoft Entra ID (旧 Azure Active Directory) を使用して、Entra ID 認証をサポートするデータ ソース (Microsoft SQL Server など) のベアラー トークンを取得できます。取得したトークンは、`RVBearerTokenDataSourceCredential` を使用して Reveal SDK に渡されます。
+
+:::info
+
+この例では、.NET 用の [Microsoft Authentication Library (MSAL)](https://learn.microsoft.com/ja-jp/entra/msal/overview) を使用しています。この方法を使用する前に、[Microsoft Entra ID](https://learn.microsoft.com/ja-jp/entra/identity-platform/quickstart-register-app) でアプリケーションを登録し、適切なデータベース権限を付与する必要があります。
+
+:::
+
+**手順 1** - `Microsoft.Identity.Client` NuGet パッケージをインストールします。
+
+```bash
+dotnet add package Microsoft.Identity.Client
+```
+
+**手順 2** - Entra ID からトークンを取得し、`RVBearerTokenDataSourceCredential` として返す認証プロバイダーを作成します。
+
+
+
+
+```cs
+public class AuthenticationProvider : IRVAuthenticationProvider
+{
+ public async Task ResolveCredentialsAsync(IRVUserContext userContext,
+ RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVSqlServerDataSource)
+ {
+ var token = await GetEntraTokenAsync("https://database.windows.net/.default");
+ return new RVBearerTokenDataSourceCredential(token, "myaccount@mydomain.com");
+ }
+
+ return new RVUsernamePasswordDataSourceCredential();
+ }
+
+ private static readonly string ClientId = "your-client-id";
+ private static readonly string ClientSecret = "your-client-secret";
+ private static readonly string TenantId = "your-tenant-id";
+
+ private static async Task GetEntraTokenAsync(string scope)
+ {
+ var app = ConfidentialClientApplicationBuilder
+ .Create(ClientId)
+ .WithClientSecret(ClientSecret)
+ .WithAuthority(AzureCloudInstance.AzurePublic, TenantId)
+ .Build();
+
+ var result = await app
+ .AcquireTokenForClient(new[] { scope })
+ .ExecuteAsync();
+
+ return result.AccessToken;
+ }
+}
+```
+
+
+
+
+:::note
+
+`your-client-id`、`your-client-secret`、`your-tenant-id` を Entra ID アプリ登録の値に置き換えてください。スコープ値 `https://database.windows.net/.default` は Azure SQL Server に固有です。他のデータ ソースでは異なるスコープが必要になる場合があります。
+
+:::
+
+Microsoft Entra ID 認証は、以下のデータ ソースでサポートされます。
+- Microsoft SQL Server
+- [Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure)
+
+## キーペア認証
+
+データ ソースがキーペア認証を必要とする場合、`RVKeyPairDataSourceCredential` クラスのインスタンスを返す必要があります。`RVKeyPairDataSourceCredential` クラスは、**ユーザー**と**暗号化されていない RSA 秘密キー**を定義するコンストラクターのオーバーロードを提供します。
+
+
+
+
+```cs
+public class AuthenticationProvider: IRVAuthenticationProvider
+{
+ public Task ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ IRVDataSourceCredential userCredential = null;
+ if (dataSource is RVSnowflakeDataSource)
+ {
+ userCredential = new RVKeyPairDataSourceCredential("user", "unencrypted rsa-key");
+ }
+ return Task.FromResult(userCredential);
+ }
+}
+```
+
+
+
+
+
+```java
+public class AuthenticationProvider implements IRVAuthenticationProvider {
+ @Override
+ public IRVDataSourceCredential resolveCredentials(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVSnowflakeDataSource) {
+ return new RVKeyPairDataSourceCredential("user", "unencrypted rsa-key");
+ }
+ return null;
+ }
+}
+```
+
+
+
+
+
+```js
+const authenticationProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVSnowflakeDataSource) {
+ return new reveal.RVKeyPairDataSourceCredential("user", "unencrypted rsa-key");
+ }
+ return null;
+}
+```
+
+
+
+
+
+```ts
+const authenticationProvider = async (userContext:IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVSnowflakeDataSource) {
+ return new RVKeyPairDataSourceCredential("user", "unencrypted rsa-key");
+ }
+ return null;
+}
+```
+
+
+
+
+`RVKeyPairDataSourceCredential` は、以下のデータ ソースでサポートされます。
+- Snowflake
+
+## Amazon Web Services
+
+データ ソースが Amazon Web Services (AWS) を使用している場合は、`RVAmazonWebServicesCredentials` クラスのインスタンスを返す必要があります。`RVAmazonWebServicesCredentials` クラスは、**key** と **secret** を定義するためのコンストラクターのオーバーロードを提供します。
+
+
+
+
+```cs
+public class AuthenticationProvider: IRVAuthenticationProvider
+{
+ public Task ResolveCredentialsAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ IRVDataSourceCredential userCredential = null;
+ if (dataSource is RVS3DataSource)
+ {
+ userCredential = new RVAmazonWebServicesCredentials("key", "secret");
+ }
+ return Task.FromResult(userCredential);
+ }
+}
+```
+
+
+
+
+
+```java
+public class AuthenticationProvider implements IRVAuthenticationProvider {
+ @Override
+ public IRVDataSourceCredential resolveCredentials(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVS3DataSource) {
+ return new RVAmazonWebServicesCredentials("key", "secret");
+ }
+ return null;
+ }
+}
+```
+
+
+
+
+
+```js
+const authenticationProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVS3DataSource) {
+ return new reveal.RVAmazonWebServicesCredentials("key", "secret");
+ }
+ return null;
+}
+```
+
+
+
+
+
+```ts
+const authenticationProvider = async (userContext:IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVS3DataSource) {
+ return new RVAmazonWebServicesCredentials("key", "secret");
+ }
+ return null;
+}
+```
+
+
+
+
+`RVAmazonWebServicesCredentials` は、次のデータ ソースでサポートされています。
+- Amazon Athena
+- Amazon S3
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/beta-features.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/beta-features.md
new file mode 100644
index 00000000..355dbffa
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/beta-features.md
@@ -0,0 +1,80 @@
+# ベータ機能 API
+
+Reveal SDK は、**ベータ機能**を有効にして管理するための集中的な方法を提供します。これにより、正式にリリースされる前に新しい機能や実験的な機能をテストできます。
+
+## ベータ機能の有効化
+ベータ機能は以下を使用して有効にできます。
+
+```javascript
+//enable one feature
+$.ig.RevealSdkSettings.betaFeatures.enable("newPieChart");
+
+//enable multiple features
+$.ig.RevealSdkSettings.betaFeatures.enable("newPieChart", "newDonutChart");
+
+//alternatively use an array
+$.ig.RevealSdkSettings.betaFeatures.enable(...[
+ "newPieChart",
+ "newDonutChart"
+]);
+```
+
+## ベータ機能の無効化
+以前に有効にしたベータ機能を無効にするには:
+
+```javascript
+$.ig.RevealSdkSettings.betaFeatures.disable("newPieChart");
+```
+
+## 有効化されたすべてのベータ機能を取得する
+
+```javascript
+const betafeatures = $.ig.RevealSdkSettings.betaFeatures.getEnabledFeatures();
+```
+
+## 利用可能なベータ フラグ
+次のベータ機能フラグを使用できます:
+
+### `newBulletGraph`
+実験的なブレット グラフの表示形式を有効にします。
+
+> 🚫 現時点では一般的な使用には**推奨されません**。このコンポーネントはまだ**開発中**であり、**実稼働環境に対応していません**。機能の制限、不完全なスタイリング、および予期しない問題が発生する可能性がありますので、ご注意ください。
+
+### `newCircularGauge`
+実験的なラジアル (円形) ゲージの表示形式を有効にします。
+
+> 🚫 現時点では一般的な使用には**推奨されません**。このコンポーネントはまだ**開発中**であり、**実稼働環境に対応していません**。機能の制限、不完全なスタイリング、および予期しない問題が発生する可能性がありますので、ご注意ください。
+
+### `newLinearGauge`
+実験的なリニア ゲージの表示形式を有効にします。
+
+> 🚫 現時点では一般的な使用には**推奨されません**。このコンポーネントはまだ**開発中**であり、**実稼働環境に対応していません**。機能の制限、不完全なスタイリング、および予期しない問題が発生する可能性がありますので、ご注意ください。
+
+### `newDataGrid`
+Reveal SDK で新しいデータ グリッドの表示形式を有効にします。
+
+新しいデータ グリッドには次の機能があります:
+- レンダリング パフォーマンスの向上
+- 強化された並べ替えとフィルタリング機能
+- 列の集計のサポート
+- 列のピン固定機能
+- モバイルやタブレットでのエクスペリエンスを向上させるレスポンシブ レイアウト
+- モダンなグリッド エクスペリエンスのためのその他の改善
+
+この機能により、グリッドの表示形式が大幅にアップグレードされ、ユーザーはより強力で柔軟なデータ グリッド コンポーネントを利用できるようになります。表形式のデータを扱う際に、高度なグリッド機能と優れたパフォーマンスが必要なユーザーに最適です。
+
+> ✅ ダッシュボードでの改善されたグリッド パフォーマンスと新しいグリッド機能をテストする場合に**推奨されます**。
+
+### `newTooltip`
+Reveal SDK で新しいホバーベースのツールチップ エクスペリエンスを有効にします。
+
+この機能を有効にすると、次のようになります。
+
+- ツールチップはクリック時ではなく**ホバー時**に表示されます。
+- **ツールチップ アクション** (ドリルダウン、フィルタリングなど) は、クリックしなくてもすぐに利用できます。
+- 表示形式内のインタラクティブ オプションの発見可能性と使いやすさが向上します。
+- 一般的なデータ視覚化の実践に合わせた、よりモダンで直感的なエクスペリエンスを提供します。
+
+この動作は、ユーザーがデータ ポイントを**クリックした**後にのみ表示されるデフォルトのツールチップからの大きな変更です。`newTooltip` フラグにより、インタラクションの流れが簡素化され、ホバー ツールチップによる高速かつ手間の少ないデータ探索が可能になります。
+
+> ✅ より高速でインタラクティブなデータ探索をテストする場合に**推奨されます**。
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/caching.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/caching.md
new file mode 100644
index 00000000..a1e060fb
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/caching.md
@@ -0,0 +1,309 @@
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# キャッシュ
+
+Reveal SDK のキャッシュは、クエリされたすべてのデータを、キャッシュと呼ばれる高速な組み込みデータベースに保存することでパフォーマンスを最適化するように設計されたデフォルトの仕組みです。このプロセスにより、頻繁にアクセスされるデータがすぐに利用できるようになり、クエリの開始時に、要求されたデータがすでにキャッシュに存在するかどうかが SDK によって自動的にチェックされます。キャッシュ ヒットの場合、SDK は元のソースへの追加リクエストを必要とせずに、情報を迅速に取得します。
+
+## キャッシュの仕組み
+SDK を通じてデータをクエリすると、パイプライン ステップごとに、そのデータを取得するために使用されるすべてのオプションを含む新しい**キー**が作成されます。この**キー**は、パイプライン ステップからの結果データと一緒に保存されます。同じ操作を繰り返すと、各パイプライン ステップに固有のキーが認識され、対応するデータがキャッシュから取得されます。ただし、順序付けやフィルタリングなど、特定のステップのデータ クエリの構成を変更すると、**キー**は一致せず、影響を受けるステップおよびそれ以降のステップで処理が実行されます。この新しいクエリは結果とともに保存されます。たとえば、Excel ファイルから取得したデータの順序を変更しても、ファイルが再度ダウンロードされることはなく、フィルターやその後のステップなど、変更が必要な特定のステップの処理のみが実行されます。
+
+### 処理パイプライン
+処理パイプラインは、データがシステムで処理される一連のステージを示します。処理パイプラインを理解することは、キャッシュがどこでどのように動作するかを識別するために重要であり、データ取得の最適化と全体的な処理効率の向上に重要な役割を果たします。
+
+```mermaid
+graph LR;
+ A[Download Resource]-->B[Create Dataset]-->C[Calculate Fields]-->D[Filter]-->E[Pivot Table Build]-->F[Post Pivot - Calculate Fields]-->G[Post Pivot - Filter];
+```
+
+
+
+- `[Download Resource]` ステージは、通常、CSV/Json/Excel ファイルをダウンロードするリソースベースのデータ ソースを使用する場合にのみ適用されます。
+- 要求されたデータによっては、一部のステージがスキップされたり、変更が加えられなかったりする場合があります。たとえば、処理するピボット後の計算フィールドがないか、データ ソースに送信されるクエリにすべてのフィルターが含まれている場合は、`[Filter]` ステップが不要になる可能性があります。
+- SSAS データ ソースは別の処理パイプラインを使用するため、これらのステージは SSAS データ ソースには適用されません。
+
+### キャッシュ ファイル
+デフォルトでは、キャッシュ ファイルは現在のユーザーの一時ディレクトリ内の `RevealCache_XXXX` という名前のフォルダーに保存されます。`XXXX` はインスタンスを識別する番号です。`CachePath` と `DataCachePath` という 2 つの構成プロパティを使用して、このデフォルトの動作をオーバーライドできます。
+
+```cs
+builder.Services
+ .AddControllers()
+ .AddReveal(revealSetupBuilder =>
+ {
+ revealSetupBuilder.AddSettings(settings =>
+ {
+ settings.CachePath = "your-cache-path";
+ settings.DataCachePath = "your-data-cache-path";
+ });
+ });
+```
+
+- `CachePath` は、残りのキャッシュ ファイル (ダウンロード ファイルなど) が保存されるディレクトリを指します。デフォルトでは、システムの一時ディレクトリにある `RevealCache_XXXX` という名前のディレクトリになります。
+- `DataCachePath` は、ファイル キャッシュ データが保存されるディレクトリを指します。デフォルトは `CachePath` です。
+
+追加のプロパティを構成して、キャッシュ サイズを制御できます。
+
+```cs
+builder.Services.AddControllers().AddReveal(revealSetupBuilder =>
+{
+ revealSetupBuilder.AddSettings(settings =>
+ {
+ settings.MaxStorageCells = 10000000;
+ settings.MaxDownloadSize = 209715200;
+ settings.MaxStringCellSize = 256;
+ settings.MaxTotalStringsSize = 64000000;
+ });
+});
+```
+
+- `MaxStorageCells` は、任意のデータ ソースから処理されるセルの予想される最大サイズを指します。エンジンは、キャッシュにディスク領域を使いすぎないようにします。この設定は、キャッシュ管理のヒントを提供します。デフォルトは 1000 万セルです。
+- `MaxDownloadSize` は、1 回のダウンロード (CSV ファイルなど) の最大サイズをバイト単位で表します。デフォルトは 200 MB です。
+- `MaxStringCellSize` は、データセット列の文字列が持つことができる文字数の制限を指します。デフォルトは 256 です。
+- `MaxTotalStringsSize` は、すべてのセルの文字の総数として指定された、ピボット テーブルまたはグリッドの予想される最大サイズを指します。この設定によりメモリ管理のヒントを提供し、エンジンによるメモリの過多な使用を避けます。デフォルトは 6400 万です。
+
+### キャッシュの種類
+**Download (ダウンロード)** - `[Download Resource]` ステージで使用されるこのキャッシュは、CSV/Excel/Json ファイルからデータを読み取るときに、ダウンロードされたリソースを保存します。ファイルシステム キャッシュは `[RevealCache]/download` に保存され、関連するメタデータは `[RevealCache]/download.sqlite` に保存されます。
+
+個々のダウンロードは、`MaxDownloadSize` 設定で指定されたバイト数によって制限されます。ダウンロード キャッシュの全体的なサイズは 5GB に固定されています。現時点ではこの制限を変更するための API が存在しないことに注意してください。
+
+**Dataset (データセット)** - `[Create Dataset]` ステージと `[Calculate Fields]` ステージで使用されます。
+
+Sqlite ファイルは `[RevealCache]/dataset` に保存され、メタデータは `dataset.sqlite` に存在します。
+
+一部のデータセットはメモリ内に生成され、メモリ内のデータセット キャッシュにも保存されます。
+
+個々のデータセットのサイズは、一連のパラメーターによって間接的に制限されます: `MaxStorageCells` および `MaxTotalStringsSize`。データセット キャッシュの合計サイズは 5 GB に固定されています。現時点では、この制限を変更するために使用できる API はありません。
+
+**Tabular Data (表形式のデータ)** - このキャッシュは、すべてのステージを実行した後の結果を保持します。
+
+データは JSON としてシリアル化され、メモリ内キャッシュに一時的に保存されます。
+
+## キャッシュの更新
+キャッシュの更新には、精度を維持し、最新の情報を反映するために、キャッシュ内に保存されているデータを更新することが含まれます。デフォルトでは、キャッシュは `1 日に 1 回`更新されるように設定されています。キャッシュ更新の動作は視覚化 UI から変更でき、ユーザーは特定の要件に基づいて更新期間を変更したり、手動更新をトリガーしたりできます。
+
+メニューの更新オプション (3 つの点で示されている) をクリックするだけで、手動更新をトリガーできます。
+
+
+
+データの更新頻度コンボ ボックスから別の値を選択することで、更新頻度を変更できます。このオプションは、データ ソース構成ダイアログで使用できます。
+
+使用できるオプションは以下のとおりです。
+- 常に
+- 1 時間に 1 回
+- 1 日に 1 回
+- 週に 1 回
+
+
+
+## キャッシュの無効化
+キャッシュを無効にすることは利用可能なオプションではありません。ただし、データ ソースのデータ更新頻度を `[常に]` に設定すると、同様の結果が得られます。この構成により、アプリケーションはキャッシュをバイパスして常に新しいデータを取得できるようになります。クエリ中にキャッシュが参照されない場合でも、処理されたデータは保存されることに注意してください。このアプローチでは最新の情報へのアクセスが保証されますが、リアルタイム アクセスを利用する場合、データ ソースへの負荷の増加による潜在的なパフォーマンスへの影響に留意することが重要です。開発者は、デバッグ目的や、頻繁に変更される動的データを扱う場合に、一時的にこの構成を選択することがあります。
+
+キャッシュをバイパスするには、データ ソースのデータ更新頻度を `[常に]` に設定します。
+
+
+
+## Redis Cache
+
+Reveal SDK は、分散キャッシュ プロバイダーとして Redis を使用することをサポートしており、複数のサーバー インスタンス間でのキャッシュ共有を可能にします。これは、アプリケーションの複数のインスタンスが同じキャッシュされたデータにアクセスする必要がある負荷分散環境で特に役立ちます。
+
+:::note
+
+Redis Cache 機能は、表形式のデータに使用されるメモリ内キャッシュを置き換えます。ローカル処理操作では引き続き SQLite キャッシュが使用されます。ローカル処理は、直接クエリできないソースからのデータを取得してローカルで処理する必要がある場合に発生します。これには以下の設定が含まれます。
+- ストアド プロシージャ
+- REST API
+- クロス データ ソース結合を含むデータ ソース項目
+- クエリ実行のために元のソースからデータを取得して一時的に保存する必要があるその他のソース
+
+:::
+
+### インストール
+
+
+
+
+ASP.NET アプリケーションの場合、Redis Cache のサポートを有効にするには、別の NuGet パッケージをインストールする必要があります。
+
+```bash
+dotnet add package Reveal.Sdk.Cache.Redis
+```
+
+
+
+
+Node.js アプリケーションの場合、Redis Cache はメインの Reveal SDK パッケージに既に含まれています。標準の Reveal SDK セットアップ以外に追加のインストールは必要ありません。
+
+
+
+
+Java アプリケーションの場合、Redis Cache はメインの Reveal SDK パッケージに既に含まれています。標準の Reveal SDK セットアップ以外に追加のインストールは必要ありません。
+
+
+
+
+### 構成
+
+Redis Cache を有効にするには、アプリケーションの初期化時に接続を構成します。
+
+
+
+
+```cs
+builder.AddRedisCache((options) => {
+ options.ConnectionString = "localhost:6379";
+});
+```
+
+
+
+
+
+```js
+const revealOptions = {
+ ...
+ redisOptions: { connectionString: "localhost:6379" }
+};
+```
+
+
+
+
+
+```ts
+const revealOptions: RevealOptions = {
+ ...
+ redisOptions: { connectionString: "localhost:6379" }
+};
+```
+
+
+
+
+
+```java
+initializeParameterBuilder.enableRedisCache((options) -> {
+ options.setConnectionString("localhost:6379");
+});
+```
+
+
+
+
+### Redis 構成オプション
+
+Redis Cache プロバイダーは、接続と動作をカスタマイズするためのさまざまな構成オプションをサポートしています。
+
+- **ConnectionString** - Redis サーバー接続文字列またはエンドポイント (例: "localhost:6379")。デフォルトは空の文字列です。
+- **EndPoints** - Redis クラスターまたは複数の Redis インスタンスに接続するために使用されるエンドポイント URL のリスト。デフォルトは null です。
+- **User** - Redis 認証のユーザー名。デフォルトは null です。
+- **Password** - Redis 認証のパスワード。デフォルトは null です。
+- **UseSsl** - SSL/TLS 暗号化が有効かどうかを示します。デフォルトは false です。
+- **DefaultDatabase** - 使用するデフォルトのデータベース番号。デフォルトは 0 です。
+- **ClientName** - 識別用のクライアント名。デフォルトは null です。
+- **ConnectTimeoutMs** - 接続タイムアウト (ミリ秒単位)。デフォルトは 5000 です。
+- **SyncTimeoutMs** - 同期操作のタイムアウト (ミリ秒単位)。デフォルトは 5000 です。
+- **AsyncTimeoutMs** - 非同期操作のタイムアウト (ミリ秒単位)。デフォルトは 5000 です。
+- **ConnectRetry** - 接続再試行回数。デフォルトは 3 です。
+- **KeepAliveSeconds** - キープアライブ間隔 (秒単位)、無効にするには -1。デフォルトは 60 です。
+- **AbortOnConnectFail** - 接続失敗時に中止するかどうかを示します。デフォルトは false です。
+- **AllowAdmin** - 管理コマンド (FLUSHDB、CONFIG など) が許可されるかどうかを示します。デフォルトは false です。
+- **ReconnectRetryPolicy** - 再接続再試行ポリシー: Linear または Exponential。デフォルトは Linear です。
+- **RetryDelayMs** - 再試行ポリシーの基本遅延 (ミリ秒単位)。デフォルトは 1000 です。
+
+追加の構成オプションの例:
+
+
+
+
+```cs
+builder.AddRedisCache((options) => {
+ options.ConnectionString = "localhost:6379";
+ options.Password = "your-password";
+ options.UseSsl = true;
+ options.DefaultDatabase = 1;
+ options.ConnectTimeoutMs = 10000;
+});
+```
+
+
+
+
+
+```js
+const revealOptions = {
+ ...
+ redisOptions: {
+ connectionString: "localhost:6379",
+ password: "your-password",
+ useSsl: true,
+ defaultDatabase: 1,
+ connectTimeoutMs: 10000
+ }
+};
+```
+
+
+
+
+
+```ts
+const revealOptions: RevealOptions = {
+ ...
+ redisOptions: {
+ connectionString: "localhost:6379",
+ password: "your-password",
+ useSsl: true,
+ defaultDatabase: 1,
+ connectTimeoutMs: 10000
+ }
+};
+```
+
+
+
+
+
+```java
+initializeParameterBuilder.enableRedisCache((options) -> {
+ options.setConnectionString("localhost:6379");
+ options.setPassword("your-password");
+ options.setUseSsl(true);
+ options.setDefaultDatabase(1);
+ options.setConnectTimeoutMs(10000);
+});
+```
+
+
+
+
+## よくある質問
+
+**質問: キャッシュは多くのディスク領域を消費しますか?**
+
+**答:** キャッシュは約 20 GB を使用するように設計されており、必要に応じて古いエントリが自動的に削除されます。現在、このサイズを調整するための公開設定はありません。
+
+**質問: ディスクがいっぱいになってきていますが、Reveal が原因だと思います。**
+
+**答え:** バグを報告する前に、OS の一時ディレクトリがクリアされていないか確認してください。Reveal やその他のプロセスは、OS が再起動するまで削除されない可能性がある一時ファイルを生成する場合があります。このディレクトリを定期的に管理するために、クリーンアップ処理をスケジュールすることを考慮してください。Reveal は自動的に削除される一時ファイルをいくつか作成します。そのため、最近作成されたファイルは Reveal で進行中の操作の一部である可能性があるため、クリーンアップ処理によって削除されないようにしてください。さらに、Reveal のキャッシュ フォルダーが OS の一時ディレクトリ内に存在する場合、クリーンアップ処理によって削除されることはありません。
+
+**質問: 異なるユーザーのキャッシュ エントリを分離するにはどうすればよいですか?**
+
+**答え:** これはセキュリティ上の理由からよく行われます。ただし、異なるユーザーが基になるデータ ソースに対して同等のアクセス権を持っている場合は、キャッシュ エントリを共有することで全体的なパフォーマンスを向上できます。デフォルトでは、Reveal は後者のアプローチを採用します。セキュリティに関しては、次の点に注意する必要があります。
+ - 現在のユーザーを識別するには、`IRVUserContextProvider` の `IRVUserContext.UserId` プロパティを設定します。このコンテキストは `IRVDataSourceProvider` および `IRVAuthenticationProvider` でアクセス可能であり、ユーザー固有の決定が可能になります。
+ - 現在のユーザーの `IRVDataSourceProvider` でデータ ソースを構成します。データ ソースをユーザーのロールに関連するものに制限し、それに応じてプロパティを調整します (例: Database/Table/CustomQuery プロパティがユーザーの権限と一致していることを確認する)。
+ - `IRVAuthenticationProvider` でユーザーに適切な資格情報を割り当てます。
+
+ これらの手順は、キャッシュに関係なく、セキュリティにとって重要です。キャッシュに関しては、Reveal は提供された情報 (データ ソース、資格情報、場合によっては UserId) を利用してキャッシュ エントリを作成します。これらのエントリは、同じデータ ソースと資格情報を共有している場合にのみユーザー間で共有できます。つまり、一致する権限で同一のクエリを実行できることを意味します。
+
+**質問: `IRVUserContext.UserId` はキャッシュエントリにどのような影響を与えますか?**
+
+**答え:** 現在のところ、個別の UserId 値がキャッシュ内に個別のエントリを生成するという保証はありません。ただし、`RVHeadersDataSourceCredentials` 資格情報タイプを使用する場合は、UserId が正しく設定されていることを確認することが重要です。正しく設定されていないと、キャッシュの問題が発生する可能性があります。
+
+**質問: `RVBearerTokenDataSourceCredential.UserId` プロパティはキャッシュ エントリにどのような影響を与えますか?**
+
+**答え:** `RVBearerTokenDataSourceCredential.UserId` が設定されている場合は、キャッシュ エントリ キーの作成時に使用されるため、パフォーマンスを向上させるために設定することをお勧めします。`RVBearerTokenDataSourceCredential` の UserId は `RVBearerTokenDataSourceCredential` アクセス トークンにリンクされた UserId に対応し、`IRVUserContext` の UserId と異なる場合があることに注意してください。
+
+**質問: 導入では、Reveal サーバーのインスタンスが複数存在します。どうすればキャッシュを共有できるのでしょうか?**
+
+**答え:** Reveal SDK は、複数のサーバー インスタンス間でキャッシュを共有できる Redis Cache をサポートするようになりました。[Redis Cache](#redis-cache) セクションで説明されているように Redis Cacheを構成すると、すべてのサーバー インスタンスが同じ分散キャッシュにアクセスできるようになります。これは、負荷分散された展開に推奨される方法です。
+
+代替手段として、Redis が利用できない場合、ロード バランサーを設定し、同一グループのユーザーを同じ Reveal サーバー インスタンスにルーティングすることができます。これにより、キャッシュ エントリが特定のインスタンス内に作成され、それらのユーザーからの後続のリクエストは同じインスタンスにヒットし、キャッシュされたデータを効率的に利用できるようになります。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/chart-types.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/chart-types.md
new file mode 100644
index 00000000..e13e05c6
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/chart-types.md
@@ -0,0 +1,69 @@
+# チャート タイプ
+
+**チャート タイプ**は、ダッシュボードの視覚化として使用できるさまざまなタイプのチャートを表します。可視化を作成または編集する場合、チャート タイプは [チャート タイプ] ドロップダウン メニューから選択します。
+
+
+
+Reveal SDK は、さまざまなグループに配置された 37 タイプのチャートを提供します。グループは次のとおりです。
+
+- 最も人気
+- グリッド
+- カテゴリ
+- ゲージ
+- マップ
+- 散布
+- 財務
+- 時間
+- その他
+
+## チャート タイプのカスタマイズ
+カスタム可視化を変更、削除、またはチャート タイプ ドロップダウンに追加するには、`revealView.chartTypes` 配列内の項目を変更するだけです。
+
+### チャート タイプの更新
+既存のチャート タイプを更新するには、`revealView.chartTypes` プロパティでチャート タイプを見つけます。チャート タイプのさまざまなプロパティを変更して、チャート タイプ項目の名前変更、アイコンの変更、または再グループ化を行います。
+
+```js
+var barConfig = revealView.chartTypes.find(x => x.chartType == 'BarChart');
+barConfig.title = 'My Cool Bar';
+barConfig.icon = 'https://help.revealbi.io/img/logo.png';
+barConfig.groups = ["Enterprise Visualizations", "HR", "Some Other Category"];
+```
+
+### チャート タイプの削除
+削除するチャート タイプ項目のインデックスを見つけて、それを `chartTypes` 配列から削除することで、チャート タイプを削除します。
+
+```js
+var gridConfig = revealView.chartTypes.find(x => x.chartType == 'Grid');
+revealView.chartTypes.splice(revealView.chartTypes.indexOf(gridConfig), 1);
+```
+
+### カスタム チャート タイプの追加
+既存のチャート タイプ項目を更新および削除するだけでなく、カスタム可視化を新しいチャート タイプとして [チャート タイプ] ドロップダウンに追加することもできます。
+
+```js
+revealView.chartTypes.push({
+ title: "Custom Viz",
+ url: "https://host/customViz.html", //provide the url to your custom vizualization
+ icon: "https://help.revealbi.io/img/logo.png",
+ groups: ["Custom Vizualizations"]
+});
+```
+
+## デフォルトのチャート タイプを設定する
+デフォルトでは、Reveal SDK はデフォルトのチャート タイプとして `ColumnChart` チャートを設定します。デフォルトのチャート タイプを変更するには、`revealView.defaultChartType` プロパティを [RVChartType](https://help.revealbi.io/api/javascript/latest/enums/rvcharttype.html) 列挙メンバーの 1 つに設定します。
+
+```js
+revealView.defaultChartType = "StackedColumnChart";
+```
+
+デフォルトのチャート タイプをカスタム可視化に設定する場合は、`revealView.defaultCustomChartType` プロパティをカスタム可視化のタイトルに設定する必要があります。
+
+```js
+revealView.defaultChartType = "My Custom Viz";
+```
+
+:::info コードの取得
+
+チャート タイプを示すサンプルは、[GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/ChartTypes) で見つけることができます。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/click-events.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/click-events.md
new file mode 100644
index 00000000..f8275545
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/click-events.md
@@ -0,0 +1,24 @@
+# クリック イベント
+
+エンドユーザーが表示形式内のデータ ポイントをクリックすると、`onVisualizationDataPointClicked` イベントが呼び出されます。`onVisualizationDataPointClicked` イベントにイベント ハンドラーを追加することで、このイベントに応答できます。
+
+```js
+revealView.onVisualizationDataPointClicked = (visualization, cell, row) => {
+
+};
+```
+
+イベント ハンドラーには、次のパラメーターがあります:
+- **cell** - クリックされたデータ ポイントを取得します。
+- **row** - セルに関連付けられているセル データのコレクションを取得します。
+- **visualization** - クリックされた視覚化を取得します。
+
+`cell` や`row` のパラメーターなど、イベントによって公開されたパラメーターを使用することで、クリックされたデータ ポイントに関連付けられているデータを読み取ることができます。
+
+`row` プロパティは、クリックされたセルに関連付けられた各データ ポイントを表すすべての `RVDataCell` オブジェクトのコレクションを提供することを理解することが重要です。
+
+`RVDataCell` には次のプロパティがあります:
+- **columnLabel** - データ ポイントに属する列のラベルまたはカスタム名称
+- **columnName** - データ ポイントに属する列の名前
+- **formattedValue** - データ ポイントの書式設定された値
+- **value** - データ ポイントの元の値
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/configure-export.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/configure-export.md
new file mode 100644
index 00000000..c850cfa7
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/configure-export.md
@@ -0,0 +1,107 @@
+# エクスポートの構成
+
+## ASP.NET
+
+ダッシュボードを**画像**、**PDF**、または **PowerPoint** に (プログラムで、またはユーザーの操作を通じて) エクスポートするために、RevealSDK は内部で [Playwright](https://playwright.dev/dotnet/) を使用します。
+
+デフォルトでは、ユーザーがダッシュボードを画像、PDF、または PowerPoint に初めてエクスポートしようとすると、Playwright は Chromium ブラウザーを現在のプラットフォームのデフォルトの場所にダウンロードしようとします。Windows の場合、デフォルトのパスは **%userprofile%/AppData/Local/ms-playwright** です。
+
+このダウンロードには時間がかかり、ダッシュボードをエクスポートしようとする最初のエンドユーザーユーザーに遅延が発生する可能性があります。これは開発中は問題ありませんが、プロダクション環境では望ましくない場合があります。これらのシナリオでは、以下の設定を使用して、エクスポートの動作を微調整できます。
+
+これらの設定は `RevealEmbedSettings.Export` のプロパティで公開されます。
+- CreateChromiumInstancesOnDemand - これを false に設定すると、アプリの起動時に Playwright の初期化が強制的に行われます。
+- ChromiumDownloadFolder - Chromium 実行可能ファイルがダウンロードされるパス。
+- ChromiumExecutablePath - Chromium 実行可能ファイルがサーバーに予めインストールされているパス。
+- MaxConcurrentExportingThreads - エクスポートに使用される最大同時スレッド数。
+- ExportingTimeout - エクスポート操作のタイムアウト期間 (ミリ秒単位)。デフォルト値は 30000 ms。指定されたタイムアウト期間内にエクスポート操作が終了しない場合、エクスポート操作は失敗します。
+
+Playwright と Chromium をサーバーに手動でインストールするには、[Playwright CLI](https://playwright.dev/dotnet/docs/cli) を使用します。
+
+```bash
+dotnet tool install --global Microsoft.Playwright.CLI
+playwright install chromium
+```
+
+## Java
+
+(プログラム上またはユーザー インタラクションによって) ダッシュボードを**画像**にエクスポートするには、Reveal SDK は [Playwright](https://playwright.dev/java/) を使用します。ダッシュボードを **Excel**、**PDF**、または **PowerPoint** にエクスポートするには、Reveal SDK は **ExportTool** と呼ばれる内部アプリケーションを使用します。
+
+デフォルトでは、エンドユーザーがダッシュボードを画像、PDF、PowerPoint に初めてエクスポートしようとすると、Playwright と ExportTool の両方が、それらの動作に必要な依存関係のダウンロードを自動的に開始します。ただし、プラットフォームによっては、事前にインストールが必要な依存関係があったり、サーバー環境が外部ダウンロードを制限しているなど、これらのツールを手動でセットアップする必要がある場合があります。
+
+### Playwright の構成
+
+Playwright は必要なバイナリをダウンロードしようとしますが、手動での構成が必要な場合は、Playwright の[ドキュメンテーション](https://playwright.dev/java/docs/intro) を確認してください。
+
+#### Linux 依存性
+
+Linux では、複数のネイティブ・ライブラリに依存します。インストールする必要のある依存関係の正確なリストは、使用するディストリビューション、バージョン、および以前にインストールしたパッケージのリストに依存します。
+
+以下に、基本的な Ubuntu 18.0.4 ディストリビューションに必要なライブラリの一覧を示します。
+
+```bash
+sudo apt-get update
+
+sudo apt-get install -y libatk1.0-0\
+ libatk-bridge2.0-0\
+ libxkbcommon0\
+ libxcomposite1\
+ libxdamage1\
+ libxfixes3\
+ libxrandr2\
+ libgbm1\
+ libgtk-3-0\
+ libpango-1.0-0\
+ libcairo2\
+ libgdk-pixbuf2.0-0\
+ libatspi2.0-0
+
+sudo apt-get install -y --no-install-recommends xvfb
+```
+
+:::note
+
+必要であれば、ログファイルに含まれるエラーから、不足しているライブラリに関する詳細な情報を得ることができます。
+
+:::
+
+Ubuntu を使用する場合は、[Maven](https://maven.apache.org/install.html) を使用して Chromium の依存関係をインストールする必要があります。
+
+```bash
+mvn exec:java -e -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="install-deps chromium"
+```
+
+その他の環境では、以下の依存関係が必要な場合があります:
+
+```bash
+sudo apt-get install -y --allow-unauthenticated libc6-dev
+sudo apt-get install -y --allow-unauthenticated libx11-dev
+```
+
+### ExportTool の手動セットアップ
+
+ここからの手順は、以下のシナリオの場合のみ必要です。
+- 自動ダウンロードの仕組みに問題がある場合。
+- 事前にすべてをインストールしておきたい場合。
+
+ステップ 1 - お使いのプラットフォームに必要なバイナリをダウンロードします: [Windows](https://download.infragistics.com/reveal/Builds/sdk/java/ExportTool/[var:sdkVersion]/win-x64.zip)、[Linux](https://download.infragistics.com/reveal/Builds/sdk/java/ExportTool/[var:sdkVersion]/linux-x64.zip)、[macOS](https://download.infragistics.com/reveal/Builds/sdk/java/ExportTool/[var:sdkVersion]/osx-x64.zip)
+
+ステップ 2 - Web アプリケーションが動作しているサーバーのディレクトリにファイルを解凍します (ユーザーはそのディレクトリにアクセスできる必要があります)。
+
+ステップ 3 - ZIP ファイルを解凍した後、`
///ExportTool` フォルダから ExportTool を入手できます。例を以下に示します。
+
+`/1.0.0/linux-x64/ExportTool.`
+
+ステップ 4 - Reveal の初期化中に、ZIP ファイルを解凍したディレクトリを設定します。以下のようなコードになるはずです:
+
+```java
+String exportToolDir = "";
+RevealEngineInitializer.initialize(new InitializeParameterBuilder().
+ setExportToolContainerPath(exportToolDir).
+ build());
+```
+
+また、以下のようにシステムプロパティ **reveal.exportToolContainerPath** を通じてディレクトリを指定することもできます:
+
+```bash
+java -Dreveal.exportToolContainerPath= -jar target/upmedia-backend-spring.war
+```
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/creating-dashboards.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/creating-dashboards.md
new file mode 100644
index 00000000..6327f519
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/creating-dashboards.md
@@ -0,0 +1,24 @@
+# ダッシュボードの作成
+
+新しいダッシュボードの作成は本当に簡単です。`$.ig.RevealView.Dashboard` プロパティを `$.ig.RVDashboard` オブジェクトの新しいインスタンスに設定する必要があります。
+
+まず、`id` を `revealView` に設定して `` 要素を定義します。
+```html
+
+```
+
+次に、JavaScript で、`$.ig.RevealView.Dashboard` プロパティを `$.ig.RVDashboard` オブジェクトの新しいインスタンスに設定します。
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.dashboard = new $.ig.RVDashboard();
+```
+
+アプリケーションを実行すると、新しい空のダッシュボードが表示されます。
+
+
+
+ご覧のとおり、これにより使用する新しいダッシュボード インスタンスが提供されますが、ダッシュボードで使用するデータ ソースを `$.ig.RevealView` に提供していない限り、エンドユーザーは新しいダッシュボードで表示形式を作成できません。
+
+次の手順:
+- [データ ソースの追加](adding-data-sources/in-memory-data.md)
+- [ダッシュボードの読み込み](loading-dashboards.md)
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/custom-menu-items.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/custom-menu-items.md
new file mode 100644
index 00000000..5a8fd774
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/custom-menu-items.md
@@ -0,0 +1,146 @@
+# カスタム メニュー項目
+
+Reveal SDK はカスタム メニュー項目の追加をサポートしており、ユーザーはダッシュボードや可視化のコンテキスト メニューの動作を変更できます。メニューのカスタマイズにより、カスタム メニュー項目を追加したり、セパレーターを定義してセクションを作成したりすることで、独自の機能をメニューに組み込むことができます。
+
+メニューを操作するには、まずクライアント上で `revealView.onMenuOpening` イベントのイベント ハンドラーを追加する必要があります。
+
+```js
+const revealView = new $.ig.RevealView("#revealView");
+
+revealView.onMenuOpening = function (visualization, args) {
+ ...
+};
+```
+
+`menuLocation` プロパティを利用することで、ダッシュボード全体または可視化全体のメニュー項目の動作をカスタマイズできます。値 `Dashboard` はメニューがダッシュボード上にあることを示し、`Visualization` はメニューが可視化用であることを示します。
+
+```js
+const revealView = new $.ig.RevealView("#revealView");
+
+revealView.onMenuOpening = function (visualization, args) {
+ //to modify menu behavior on dashboard
+ if (args.menuLocation === $.ig.RVMenuLocation.Dashboard) {
+ ...
+ }
+
+ // to modify menu behavior on visualizations
+ if (args.menuLocation === $.ig.RVMenuLocation.Visualization) {
+ ...
+ }
+};
+```
+
+さらに、可視化の `title` などの追加プロパティに基づいて動作を柔軟にカスタマイズできます。
+
+```js
+const revealView = new $.ig.RevealView("#revealView");
+
+revealView.onMenuOpening = function (visualization, args) {
+ //to modify menu behavior on dashboard
+ if (args.menuLocation === $.ig.RVMenuLocation.Dashboard) {
+ ...
+ }
+
+ // to modify menu behavior on visualizations
+ if (args.menuLocation === $.ig.RVMenuLocation.Visualization) {
+ ...
+
+ //adding a new menu item to the "Tasks completed" visualization
+ if(visualization.title === "Tasks Completed") {
+ ...
+ }
+ }
+};
+```
+
+## 例: 特定の可視化でのカスタム メニュー項目の作成
+
+**手順 1** - クライアントに `revealView.onMenuOpening` イベントのイベント ハンドラーを追加します。
+
+**手順 2** - クラス `RVMenuItem` の新しいインスタンスを作成し、それを `args.menuItems` 配列にプッシュします。`RVMenuItem` に指定されたコールバックは、クリックされると呼び出されます。
+
+```js
+$.ig.RevealSdkSettings.setBaseUrl("https://samples.revealbi.io/upmedia-backend/reveal-api/");
+
+$.ig.RVDashboard.loadDashboard("Project Management").then(dashboard => {
+ const revealView = new $.ig.RevealView("#revealView");
+ revealView.dashboard = dashboard;
+
+ revealView.onMenuOpening = function (visualization, args) {
+ // to modify menu behavior on visualizations
+ if (args.menuLocation === $.ig.RVMenuLocation.Visualization) {
+ //adding a new menu item to the "Tasks completed" visualization
+ if(visualization.title === "Tasks Completed") {
+ const menuItem = new $.ig.RVMenuItem("Custom Item on Tasks Completed", new $.ig.RVImage("https://i.pinimg.com/736x/03/c8/a2/03c8a2aff8be6bee9064eef9b5d72d66.jpg", "Icon"), () => {
+ alert('my action');
+ })
+ args.menuItems.push(menuItem);
+ }
+ }
+ };
+});
+```
+
+## 例: メニューに新しいセクションを作成する
+
+**手順 1** - クライアントに `revealView.onMenuOpening` イベントのイベント ハンドラーを追加します。
+
+**手順 2** - `RVMenuSeparatorItem` をインスタンス化して、メニューにセパレーターを追加します。
+
+**手順 3** - 新しいセクションに追加するメニュー項目の `RVMenuItem` のインスタンスを作成します。
+
+```js
+$.ig.RevealSdkSettings.setBaseUrl("https://samples.revealbi.io/upmedia-backend/reveal-api/");
+
+$.ig.RVDashboard.loadDashboard("Project Management").then(dashboard => {
+ const revealView = new $.ig.RevealView("#revealView");
+ revealView.dashboard = dashboard;
+
+ revealView.onMenuOpening = function (visualization, args) {
+ // to modify menu behavior on visualizations
+ if (args.menuLocation === $.ig.RVMenuLocation.Visualization) {
+ args.menuItems.push(new $.ig.RVMenuSeparatorItem());
+ const menuItem1 = new $.ig.RVMenuItem("New section item 1", new $.ig.RVImage("https://i.pinimg.com/736x/03/c8/a2/03c8a2aff8be6bee9064eef9b5d72d66.jpg", "Icon"), () => {
+ alert('action 1');
+ })
+ args.menuItems.push(menuItem1);
+ const menuItem2 = new $.ig.RVMenuItem("New section item 2", new $.ig.RVImage("https://i.pinimg.com/736x/03/c8/a2/03c8a2aff8be6bee9064eef9b5d72d66.jpg", "Icon"), () => {
+ alert('action 2');
+ })
+ args.menuItems.push(menuItem2);
+ }
+ };
+});
+```
+
+
+
+## 例: 事前定義されたメニュー項目の非表示
+
+**手順 1** - クライアントに `revealView.onMenuOpening` イベントのイベント ハンドラーを追加します。
+
+**手順 2** - `args.menuItems` 配列で、非表示にする要素を見つけて、その `isHidden` プロパティを `true` に設定します。
+
+```js
+$.ig.RevealSdkSettings.setBaseUrl("https://samples.revealbi.io/upmedia-backend/reveal-api/");
+
+$.ig.RVDashboard.loadDashboard("Project Management").then(dashboard => {
+ const revealView = new $.ig.RevealView("#revealView");
+ revealView.dashboard = dashboard;
+
+ revealView.onMenuOpening = function (visualization, args) {
+ //hiding a menu item
+ for (let i = 0; i < args.menuItems.length; i++) {
+ if(args.menuItems[i].title === "Export") args.menuItems[i].isHidden = true;
+ }
+ };
+});
+```
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは、[GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/CustomMenuItems) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/custom-queries.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/custom-queries.md
new file mode 100644
index 00000000..d9dedadc
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/custom-queries.md
@@ -0,0 +1,178 @@
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+# カスタム クエリ
+
+カスタム クエリは、特定の要件に従ってデータベース内のデータを取得または操作するために特別に作成された命令です。
+データベース管理システムの事前定義クエリとは異なり、カスタム クエリは、独自のまたは複雑なデータの取得と操作のニーズを満たすように調整されています。
+
+カスタム クエリは、次のデータ ソースでサポートされています。
+
+- [Amazon Athena](adding-data-sources/amazon-athena.md)
+- Amazon Redshift
+- [Google BigQuery](adding-data-sources/google-big-query.md)
+- Microsoft Azure SQL Database
+- Microsoft Azure Synapse Analytics
+- [Microsoft SQL Server](adding-data-sources/ms-sql-server.md)
+- [MySQL](adding-data-sources/mysql.md)
+- [Oracle](adding-data-sources/oracle.md)
+- [PostgreSQL](adding-data-sources/postgres.md)
+- [Snowflake](adding-data-sources/snowflake.md)
+
+**手順 1** - クライアント上のデータ ソース項目を定義します。
+
+`RevealView.onDataSourcesRequested` イベントのイベント ハンドラーを追加します。この手順では、カスタム クエリでオーバーライドするデータ ソースを作成します。
+この例では、`RVSqlServerDataSource` を使用して SQL Server に接続しています。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+ const sqlServerDataSource = new $.ig.RVSqlServerDataSource();
+ sqlServerDataSource.id = "MySqlServerDataSource";
+ sqlServerDataSource.title = "My SQL Server";
+
+ const sqlServerDataSourceItem = new $.ig.RVSqlServerDataSourceItem(sqlServerDataSource);
+ sqlServerDataSourceItem.id = "MySqlServerDataSourceItem";
+ sqlServerDataSourceItem.title = "John Orders";
+
+ callback(new $.ig.RevealDataSources([sqlServerDataSource], [sqlServerDataSourceItem], true));
+};
+```
+
+**手順 2** - サーバー上のデータ ソース項目をオーバーライドします。
+
+```cs
+if (sqlDataSourceItem.Id == "MySqlServerDataSourceItem")
+{
+ //get the sales-person-id from the userContext
+ var salesPersonId = userContext.Properties["sales-person-id"];
+
+ //parametrize your custom query with the property obtained before
+ sqlDataSourceItem.CustomQuery =
+ $"SELECT * FROM [Sales].[SalesOrderHeader] WHERE [SalesPersonId] = {salesPersonId}";
+}
+```
+
+## 例 - クライアントが提供する値を使用したカスタム クエリの作成
+
+1 - クライアント上のデータ ソース項目を定義します。
+
+```js
+$.ig.RevealSdkSettings.setBaseUrl("http://localhost:5111/");
+
+var revealView = new $.ig.RevealView("#revealView");
+revealView.startInEditMode = true;
+
+revealView.onDataSourcesRequested = (callback) => {
+ const sqlServerDataSource = new $.ig.RVSqlServerDataSource();
+ sqlServerDataSource.id = "MySqlServerDataSource";
+ sqlServerDataSource.title = "My SQL Server";
+
+ const sqlServerDataSourceItem = new $.ig.RVSqlServerDataSourceItem(sqlServerDataSource);
+ sqlServerDataSourceItem.id = "MySqlServerDataSourceItem";
+ sqlServerDataSourceItem.title = "John Orders";
+
+ callback(new $.ig.RevealDataSources([sqlServerDataSource], [sqlServerDataSourceItem], true));
+};
+```
+
+2 - クライアントでは、`$.ig.RevealSdkSettings.setAdditionalHeadersProvider()` メソッドを使用して、サーバーに送信する追加ヘッダーを設定します。この例では、`x-sales-person-id` という名前のヘッダーを使用しています。
+
+```js
+$.ig.RevealSdkSettings.setBaseUrl("http://localhost:5111/");
+$.ig.RevealSdkSettings.setAdditionalHeadersProvider(function (url) {
+ const headers = {};
+ //set the x-sales-person-id header that identifies the sales person
+ headers["x-sales-person-id"] = "279";
+ return headers;
+});
+
+var revealView = new $.ig.RevealView("#revealView");
+revealView.startInEditMode = true;
+
+revealView.onDataSourcesRequested = (callback) => {
+ const sqlServerDataSource = new $.ig.RVSqlServerDataSource();
+ sqlServerDataSource.id = "MySqlServerDataSource";
+ sqlServerDataSource.title = "My SQL Server";
+
+ const sqlServerDataSourceItem = new $.ig.RVSqlServerDataSourceItem(sqlServerDataSource);
+ sqlServerDataSourceItem.id = "MySqlServerDataSourceItem";
+ sqlServerDataSourceItem.title = "John Orders";
+
+ callback(new $.ig.RevealDataSources([sqlServerDataSource], [sqlServerDataSourceItem], true));
+};
+```
+
+3 - サーバー上のヘッダーを処理するための `RVUserContextProvider` を定義して登録します。ヘッダーを抽出し、適切なプロパティを登録する必要があります。
+
+```cs
+public class UserContextProvider : IRVUserContextProvider
+{
+ public IRVUserContext GetUserContext(HttpContext httpContext)
+ {
+ //when using standard auth mechanisms, the userId can be obtained using aspnetContext.User.Identity.Name.
+ var userIdentityName = httpContext.User.Identity?.Name;
+ var userId = userIdentityName ?? "guest";
+
+ //get the sales-person-id header set on the client
+ var salesPersonId = httpContext.Request.Headers["x-sales-person-id"];
+
+ //add the sales-person-id property
+ var props = new Dictionary
{ { "sales-person-id", salesPersonId } };
+
+ return new RVUserContext(userId, props);
+ }
+}
+```
+
+4 - データ ソース プロバイダーで、データ ソース項目をオーバーライドしてカスタム クエリを定義します。
+
+```cs
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId,
+ RVDataSourceItem dataSourceItem)
+ {
+ if (dataSourceItem is RVSqlServerDataSourceItem sqlDataSourceItem)
+ {
+ //update underlying data source
+ ChangeDataSourceAsync(userContext, sqlDataSourceItem.DataSource);
+
+ if (sqlDataSourceItem.Id == "MySqlServerDataSourceItem")
+ {
+ //get the sales-person-id from the userContext
+ var salesPersonId = userContext.Properties["sales-person-id"];
+
+ //parametrize your custom query with the property obtained before
+ sqlDataSourceItem.CustomQuery =
+ $"SELECT * FROM [Sales].[SalesOrderHeader] WHERE [SalesPersonId] = {salesPersonId}";
+ }
+ }
+
+ return Task.FromResult(dataSourceItem);
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext,
+ RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVSqlServerDataSource sqlDataSource)
+ {
+ sqlDataSource.Host = "your-host";
+ sqlDataSource.Database = "your-database";
+ }
+
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+:::caution
+
+Java で `MySqlDataSourceItem` を使用する場合は、必ずテーブルの完全修飾名を使用してください。そうしないと機能しません。完全修飾テーブル名は、データベース識別子とテーブル識別子で構成されます (例: `database.table`)。クエリにこの構造が反映されていることを確認してください (`SELECT * FROM database.table` など)。
+
+:::
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/CustomQueries) にあります。
+
+:::
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/custom-visualizations.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/custom-visualizations.md
new file mode 100644
index 00000000..f0c6acd3
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/custom-visualizations.md
@@ -0,0 +1,175 @@
+# カスタム表示形式
+
+Reveal SDK は、アプリケーションにシームレスに統合される、豊富な種類の事前定義された表示形式を、デフォルトでユーザーに提供します。これらの表示形式は、データを素早く効率的に表示するための手段を提供します。ただし、特殊な状況や特別なケースでは、特有の要件に従ってデータの表示をカスタマイズする必要がある場合があります。このような場合、Reveal SDK はカスタム表示形式を通じてソリューションを提供します。
+
+カスタム表示形式は、自由に定義できる特注のコンポーネントとして機能します。これらのコンポーネントは Reveal SDK から直接データを受け取ることができ、標準にはない高度にカスタマイズされた方法で情報を表示できるようになります。このようなカスタマイズにより、アプリケーションの特定の視覚的および分析的ニーズを確実に満たすことができ、よりカスタマイズされたユーザー中心のエクスペリエンスを提供できます。特殊なチャート、独自のグラフ、またはデータの独特な表現のいずれであっても、カスタム表示形式は、真にパーソナライズされた効果的なデータ プレゼンテーション ソリューションを作成するためのツールを開発者に提供します。
+
+カスタム表示形式を作成するには、**事前定義されたコンポーネント** (表示形式が描画する方法を示す) と**ブリッジ** (コンポーネントと Reveal SDK によって管理されるデータとの間の接続として機能する) の両方が必要です。ブリッジはデータ変更のイベントを公開する必要があり、コンポーネントはこのイベントをサブスクライブして更新されたデータを取得する必要があります。
+
+# ブリッジのセットアップ
+
+上記に記述した通り、SDK からのデータを使用するには、ブリッジを定義する必要があります。以下は、ブリッジがどのように構造化されるかを示しています。
+
+```js
+var host;
+window.revealBridge = {
+ sendMessageToHost: function (data) {
+ try {
+ if (window.parent && window.parent.location) {
+ window.parent.postMessage(data, "*");
+ }
+ } catch (e) {
+ // window.parent.postMessage couldn't be executed.
+ // This sould never happen but...
+ }
+ },
+
+ notifyExtensionIsReady: function (formatting) {
+
+ if (formatting) {
+ this.sendMessageToHost({ message: "ready", formatting: true });
+ } else {
+ this.sendMessageToHost({ message: "ready" });
+ }
+ },
+}
+
+function processMessageFromHost(message) {
+ if (!message || !message.data || !message.data.metadata) {
+ return;
+ }
+
+ if (message.data.message) {
+ // This is the same message that I'm sending to notify that the extension is ready and the iPad is sending it back here.
+ return;
+ }
+
+ if (!window.revealBridgeListener) {
+ return;
+ }
+
+ window.revealBridgeListener.dataReady(message.data);
+};
+
+window.addEventListener('message', processMessageFromHost, false);
+```
+
+# カスタム表示形式の定義
+
+この例では、Angular を使用しています。Angular コンポーネントを作成しましょう。コンポーネント内には、ブリッジで事前に定義された `window.revealBridgeListener` のイベント ハンドラーを含める必要があります。
+
+```ts
+export class TableComponent implements OnInit {
+
+ data: any = [];
+ headers: any = [];
+
+ constructor(private ref: ChangeDetectorRef) { }
+
+ ngOnInit(): void {
+ window.revealBridgeListener = {
+ dataReady: (incomingData: any) => {
+ this.data = this.dataToJson(incomingData);
+ this.createTableHeaders(this.data);
+ this.ref.detectChanges();
+ }
+ };
+ window.revealBridge.notifyExtensionIsReady();
+ }
+
+ createTableHeaders(data: any) {
+ if (data.length === 0) {
+ return;
+ }
+
+ Object.keys(this.data[0]).map((propertyName: string) => {
+ this.headers.push(propertyName)
+ })
+ }
+
+ dataToJson(data: any) {
+ let propertyNames = [];
+
+ if (!data.metadata.columns) {
+ return [];
+ }
+
+ for (var c = 0; c < data.metadata.columns.length; c++) {
+ var column = data.metadata.columns[c];
+ propertyNames.push(column.name);
+ }
+
+ let dataObjects = [];
+ for (var i = 0; i < data.data.length; i++) {
+ var rowData = data.data[i];
+ let dataObject: any = {};
+ for (var j = 0; j < rowData.length; j++) {
+ dataObject[propertyNames[j]] = rowData[j];
+ }
+ dataObjects.push(dataObject);
+ }
+
+ return dataObjects;
+ }
+}
+```
+
+これで、必要に応じてデータを表示する準備が整いました。以下はテンプレートを表しています。
+
+```html
+
+
+
+
+ {{header}}
+
+
+
+
+ {{ row[header] }}
+
+
+
+
+```
+
+最後の手順として、このように定義したコンポーネントを参照して、カスタム表示形式を SDK に登録する必要があります。このコードは、Reveal ビューを含むコンポーネント内で呼び出す必要があります。
+
+`RVChartTypeItem` オブジェクトを `revealView.chartTypes` 配列に追加します。必須のプロパティ (`title`、`url`、`icon`、および `groups`) を必ず指定してください。`url` プロパティは、定義したコンポーネントの場所を参照する必要があります。
+
+チャート タイプの登録について、追加情報が必要な場合は、[カスタム チャート タイプの追加](chart-types.md#カスタム-チャート-タイプの追加)に関するドキュメントを参照してください。
+
+```ts
+export class DashboardViewerComponent implements AfterViewInit {
+
+ @ViewChild('revealView') el!: ElementRef;
+
+ async ngAfterViewInit() {
+ let dashboard = await $.ig.RVDashboard.loadDashboard("Sales");
+ var revealView = new $.ig.RevealView(this.el.nativeElement);
+ revealView.dashboard = dashboard;
+
+ //add custom vizualization to chart types drop down
+ revealView.chartTypes.push({
+ title: "HTML Table",
+ url: "http://localhost:4200/table", //provide the url to your custom vizualization
+ icon: "https://help.revealbi.io/img/logo.png",
+ groups: ["Custom Vizualizations"]
+ });
+ }
+}
+```
+
+**[チャート タイプ]** ドロップダウンに、追加した表示形式が表示されます。
+
+
+
+表示形式がダッシュボードに追加されると、次のようになります:
+
+
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/CustomVisualization) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/customizing-map-tiles.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/customizing-map-tiles.md
new file mode 100644
index 00000000..0c8caa1f
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/customizing-map-tiles.md
@@ -0,0 +1,64 @@
+# マップ タイルのカスタマイズ
+
+Reveal SDK には、散布マップ (散布図) の表示形式タイプが含まれています。デフォルトでは、この表示形式は追加のコンテキストを提供せずに、データ ポイントをマップ上に直接配置します。ただし、開発者は、ニーズに応じてこの動作を柔軟に調整できます。生データを直接表示するのではなく、マップ タイルを使用することを選択でき、フィードされたデータと一緒にマップ情報を表示することで表示形式を強化できます。このオプションは、地理データのより包括的で視覚的に魅力的な表現を提供します。
+
+現在、以下のタイル マップ プロバイダーがシステムでサポートされています: `Bing`、`Esri`、`MapBox`、および `OpenStreetMap` です。
+
+開始するには、まずデフォルトの散布マップを作成する必要があります。これはプロセスの最初の手順として機能し、散布マップの基本機能を探索できるようになります。
+
+
+
+ご覧のとおり、ポイントが正しく生成された場合でも、生成されたマップにはコンテキストが欠けています。この問題を解決するには、マップにタイルを追加する必要があります。タイルを組み込むことで、マップの全体的なコンテキストを強化する必要な背景と視覚的なフレームワークが提供され、マップがより有益でユーザーにとって魅力的なものになります。
+
+タイルを組み込むには、SDK と選択したプロバイダーとの間の接続を確立する必要があります。この場合、選択したプロバイダーとして `OpenStreetMap` を利用しています。
+
+```js
+const url = 'https://tile.openstreetmap.org/{Z}/{X}/{Y}.png'
+$.ig.RevealSdkSettings.visualizations.scatterMaps = $.ig.ScatterMapVisualizationsConfiguration.createOpenStreetMapConfiguration(url);
+```
+
+
+
+## 他のプロバイダー
+
+### Bing
+
+**手順 1** - [Bing Maps Portal](https://www.bingmapsportal.com/) でアカウントを作成します。
+
+**手順 2** - `[My account]` -> `[My Keys]` で新しいキーを作成します。
+
+**手順 3** - 以前に生成したキーをアプリケーションに追加します。
+
+```js
+$.ig.RevealSdkSettings.visualizations.scatterMaps = new $.ig.ScatterMapVisualizationsConfiguration("Bing", "your-key");
+```
+
+### Esri
+
+**手順 1** - [ArcGIS](https://www.arcgis.com/) でアカウントを作成します。
+
+**手順 2** - [新しいトークンを生成します](https://developers.arcgis.com/rest/users-groups-and-items/generate-token.htm)。
+
+**手順 3** - 生成されたトークンをアプリケーションに追加します。
+
+```js
+$.ig.RevealSdkSettings.visualizations.scatterMaps = new $.ig.ScatterMapVisualizationsConfiguration("Esri", "your-token");
+```
+
+### MapBox
+
+**手順 1** - [MapBox](https://www.mapbox.com/) でアカウントを作成します。
+
+**手順 2** - `[Tokens]` -> `[Create a token]` (または公開トークンを使用します)。
+
+**手順 3** - 生成されたトークンをアプリケーションに追加します。
+
+```js
+$.ig.RevealSdkSettings.visualizations.scatterMaps = new $.ig.ScatterMapVisualizationsConfiguration("MapBox", "your-token");
+```
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/main/CustomizingMapTiles) にあります。
+
+:::
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/data-size-limits.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/data-size-limits.md
new file mode 100644
index 00000000..f3ab38c0
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/data-size-limits.md
@@ -0,0 +1,23 @@
+# データ制限
+
+ダウンロードされたファイルのサイズ、結果セット内のセルの数 (集計後)、ピボット テーブルとグリッドのサイズ (セルの数として指定) に関して、Reveal Web を使用する場合のサーバー側のサイズ制限があります。
+これらの制限の目的は、サーバーのリソース (メモリとディスク領域) が不足するのを防ぐことです。
+
+デフォルトの制限値:
+
+- csv/json/excel をダウンロードする場合は 200mb
+- 1000 万のセル
+- 6400 万文字 (すべてのセルのすべての文字列を追加)
+
+## デフォルト値を変更
+
+### ソース
+[**RevealEmbedSettings**](https://help.revealbi.io/api/aspnet/latest/Reveal.Sdk.RevealEmbedSettings.html)
+
+
+| プロパティ | 型| 説明 |
+|---|---|---|
+| MaxDownloadSize | `System.Nullable` | 1 回のダウンロード (CSV ファイルなど) のサイズに制限を設定します。デフォルトは 200Mb です。|
+| MaxInMemoryCells | `System.Nullable` | このプロパティを、任意のデータ ソース (SQL Server テーブルの行、CSV 行など) から処理されるセルの予想される最大サイズに設定します。エンジンは、キャッシュにディスク領域を使いすぎないようにします。この設定は、キャッシュ管理のヒントを提供します。デフォルトは 1000 万セルです。 |
+| MaxStringCellSize | `System.Nullable` | データセット列の文字列が持つことができる文字数の制限を設定します。デフォルトは 256 です。 |
+| MaxTotalStringsSize | `System.Nullable` | このプロパティを、すべてのセルの文字の総数として指定された、ピボット テーブルまたはグリッドの予想される最大サイズに設定します。エンジンはメモリの使用を避け、この設定はメモリ管理のヒントを提供します。デフォルトは 6400 万です。 |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/datasources.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/datasources.md
new file mode 100644
index 00000000..771bb23c
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/datasources.md
@@ -0,0 +1,345 @@
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+import DataSourcesTable from '@site/src/components/DataSourcesTable';
+
+# データ ソース
+
+:::danger 重大な変更
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールすることが必要になる場合があります。詳細については、[サポートされるデータ ソース](web/datasources.md#サポートされるデータ-ソース) トピックを参照してください。
+
+:::
+
+Reveal SDK は、分析ツール、コンテンツ マネージャー、クラウド サービス、CRM、データベース、スプレッドシート、公開データ ソースなど、30 を超えるデータ ソースをサポートしており、毎月さらに多くのデータ ソースが出荷されています。データ ソースは、ダッシュボードのどこからデータが取得されるかを定義します。各データ ソースには、接続文字列、ユーザー ID、パスワードなど、データに接続してデータを取得するためにコードで設定した固有のプロパティがあります。
+
+Reveal SDK には、データ ソースに関して 2 つの概念があります。
+1. データ ソース - これはデータの主要なソースです。たとえば、SQL Server をデータ ソースにすることができます。
+2. データ ソース項目 - これは、データ ソースから利用できる特定の項目です。例えば、SQL Server の特定のテーブル。
+
+データ ソース (データ ストア) とデータ ソース項目 (データ項目) は、Reveal View の **[データ ソースの選択]** ダイアログで別々に分類されます。
+
+
+
+Reveal SDK でデータ ソースを作成するには、2 つの方法があります。
+1. クライアント側
+2. サーバー側
+
+## データ ソースのインストール
+
+Reveal SDK で使用するデータ ソースを作成する前に、Reveal SDK アプリケーションで使用するデータ ソースごとに正しいパッケージをインストールする必要があります。
+
+**手順 1** - 使用するデータ ソースのパッケージをインストールします。どのデータ ソースがサポートされているか、およびどのパッケージをインストールする必要があるかについては、[サポートされているデータ ソース](#サポートされるデータ-ソース) セクションを参照してください。
+
+**手順 2** - データ ソース パッケージをインストールした後、データ ソースを Reveal SDK に登録します。
+
+
+
+
+```cs
+using Reveal.Sdk;
+using Reveal.Sdk.Data;
+
+builder.Services.AddControllers().AddReveal( builder =>
+{
+ //all data sources use the RegisterXXX naming convention
+ builder.DataSources.RegisterMicrosoftSqlServer();
+});
+```
+
+
+
+
+
+```java
+Coming Soon...
+```
+
+
+
+
+
+```js
+Coming Soon...
+```
+
+
+
+
+
+```ts
+Coming Soon...
+```
+
+
+
+
+
+## クライアントでのデータ ソースの作成
+
+クライアントでデータ ソースまたはデータ ソース項目を追加するには、`RevealView.onDataSourcesRequested` イベントにイベント ハンドラーを追加します。イベント ハンドラーでは、ダッシュボードで使用されるさまざまなタイプのデータ ソースまたはデータ ソース項目のインスタンスを作成するコードを記述します。次に、これらのインスタンスを `callback` に渡して、**[データ ソースの選択]** ダイアログで使用できるようにします。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+
+ //provide all data sources and data source items in callback
+ callback(new $.ig.RevealDataSources([], [], false));
+};
+```
+- データ ソースは、コールバックの最初のパラメーターに配列として提供されます。
+- データ ソース項目は、コールバックの 2 番目のパラメーターに配列として提供されます。
+- 3 番目のパラメーターは、ダッシュボードに保存されているデータ ソースが **[データ ソースの選択]** ダイアログに表示されるかどうかを決定します。`false` の場合、`onDataSourcesRequested` イベントで作成されたデータ ソースのみが表示されます。
+
+クライアントでデータ ソースを作成するときは、データ ソースまたはデータ ソース項目のすべての接続情報を提供することが重要です。例えば、MS SQL Server のデータ ソースを作成する場合は、`host` や `database` などの接続情報を提供する必要があります。データ ソース項目の場合は、`table` を提供する必要があります。
+
+```js
+revealView.onDataSourcesRequested = (callback) => {
+
+ var sqlServerDS = new $.ig.RVSqlServerDataSource();
+ sqlServerDS.host = "your-db-host";
+ sqlServerDS.database = "your-db-name";
+ sqlServerDS.title = "My SQL Server";
+
+ var sqlServerDSI = new $.ig.RVSqlServerDataSourceItem(sqlServerDS);
+ sqlServerDSI.title = "My SQL Server Item";
+ sqlServerDSI.table = "TableName";
+
+ callback(new $.ig.RevealDataSources([sqlServerDS], [sqlServerDSI], false));
+};
+```
+
+データ ソースまたはデータ ソース項目で使用できるプロパティについては、データ ソースの対応するヘルプ トピックまたは [API ドキュメント](https://help.revealbi.io/api/javascript/latest/)を参照してください。
+
+:::warning
+
+クライアントで JavaScript を使用してデータ ソースとデータ ソース項目を作成すると、サーバー名、ホスト名、IP アドレス、ポート番号、エンドポイントなどのすべての接続情報がブラウザーに公開されます。これにより、ユーザーはこれらの値を表示できるだけでなく、変更することもできます。公開する情報に注意し、クライアント側のアプローチを使用してデータ ソースを作成することに関連する潜在的なセキュリティ リスクを考慮することが重要です。
+
+:::
+
+## サーバーでのデータ ソースの作成
+
+サーバーでのデータ ソースまたはデータ ソース項目の作成は、クライアントでの作成と似ています。主な違いは、クライアントで接続情報が提供されないことです。`IRVDataSourceProvider` を実装することにより、すべての接続情報がサーバー上で提供されます。
+
+イベント ハンドラーを `RevealView.onDataSourcesRequested` イベントに追加することから始め、データ ソースとデータ ソース項目を作成します。この例では、**MS SQL Server** を使用しています。データ ソースの識別に使用できる `id` と、**[データ ソースの選択]** ダイアログに表示される `title` のみを設定していることに注意してください。
+
+```js
+var revealView = new $.ig.RevealView("#revealView");
+revealView.onDataSourcesRequested = (callback) => {
+
+ var sqlServerDS = new $.ig.RVSqlServerDataSource();
+ sqlServerDS.id = "MySqlServerDataSource";
+ sqlServerDS.title = "My Sql Server";
+
+ var sqlServerDSI = new $.ig.RVSqlServerDataSourceItem(sqlServerDS);
+ sqlServerDSI.id = "MySqlServerDataSourceItem";
+ sqlServerDSI.title = "My Sql Server Item";
+
+ callback(new $.ig.RevealDataSources([sqlDataSource], [sqlServerDSI], false));
+};
+```
+
+次に、サーバー アプリケーションで、データ ソース プロバイダーを作成する必要があります。データ ソース プロバイダーは、Reveal SDK に接続方法を指示するデータ ソースおよびデータ ソース項目のさまざまなプロパティを変更するために使用されます。
+
+データ ソース プロバイダーは、次の 2 つの手順で作成できます。
+
+**手順 1** - データ ソース プロバイダーを作成します。この例では、クライアントで定義された **MS SQL Server** データベースに接続するための接続情報を提供しています。これを実現するために、使用しているデータ ソース/項目のタイプを決定し、オブジェクトで使用可能なプロパティを設定します。
+
+
+
+
+```cs
+public class DataSourceProvider : IRVDataSourceProvider
+{
+ public Task ChangeDataSourceItemAsync(IRVUserContext userContext, string dashboardId, RVDataSourceItem dataSourceItem)
+ {
+ if (dataSourceItem is RVSqlServerDataSourceItem sqlServerDsi)
+ {
+ //required: update underlying data source
+ ChangeDataSourceAsync(userContext, sqlServerDsi.DataSource);
+
+ //only change the table if we have selected our data source item
+ if (sqlServerDsi.Id == "MySqlServerDatasourceItem")
+ {
+ //set the table/view
+ sqlServerDsi.Table = "Orders";
+ }
+ }
+ return Task.FromResult(dataSourceItem);
+ }
+
+ public Task ChangeDataSourceAsync(IRVUserContext userContext, RVDashboardDataSource dataSource)
+ {
+ if (dataSource is RVSqlServerDataSource sqlDatasource)
+ {
+ sqlDatasource.Host = "10.0.0.20";
+ sqlDatasource.Database = "Northwind";
+ sqlDatasource.Schema = "dbo";
+ }
+ return Task.FromResult(dataSource);
+ }
+}
+```
+
+
+
+
+
+```java
+public class DataSourceProvider implements IRVDataSourceProvider {
+
+ public RVDataSourceItem changeDataSourceItem(IRVUserContext userContext, String dashboardsID, RVDataSourceItem dataSourceItem) {
+
+ if (dataSourceItem instanceof RVSqlServerDataSourceItem sqlServerDsi) {
+ //required: update underlying data source
+ changeDataSource(userContext, dataSourceItem.getDataSource());
+
+ //only change the table if we have selected our custom data source item
+ if (dataSourceItem.getId() == "MySqlServerDatasourceItem") {
+ sqlServerDsi.setTable("Orders");
+ }
+ }
+ return dataSourceItem;
+ }
+
+ public RVDashboardDataSource changeDataSource(IRVUserContext userContext, RVDashboardDataSource dataSource) {
+ if (dataSource instanceof RVSqlServerDataSource sqlDatasource) {
+ sqlDatasource.setHost("10.0.0.20");
+ sqlDatasource.setDatabase("Northwind");
+ sqlDatasource.setSchema("dbo");
+ }
+ return dataSource;
+ }
+}
+```
+
+
+
+
+
+```js
+const dataSourceItemProvider = async (userContext, dataSourceItem) => {
+ if (dataSourceItem instanceof reveal.RVSqlServerDataSourceItem) {
+
+ //required: update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MySqlServerDatasourceItem") {
+ dataSourceItem.table = "Orders";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext, dataSource) => {
+ if (dataSource instanceof reveal.RVSqlServerDataSource) {
+ dataSource.host = "10.0.0.20";
+ dataSource.database = "Northwind";
+ dataSource.schema = "dbo";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+```ts
+const dataSourceItemProvider = async (userContext: IRVUserContext | null, dataSourceItem: RVDataSourceItem) => {
+ if (dataSourceItem instanceof RVSqlServerDataSourceItem) {
+
+ //required: update underlying data source
+ dataSourceProvider(userContext, dataSourceItem.dataSource);
+
+ //only change the table if we have selected our data source item
+ if (dataSourceItem.id === "MySqlServerDatasourceItem") {
+ dataSourceItem.table = "Orders";
+ }
+ }
+ return dataSourceItem;
+}
+
+const dataSourceProvider = async (userContext: IRVUserContext | null, dataSource: RVDashboardDataSource) => {
+ if (dataSource instanceof RVSqlServerDataSource) {
+ dataSource.host = "10.0.0.20";
+ dataSource.database = "Northwind";
+ dataSource.schema = "dbo";
+ }
+ return dataSource;
+}
+```
+
+
+
+
+
+**手順 2** - データ ソース プロバイダーを Reveal SDK に登録します。
+
+
+
+
+```cs
+builder.Services.AddControllers().AddReveal( builder =>
+{
+ builder.AddDataSourceProvider();
+});
+```
+
+
+
+
+
+```java
+RevealEngineInitializer.initialize(new InitializeParameterBuilder().
+ setDataSourceProvider(new DataSourceProvider()).
+ build());
+```
+
+
+
+
+
+```js
+const revealOptions = {
+ dataSourceProvider: dataSourceProvider,
+ dataSourceItemProvider: dataSourceItemProvider,
+}
+app.use('/', reveal(revealOptions));
+```
+
+
+
+
+
+```ts
+const revealOptions: RevealOptions = {
+ dataSourceProvider: dataSourceProvider,
+ dataSourceItemProvider: dataSourceItemProvider,
+}
+app.use('/', reveal(revealOptions));
+```
+
+
+
+
+
+:::danger Important
+
+`ChangeDataSourceAsync` メソッドでデータ ソースに加えられた変更は、`ChangeDataSourceItemAsync` メソッドには引き継がれません。どちらの方法でも、データ ソース プロパティを**更新する必要があります**。上記の例に示すように、`ChangeDataSourceItemAsync` メソッド内で `ChangeDataSourceAsync` メソッドを呼び出し、データ ソース項目の基になるデータ ソースをパラメーターとして渡すことをお勧めします。
+
+:::
+
+## サポートされるデータ ソース
+
+:::tip 今後の拡張機能
+
+現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。これにより、アプリケーションのサイズが削減されるだけでなく、新しいデータ ソースのリリースや既存のデータ ソースの更新も容易になります。Reveal SDK の次の進化に向けて取り組んでまいりますので、今しばらくお待ちいただきますようお願いいたします。
+
+:::
+
+以下の表を使用して、サポートされているデータ ソースと、ターゲット フレームワークにインストールする必要があるパッケージを確認してください。
+
+
+
+**SDK に含まれている** - このデータ ソースにインストールするための個別のパッケージはありません。データ ソースは Reveal SDK に含まれています。
\ No newline at end of file
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/editing-dashboards.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/editing-dashboards.md
new file mode 100644
index 00000000..7240429a
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/editing-dashboards.md
@@ -0,0 +1,326 @@
+# ダッシュボードの編集
+
+ダッシュボードの編集は主にエンドユーザー機能ですが、開発者がさまざまな編集イベントに応答したり、UI 要素を表示/非表示にして編集エクスペリエンスを制御したり、編集を完全に無効にしたりするのに役立つ API が多数あります。
+
+## プロパティ
+
+### canAddCalculatedFields
+
+このプロパティは、表示形式エディターの **[計算フィールド]** メニュー項目を表示/非表示にします。
+
+
+
+```js
+revealView.canAddCalculatedFields = false;
+```
+
+### canAddDashboardFilter
+
+このプロパティは、ダッシュボードの **[ダッシュボード フィルターの追加]** メニュー項目を表示/非表示にします。
+
+
+
+```js
+revealView.canAddDashboardFilter = false;
+```
+
+### canAddDateFilter
+
+このプロパティは、ダッシュボードの **[日付フィルターの追加]** メニュー項目を表示/非表示にします。
+
+
+
+```js
+revealView.canAddDateFilter = false;
+```
+
+### canAddPostCalculatedFields
+
+このプロパティは、表示形式視覚化エディターのフィールド セクションの **F(x)** メニュー項目を表示/非表示にします。
+
+
+
+```js
+revealView.canAddPostCalculatedFields = false;
+```
+
+### canAddVisualization
+
+このプロパティは、編集モードのときにダッシュボードの **[+ 追加]** ボタンを表示/非表示にします。
+
+```js
+revealView.canAddVisualization = false;
+```
+
+### canChangeVisualizationBackgroundColor
+
+このプロパティを使用すると、表示形式エディターの **[設定]** タブで表示形式の背景色を指定できます。
+
+
+
+```js
+revealView.canChangeVisualizationBackgroundColor = true;
+```
+
+このプロパティを使用する場合は、次の依存関係をクライアント アプリケーションにインストールする必要があります:
+
+- Spectrum v 1.8.0 以降
+
+``` html
+
+
+```
+
+### canCopyVisualization
+
+このプロパティは、表示形式の **[コピー]** メニュー項目を表示/非表示にします。
+
+
+
+```js
+revealView.canCopyVisualization = false;
+```
+
+### canDuplicateVisualization
+
+このプロパティは、表示形式の **[複製]** メニュー項目を表示/非表示にします。
+
+
+
+```js
+revealView.canDuplicateVisualization = false;
+```
+
+### canEdit
+
+このプロパティは、ダッシュボードの **[編集]** メニュー項目を表示/非表示にします。
+
+
+
+```js
+revealView.canEdit = false;
+```
+
+`RevealView.canEdit` プロパティが `false` に設定されている場合、ダッシュボード編集は完全に無効になります。
+
+### canMaximizeVisualization
+
+このプロパティは、表示形式の**最大化**ボタンを表示/非表示にします。
+
+
+
+```js
+revealView.canMaximizeVisualization = false;
+```
+
+### canSaveAs
+
+このプロパティは、ダッシュボード メニューの **[名前を付けて保存]** ボタンを表示/非表示にします。
+
+
+
+```js
+revealView.canSaveAs = false;
+```
+
+### showChangeDataSource
+
+このプロパティは、表示形式エディターの [データ] タブにある **[データ ソースの変更]** ボタンを表示/非表示にします。
+
+
+
+```js
+revealView.showChangeDataSource = false;
+```
+
+### showEditDataSource
+
+このプロパティは、表示形式エディターでデータ ソースの **[編集]** メニュー項目を表示/非表示にします。
+
+
+
+```js
+revealView.showEditDataSource = false;
+```
+
+### showExportImage
+
+このプロパティは、エクスポート メニューから **[画像]** 項目を表示/非表示にします。
+
+
+
+```js
+revealView.showExportImage = false;
+```
+
+### showExportToExcel
+
+このプロパティは、エクスポート メニューから **[Excel]** 項目を表示/非表示にします。
+
+
+
+```js
+revealView.showExportToExcel = false;
+```
+
+### showExportToPDF
+
+このプロパティは、エクスポート メニューから **[PDF]** 項目を表示/非表示にします。
+
+
+
+```js
+revealView.showExportToPDF = false;
+```
+
+### showExportToPowerPoint
+
+このプロパティは、エクスポート メニューから **[PowerPoint]** 項目を表示/非表示にします。
+
+
+
+```js
+revealView.showExportToPowerPoint = false;
+```
+
+### showFilters
+
+このプロパティは、ダッシュボード フィルターを表示/非表示にします。
+
+
+
+```js
+revealView.showFilters = false;
+```
+
+### showHeader
+
+このプロパティは、ダッシュボードのタイトルとダッシュボード メニューを含むダッシュボード ヘッダー全体を表示/非表示にします。
+
+```js
+revealView.showHeader = false;
+```
+
+### showMenu
+
+このプロパティは、`RevealView` の右上隅に配置されているダッシュボード メニューを表示/非表示にします。
+
+```js
+revealView.showMenu = false;
+```
+
+### showRefresh
+
+このプロパティは、ダッシュボード メニューの **[更新]** ボタンを表示/非表示にします。
+
+
+
+```js
+revealView.showRefresh = false;
+```
+
+### startInEditMode
+
+`true` に設定すると、このプロパティは、ダッシュボードが最初に読み込まれたときに `RevealView` を「編集モード」にします。
+
+
+
+```js
+revealView.startInEditMode = false;
+```
+
+### startWithNewVisualization
+
+`true` に設定すると、このプロパティはすぐに [新しい表示形式] ダイアログを起動し、データ ソースを選択するように求めます。
+
+
+
+```js
+revealView.startWithNewVisualization = false;
+```
+
+:::info
+
+既存のダッシュボードを読み込んでいて、`RevealView.startInEditMode` プロパティを `true` に設定していない場合、このプロパティは機能しません。
+
+:::
+
+## Events
+
+### onVisualizationEditorOpening
+
+表示形式エディターが開く**前**にアプリケーション ロジックを実行したい場合や、条件が満たされるまでエディターが開かないようにしたい場合もあります。これを行うには、イベント ハンドラーを `RevealView.onVisualizationEditorOpening` イベントに追加します。
+
+```js
+revealView.onVisualizationEditorOpening = function (args) {
+ if(args.isNewVisualization == false){ //the user is trying to edit an existing visualization
+ args.cancel = true; //prevent it
+ }
+};
+```
+
+`VisualizationEditorOpeningArgs` には、次のプロパティが含まれています:
+- **cancel** - イベントをキャンセルするかどうかを示す値を取得または設定します。イベントをキャンセルする必要がある場合は `true`。それ以外の場合は `false`。
+- **isNewVisualization** - `true` の場合、表示形式は新しく追加された表示形式です。`false` の場合、それは既存の表示形式です。
+- **visualization** - 編集および/または追加された表示形式
+
+:::info
+
+`VisualizationEditorOpeningArgs.cancel` を `true` に設定すると、表示形式視覚化エディターは開きません。
+
+:::
+
+### onVisualizationEditorOpened
+
+表示形式エディターを開いた**後**、既存の表示形式を編集するとき、または新しい表示形式を作成するときに通知を受け取りたい場合は、`RevealView.onVisualizationEditorOpened` イベントにイベント ハンドラーを追加できます。
+
+```js
+revealView.onVisualizationEditorOpened = function (args) {
+ if(args.isNewVisualization == false) {
+ //the user is editing an existing visualization
+ }
+};
+```
+
+`VisualizationEditorOpenedEventArgs` には、次のプロパティが含まれています:
+- **isNewVisualization** - `true` の場合、表示形式は新しく追加された表示形式です。`false` の場合、それは既存の表示形式です。
+- **visualization** - 編集および/または追加された表示形式
+
+### onVisualizationEditorClosing
+
+表示形式エディターが閉じる**前**にアプリケーション ロジックを実行したい場合や、条件が満たされるまでエディターが閉じないようにしたい場合もあります。これを行うには、`RevealView.onVisualizationEditorClosing` イベントにイベント ハンドラーを追加します。
+
+```js
+revealView.onVisualizationEditorClosing = function (args) {
+ if(args.isNewVisualization == false) { //the user is editing
+ args.resetVisualization = true; //puts the widget to the state when it was when the user started editing it
+ }
+};
+```
+
+`VisualizationEditorClosingArgs` には、次のプロパティが含まれています:
+- **cancel** - イベントをキャンセルするかどうかを示す値を取得または設定します。イベントをキャンセルする必要がある場合は `true`。それ以外の場合は `false`。
+- **isNewVisualization** - `true` の場合、表示形式は新しく追加された表示形式です。`false` の場合、それは既存の表示形式です。
+- **resetVisualization** - `true` の場合、表示形式を編集前の状態にリセットします。
+- **visualization** - 編集および/または追加された表示形式
+
+:::info
+
+`VisualizationEditorClosingArgs.cancel` を `true` に設定すると、表示形式視覚化エディターは閉じません。
+
+:::
+
+### onVisualizationEditorClosed
+エンドユーザーが `RevealView` で単一の表示形式を編集するときはいつでも、エディターが閉じられた**後**に `RevealView.onVisualizationEditorClosed` イベントが発生します。これは、既存の表示形式の編集、または新しい表示形式の追加に対応する場合があります。`RevealView.onVisualizationEditorClosed` イベントにイベント ハンドラーを追加することで、このイベントに応答できます。
+
+```js
+revealView.onVisualizationEditorClosed = function (args) {
+ if(args.isNewVisualization == false) {
+ }
+};
+```
+
+`VisualizationEditorClosedEventArgs` には、次のプロパティが含まれています:
+- **isCancelled** - 表示形式エディターが **X ボタン** (`false`) または **Check ボタン** (`true`) のどちらで閉じられたかを決定します。
+- **isNewVisualization** - `true` の場合、表示形式は新しく追加された表示形式です。`false` の場合、それは既存の表示形式視覚化です。
+- **visualization** - 編集および/または追加された表示形式
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/exporting-dashboards.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/exporting-dashboards.md
new file mode 100644
index 00000000..ea73dd3c
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/exporting-dashboards.md
@@ -0,0 +1,155 @@
+# エクスポート
+
+Reveal SDK を使用すると、ダッシュボードと表示形式の両方をエクスポートして、新しいドキュメント タイプまたは画像を生成できます。
+
+サポートされているダッシュボードのエクスポート形式:
+- CSV
+- Excel
+- 画像
+- PDF
+- PowerPoint
+
+サポートされている視覚化エクスポート形式:
+- Excel
+- 画像
+
+すべてのエクスポート オプションは、ダッシュボードを開いたとき、または視覚化を最大化したときに、`RevealView` オーバー フロー メニューの **[エクスポート]** メニュー項目にあります。
+
+
+
+ユーザーが **[エクスポート]** ボタンをクリックすると、有効なエクスポート オプションの 1 つを選択できます。
+
+## CSV へエクスポート
+CSV エクスポートは、エンドユーザーが **[エクスポート]** オーバーフロー メニューから **[CSV]** メニュー項目をクリックすると実行されます。
+
+
+
+**[CSV]** メニュー項目は、`RevealView.showExportToCSV` プロパティを設定することで表示/非表示にできます。
+
+```js
+revealView.showExportToCSV = false;
+```
+
+**[CSV]** メニュー項目をクリックすると、エンドユーザーにさまざまなオプションの入力を求められます。これにより、ユーザーはエクスポートの名前を変更したり、エクスポートに含める表示形式のデータを選択したり、フォーマットされた値を使用するか生の値を使用するかを選択できます。
+
+
+
+## Excel へエクスポート
+エンドユーザーが **[エクスポート]** オーバーフロー メニューから **[Excel]** メニュー項目をクリックすると、Excel のエクスポートが実行されます。
+
+
+
+**[Excel]** メニュー項目は、`RevealView.showExportToExcel` プロパティを設定することで表示/非表示にできます。
+
+```js
+revealView.showExportToExcel = false;
+```
+
+**[Excel]** メニュー項目をクリックすると、エンドユーザーは、ワークブックのタイトル、ワークシートのタイトル、作成するワークシート、および表示形式を含めるかどうかを変更できるさまざまなオプションを求められます。
+
+
+
+
+## 画像へのエクスポート
+Reveal SDK では、ダッシュボードまたは表示形式を画像にエクスポートする方法が 2 つあります:
+- エンドユーザーによるエクスポート
+- プログラムでエクスポート
+
+### エンドユーザーによる画像エクスポート
+エンドユーザーの画像のエクスポートは、エンドユーザーが **[エクスポート]** オーバーフロー メニューから **[画像]** メニュー項目をクリックすると実行されます。
+
+
+
+**[画像]** メニュー項目は、`RevealView.showExportImage` プロパティを設定することで表示/非表示にできます。
+
+```js
+revealView.showExportImage = false;
+```
+
+**[画像]** メニュー項目をクリックすると、エンドユーザーにダイアログが表示され、画像をクリップボードにコピーするか、組み込みの画像エディターを使用して画像を編集するか、画像を PNG としてディスクに保存するかを選択できます。
+
+
+
+#### カスタム画像のエクスポート
+デフォルトでは、エンドユーザーが **[画像をエクスポート] ダイアログ**の **[画像をエクスポート]** ボタンをクリックすると、画像がエクスポートされ、エンドユーザーが画像ファイルを保存する場所を選択できるようにブラウザーのダウンロードに追加されます。ただし、この動作は傍受することができ、代わりにカスタム画像エクスポート ロジックを使用できます。
+
+カスタム画像エクスポートを使用するには、`RevealView.onImageExported` イベントにイベント ハンドラーを追加する必要があります。
+
+```js
+revealView.onImageExported = (image) => {
+
+};
+```
+
+`RevealView.onImageExported` イベントは、画像のエクスポートを保存するのに役立つ次のパラメーターを提供します:
+- **image** - 撮影されたダッシュボードのスクリーンショット
+
+#### 例: カスタム画像のエクスポート
+
+```js
+revealView.onImageExported = (image) => {
+ var body = window.open("about:blank").document.body;
+ body.appendChild(image);
+};
+```
+
+### プログラムで画像のエクスポート
+エンドユーザーの操作なしでダッシュボードの画像をプログラムでエクスポートするには、`RevealView.toImage` メソッドを呼び出す必要があります。`RevealView.toImage` メソッドを呼び出すと、画面に表示されている RevealView コンポーネントのスクリーンショットが作成されます。``RevealView.toImage`` メソッドは、[画像をエクスポート] ダイアログでユーザーにプロンプトを**表示しません**。
+
+```cs
+revealView.toImage( image => {
+ //handle image
+});
+```
+
+#### 例: プログラムで画像のエクスポート
+
+```html
+Export to Image
+```
+
+```js
+function exportToImage() {
+ revealView.toImage(image => {
+ console.log(image);
+ var body = window.open("about:blank").document.body;
+ body.appendChild(image);
+ });
+}
+```
+
+:::info コードの取得
+
+このサンプルのソース コードは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/master/Exporting-Image) にあります。
+
+:::
+
+## PDF へのエクスポート
+PDF エクスポートは、エンドユーザーが **[エクスポート]** オーバーフロー メニューから **[PDF]** メニュー項目をクリックすると実行されます。
+
+
+
+**[PDF]** メニュー項目は、`RevealView.ShowExportToPDF` プロパティを設定することで表示/非表示にできます。
+
+```js
+revealView.showExportToPDF = false;
+```
+
+**[PDF]** メニュー項目をクリックすると、エンドユーザーにさまざまなオプションの入力を求められます。これにより、ユーザーは PDF ドキュメントのタイトルを変更したり、ドキュメントに含める表示形式、各表示形式のタイトルと説明、ブランド、ページの向き、言語を選択ができます。
+
+
+
+## PowerPoint へエクスポート
+エンドユーザーが **[エクスポート]** オーバーフロー メニューから **[PowerPoint]** メニュー項目をクリックすると、PowerPoint のエクスポートが実行されます。
+
+
+
+**PowerPoint** メニュー項目は、`RevealView.ShowExportToPowerpoint` プロパティを設定することで表示/非表示にできます。
+
+```js
+revealView.showExportToPowerPoint = false;
+```
+
+**PowerPoint** メニュー項目をクリックすると、エンドユーザーは、PowerPoint ドキュメントのタイトルを変更したり、ドキュメントに含める表示形式、各表示形式のタイトルと説明、およびブランディングを選択したりできるさまざまなオプションが表示されます。
+
+
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/filtering-dashboards.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/filtering-dashboards.md
new file mode 100644
index 00000000..55470e4f
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/filtering-dashboards.md
@@ -0,0 +1,176 @@
+# ダッシュボードのフィルタリング
+
+フィルターはダッシュボードの上部にあり、Reveal SDK を使用して変更できます。
+
+
+
+フィルターには次の 2 種類があります:
+- Date Filter (日付フィルター)
+- ダッシュボード フィルター
+
+## 日付フィルター
+**日付フィルター**は、データが関連付けられていないため、特別な種類のフィルターです。選択できる値のリストはありません。代わりに、日付間隔または範囲を選択します。[今日]、[すべての期間]、[前月] などの事前定義された日付間隔のリストから選択するか、独自のカスタム範囲(2019 年 1 月 12 日から 2021 年 1 月 12 日まで) を指定できます。
+
+**日付フィルター**は常に最初のフィルターであり、1 つしか存在できません。
+
+
+
+### 日付間隔の使用
+事前定義された日付間隔のセットを使用してダッシュボードの**日付フィルター**を設定するには、`Dashboard.dateFilter` プロパティを `RVDateDashboardFilter` オブジェクトの新しいインスタンスに設定し、適切なRV `DateFilterType` 値をパラメーターとして使用する必要があります。
+
+例えば, このコード スニペットは、ダッシュボードの日付フィルターを **[年度累計]** に設定します。
+```js
+revealView.dashboard.dateFilter = new $.ig.RVDateDashboardFilter($.ig.RVDateFilterType.YearToDate);
+```
+ここでは、ダッシュボード UI が Date Filter を **[年度累計]** に更新したことを確認できます。
+
+
+
+`RVDateFilterType` の値は次のとおりです:
+- AllTime
+- CustomRange
+- LastMonth
+- LastWeek
+- LastYear
+- MonthToDate
+- NextMonth
+- NextQuarter
+- NextYear
+- PreviousMonth
+- PreviousQuarter
+- PreviousYear
+- QuarterToDate
+- ThisMonth
+- ThisQuarter
+- ThisYear
+- Today
+- TrailingTwelveMonths
+- YearToDate
+- Yesterday
+
+### カスタム日付範囲の使用
+カスタムの日付範囲を設定するには、`Dashboard.dateFilter` プロパティを `RVDateDashboardFilter` オブジェクトの新しいインスタンスに設定し、`RVDateFilterType.CustomRange` 値をパラメーターとして使用し、`RVDateRange` (fromDate 引数と toDate 引数を提供する) を 2 番目のパラメーターに指定する必要があります。
+
+この例では、`日付フィルター`を過去 75 日間にわたるカスタムの日付範囲に設定します。
+```js
+var fromDate = new Date();
+fromDate.setDate(fromDate.getDate() - 75);
+var toDate = new Date();
+var dateRange = new $.ig.RVDateRange(fromDate, toDate);
+
+revealView.dashboard.dateFilter = new $.ig.RVDateDashboardFilter($.ig.RVDateFilterType.CustomRange, dateRange);
+```
+
+ここでは、ダッシュボード UI が更新され、日付範囲が表示されるように Date Filter が更新されていることがわかります。
+
+
+
+:::info コードの取得
+
+日付フィルターを示すサンプルは [GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/master/FilteringDashboards-Dates) にあります。
+
+:::
+
+## ダッシュボード フィルター
+
+**ダッシュボード フィルター**は、日付フィルターが定義されている場合、日付フィルターの後に表示され、単一のダッシュボードに複数のダッシュボード フィルターを定義できます。この画像には、3 つのダッシュボード フィルター (Territory、Employee、Product) が定義されています。
+
+
+
+ダッシュボード フィルターを使用する場合、注意する必要がある主なオブジェクトは `RVDashboardFilter` オブジェクトです。`RVDashboardFilter` オブジェクトは、ダッシュボード用に定義された個々のフィルターを表します。フィルターのタイトル、選択可能な値、現在選択されている値など、フィルターに関する情報が含まれています。
+
+`RVDashboardFilter` オブジェクトには、次のプロパティとメソッドがあります:
+- **id** - フィルターの一意の ID、通常は GUID。
+- **title (1)** - フィルターの名前。ダッシュボード フィルター UI のフィルターのヘッダーとしても使用されます。
+- **selectedValues (3)** -フィルター用に選択された値のコレクション。これらは、UI のフィルター ドロップダウン内のチェックボックスで表されます。
+- **getFilterValues() (2)** - フィルターで使用可能なすべてのフィルター値のコレクションを返します。これらはドロップダウン リストのオプションとして機能し、適用/選択するフィルター値を選択します。
+
+
+
+### すべてのフィルターの取得
+
+ダッシュボード フィルターには、`RVDashboard.filters` プロパティを使用してアクセスできます。`RVDashboard.filters` プロパティは、ダッシュボードに定義されているすべてのフィルターを返します。
+```js
+var allDashboardFilters = revealView.dashboard.filters;
+```
+
+`RVDashboard.filters` プロパティは、`RVDashboardFilter` オブジェクトの読み取り専用コレクションを返します。
+
+### 特定のフィルターの取得
+Reveal SDK は、`RVDashboard.filters` プロパティをループすることなく、特定のダッシュボード フィルターを取得するための API を提供します。代わりに、`RVDashboard.filters.getById` または `RVDashboard.filters.getByTitle` メソッドのいずれかを使用できます。
+
+##### ID で取得
+
+```js
+var territoryFilter = revealView.dashboard.filters.getById("ddf3fa65-6893-4d8b-73ad-0b28fc1af330");
+```
+
+##### Title で取得
+
+```js
+var territoryFilter = revealView.dashboard.filters.getByTitle("Territory");
+```
+
+これらのメソッドは、特定のダッシュボード フィルターを表す `RVDashboardFilter` オブジェクトを返します。
+
+### 利用可能なフィルター値の取得
+
+ ダッシュボード フィルターで使用可能なすべてのフィルター値のコレクションを取得するには、`RVDashboardFilter.getFilterValues()` メソッドを使用します。
+```js
+var territoryFilter = revealView.dashboard.filters.getByTitle("Territory");
+territoryFilter.GetFilterValues( filterValues => {
+ //handle filterValues
+});
+```
+`RVDashboardFilter.getFilterValues()` メソッドは、`RVFilter` オブジェクトのコレクションを返します。
+
+`RVFilter` オブジェクトには、次のプロパティがあります:
+- **label** - フィルター ドロップダウン UI に表示されるテキスト。
+- **value** - `RVFilter` オブジェクトの基になる値。
+
+### 選択したフィルター値の取得
+
+ダッシュボード フィルターに対して現在選択されているフィルター値のコレクションを取得するには、`RVDashboardFilter.selectedValues` プロパティを使用できます。
+```js
+var territoryFilter = revealView.dashboard.filters.getByTitle("Territory");
+var selectedFilterValues = territoryFilter.selectedValues;
+```
+
+### 選択したフィルター値の設定
+
+`RVDashboardFilter.selectedValues` プロパティを使用して、ダッシュボード フィルターの選択された値をプログラムで設定できます。`RVDashboardFilter.selectedValues` プロパティを`配列`の新しいインスタンスに設定するだけです。`配列`には、ダッシュボード フィルター内で選択するすべてのフィルター値が含まれている必要があります。
+
+##### 単一の選択したフィルター値の設定
+
+```js
+var territoryFilter = revealView.dashboard.filters.getByTitle("Territory");
+territoryFilter.selectedValues = [ "Japan" ];
+```
+
+##### 複数の選択したフィルターの設定
+
+```js
+var territoryFilter = revealView.dashboard.filters.getByTitle("Territory");
+territoryFilter.selectedValues = [ "Japan", "India" ];
+```
+
+### 選択したフィルターのクリア
+
+特定のダッシュボード フィルターに対して選択されているフィルター値をクリアするには、`RVDashboardFilter.selectedValues` プロパティを新しい空の`配列`に設定するだけです。
+
+```cs
+var territoryFilter = revealView.dashboard.filters.getByTitle("Territory");
+territoryFilter.selectedValues = [];
+```
+
+:::info コードの取得
+
+[GitHub](https://github.com/RevealBi/sdk-samples-javascript/tree/master/FilteringDashboards) でダッシュボード フィルターのデモ サンプルを見つけることができます。
+
+:::
+
+## フィルターの非表示
+カスタム フィルター UI またはその他のカスタム フィルター操作を使用する場合、エンドユーザーがダッシュボードのフィルター処理で混乱しないように、`RevealView` でフィルターを含むパネルを非表示にすることができます。`RevealView.showFilters` プロパティを `false` に設定すると、日付とダッシュボードのフィルターを非表示にできます。
+```cs
+revealView.showFilters = false;
+```
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/getting-started-angular.md b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/getting-started-angular.md
new file mode 100644
index 00000000..e88fb77d
--- /dev/null
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-1.8.4/web/getting-started-angular.md
@@ -0,0 +1,169 @@
+# Reveal SDK for Angular で作業を開始
+
+## 手順 1 - Angular アプリの作成
+
+1 - お気に入りのターミナルを開きます。
+
+
+
+2 - アプリケーションを作成します。
+
+```bash
+ng new getting-started
+```
+
+3 - ディレクトリを新しく作成した app ディレクトリに移動し、お気に入りのエディターでプロジェクトを開きます。この例では、Visual Studio Code を使用しています。
+
+```bash
+cd getting-started
+code .
+```
+
+## 手順 2 - Reveal JavaScript API の追加
+
+1 - `index.html` ファイルを開いて変更し、ページの下部に (`
+
+
+ //highlight-start
+
+
+
+ //highlight-end
+` 終了タグの直前) `infragistics.reveal.js` スクリプトを含めます。
+
+```html
+
+```
+
+2 - 残りの Reveal JavaScript API 依存関係をインストールします。
+
+- Jquery 2.2 またはそれ以降
+
+```html
+
+```
+
+- Day.js 1.8.15 またはそれ以降
+
+```html
+
+```
+
+最終の `index.html` ファイルは以下のようになります。
+
+```html title="index.html"
+
+
+