Skip to content

🖼️ Normalize SDP images#2380

Open
JFWooten4 wants to merge 10 commits intostellar:mainfrom
JFWooten4:sdp-imgs
Open

🖼️ Normalize SDP images#2380
JFWooten4 wants to merge 10 commits intostellar:mainfrom
JFWooten4:sdp-imgs

Conversation

@JFWooten4
Copy link
Copy Markdown
Contributor

Right now the deployment paths of these images use duplicative and uppercase file names. The uppercase part hurts web compatibility, and the duplicate part is just plain obnoxious.

This change reorders the file list to account for what were previously style deviations from numbering. The only exception maintained is a duplicate at 2, which is the transparent version.

It removes image 21, which was a duplicate of 20. And then it updates all the references.

You can use this script to help review:
#!/usr/bin/env python3
"""
SDP docs side-by-side comparer.

This version avoids proxying page content entirely.
It serves a lightweight local dashboard, while the two panes load the real
localhost and published URLs directly in iframes.

That avoids:
- Docusaurus history.replaceState cross-origin crashes when proxied
- Python SSL certificate verification failures for https://developers.stellar.org

Usage:
  python sdp_side_by_side_compare_direct.py
  python sdp_side_by_side_compare_direct.py --local-base http://localhost:3001
  python sdp_side_by_side_compare_direct.py --host 127.0.0.1 --port 8765
"""

from __future__ import annotations

import argparse
import json
import threading
import urllib.parse
import webbrowser
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
from typing import Any


EN_ROUTES = [
    ("Design and architecture", "/docs/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture", "docs/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx"),
    ("Embedded wallets", "/docs/platforms/stellar-disbursement-platform/admin-guide/embedded-wallets", "docs/platforms/stellar-disbursement-platform/admin-guide/embedded-wallets.mdx"),
    ("Getting started", "/docs/platforms/stellar-disbursement-platform/admin-guide/getting-started", "docs/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx"),
    ("Making your wallet SDP ready", "/docs/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready", "docs/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx"),
    ("Monitoring", "/docs/platforms/stellar-disbursement-platform/admin-guide/monitoring", "docs/platforms/stellar-disbursement-platform/admin-guide/monitoring.mdx"),
    ("Overview", "/docs/platforms/stellar-disbursement-platform/admin-guide/overview", "docs/platforms/stellar-disbursement-platform/admin-guide/overview.mdx"),
    ("Troubleshooting", "/docs/platforms/stellar-disbursement-platform/admin-guide/troubleshooting", "docs/platforms/stellar-disbursement-platform/admin-guide/troubleshooting.mdx"),
    ("Analytics", "/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics", "docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx"),
    ("Circle configuration", "/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration", "docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration.mdx"),
    ("Dashboard home", "/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home", "docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx"),
    ("Disbursements", "/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements", "docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx"),
    ("Payments", "/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments", "docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx"),
    ("Receivers", "/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers", "docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx"),
    ("Wallets", "/docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets", "docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx"),
]


def build_items() -> list[dict[str, Any]]:
    items: list[dict[str, Any]] = []

    for label, route, file_path in EN_ROUTES:
        items.append(
            {
                "section": "English",
                "badge": "EN docs",
                "label": label,
                "route": route,
                "file_path": file_path,
            }
        )

    return items


ITEMS = build_items()


HTML_TEMPLATE = r"""<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>SDP docs compare</title>
  <style>
    :root {
      color-scheme: dark;
      --bg: #0b1220;
      --bg-2: #0f172a;
      --panel: #111827;
      --panel-2: #0b1020;
      --text: #e5e7eb;
      --muted: #a5b4cf;
      --line: #263247;
      --accent: #7aa2ff;
      --accent-2: #1d4ed8;
      --button: #13203a;
    }
    * { box-sizing: border-box; }
    html, body { height: 100%; margin: 0; background: var(--bg); color: var(--text); font-family: Inter, ui-sans-serif, system-ui, sans-serif; }
    body { overflow: hidden; }
    .app {
      display: grid;
      grid-template-columns: 320px 1fr;
      height: 100vh;
    }
    .sidebar {
      border-right: 1px solid var(--line);
      background: linear-gradient(180deg, var(--bg-2), #0a1325 55%, #09101f);
      overflow: auto;
      padding: 20px 16px 24px;
    }
    .title { font-size: 1.9rem; font-weight: 800; margin: 0 0 8px; }
    .subtitle { color: var(--muted); margin: 0 0 18px; line-height: 1.4; }
    .search {
      width: 100%; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--line);
      background: rgba(255,255,255,0.02); color: var(--text); margin-bottom: 16px;
    }
    .section-label {
      margin: 16px 4px 8px; color: #c7d2fe; font-size: 0.82rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase;
    }
    .item {
      width: 100%; text-align: left; display: block; border: 1px solid var(--line); background: rgba(255,255,255,0.02);
      color: var(--text); padding: 10px 12px; border-radius: 12px; margin: 0 0 8px; cursor: pointer;
    }
    .item:hover { border-color: #45608f; background: rgba(122,162,255,0.08); }
    .item.active { border-color: var(--accent); background: rgba(122,162,255,0.12); box-shadow: inset 0 0 0 1px rgba(122,162,255,0.35); }
    .badge {
      display: inline-block; font-size: 0.72rem; font-weight: 800; border-radius: 999px; padding: 3px 8px; background: rgba(122,162,255,0.14); color: #dbeafe; margin-bottom: 6px;
    }
    .label { font-weight: 700; margin-bottom: 4px; }
    .path { color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.74rem; word-break: break-word; }
    .main {
      display: grid;
      grid-template-rows: auto auto 1fr;
      min-width: 0;
      height: 100vh;
    }
    .toolbar {
      display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
      padding: 14px; border-bottom: 1px solid var(--line); background: rgba(17,24,39,0.96);
    }
    .btn {
      border: 1px solid #324666; background: var(--button); color: var(--text); border-radius: 10px; padding: 9px 14px; cursor: pointer; font-weight: 700;
    }
    .btn:hover { border-color: #5b7bc0; }
    .routebar {
      padding: 10px 14px; border-bottom: 1px solid var(--line); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; background: #09111f; color: #dbeafe; white-space: nowrap; overflow: auto;
    }
    .frames {
      min-height: 0; display: grid; grid-template-columns: 1fr 1fr;
    }
    .pane {
      min-width: 0; min-height: 0; display: grid; grid-template-rows: auto auto 1fr; border-right: 1px solid var(--line); background: var(--panel-2);
    }
    .pane:last-child { border-right: 0; }
    .panehead {
      display: flex; justify-content: space-between; align-items: center; gap: 12px;
      padding: 10px 14px; border-bottom: 1px solid var(--line); background: rgba(17,24,39,0.96); font-weight: 800;
    }
    .paneurl {
      padding: 8px 14px; border-bottom: 1px solid var(--line); color: #bfdbfe; font-size: 0.85rem; word-break: break-all; background: #0a1220;
    }
    iframe {
      width: 100%; height: 100%; border: 0; display: block; background: white;
    }
    .small { color: var(--muted); font-size: 0.86rem; }
    @media (max-width: 1000px) {
      .app { grid-template-columns: 280px 1fr; }
      .frames { grid-template-columns: 1fr; }
      .pane:first-child { border-bottom: 1px solid var(--line); }
    }
  </style>
</head>
<body>
  <div class="app">
    <aside class="sidebar">
      <h1 class="title">SDP docs compare</h1>
      <p class="subtitle">Loads the real localhost and published pages directly, side by side, with all requested files included.</p>
      <input id="search" class="search" type="text" placeholder="Filter by title or path">
      <div id="nav"></div>
    </aside>
    <main class="main">
      <div class="toolbar">
        <button class="btn" id="prevBtn">Prev</button>
        <button class="btn" id="nextBtn">Next</button>
        <button class="btn" id="openLocalBtn">Open localhost</button>
        <button class="btn" id="openPublishedBtn">Open published</button>
        <button class="btn" id="openBothBtn">Open both in new tabs</button>
        <button class="btn" id="copyLocalBtn">Copy localhost URL</button>
        <button class="btn" id="copyPublishedBtn">Copy published URL</button>
        <span class="small">This version avoids proxying, so Docusaurus history and SSL cert issues do not apply.</span>
      </div>
      <div class="routebar" id="routebar"></div>
      <div class="frames">
        <section class="pane">
          <div class="panehead">
            <span>Localhost</span>
          </div>
          <div class="paneurl" id="localUrl"></div>
          <iframe id="localFrame" referrerpolicy="no-referrer"></iframe>
        </section>
        <section class="pane">
          <div class="panehead">
            <span>Published</span>
          </div>
          <div class="paneurl" id="publishedUrl"></div>
          <iframe id="publishedFrame" referrerpolicy="no-referrer"></iframe>
        </section>
      </div>
    </main>
  </div>
  <script>
    const ITEMS = __ITEMS__;
    const LOCAL_BASE = __LOCAL_BASE__;
    const PUBLISHED_BASE = __PUBLISHED_BASE__;

    const nav = document.getElementById('nav');
    const search = document.getElementById('search');
    const routebar = document.getElementById('routebar');
    const localUrlEl = document.getElementById('localUrl');
    const publishedUrlEl = document.getElementById('publishedUrl');
    const localFrame = document.getElementById('localFrame');
    const publishedFrame = document.getElementById('publishedFrame');
    const prevBtn = document.getElementById('prevBtn');
    const nextBtn = document.getElementById('nextBtn');
    const openLocalBtn = document.getElementById('openLocalBtn');
    const openPublishedBtn = document.getElementById('openPublishedBtn');
    const openBothBtn = document.getElementById('openBothBtn');
    const copyLocalBtn = document.getElementById('copyLocalBtn');
    const copyPublishedBtn = document.getElementById('copyPublishedBtn');

    let currentIndex = 0;
    let filteredIndexes = ITEMS.map((_, i) => i);

    function currentItem() {
      return ITEMS[currentIndex];
    }

    function makeUrl(base, route) {
      return base.replace(/\/$/, '') + route;
    }

    function setHash(index) {
      window.location.hash = String(index);
    }

    function readHash() {
      const raw = window.location.hash.replace('#', '');
      const idx = Number.parseInt(raw, 10);
      return Number.isFinite(idx) && idx >= 0 && idx < ITEMS.length ? idx : 0;
    }

    function renderNav() {
      const q = search.value.trim().toLowerCase();
      filteredIndexes = [];
      let navHtml = '';
      let lastSection = '';
      ITEMS.forEach((item, index) => {
        const hay = `${item.section} ${item.badge} ${item.label} ${item.file_path} ${item.route}`.toLowerCase();
        if (q && !hay.includes(q)) return;
        filteredIndexes.push(index);
        if (item.section !== lastSection) {
          navHtml += `<div class="section-label">${escapeHtml(item.section)}</div>`;
          lastSection = item.section;
        }
        const active = index === currentIndex ? ' active' : '';
        navHtml += `
          <button class="item${active}" data-index="${index}">
            <div class="badge">${escapeHtml(item.badge)}</div>
            <div class="label">${escapeHtml(item.label)}</div>
            <div class="path">${escapeHtml(item.file_path)}</div>
          </button>`;
      });
      nav.innerHTML = navHtml;
      nav.querySelectorAll('.item').forEach((btn) => {
        btn.addEventListener('click', () => {
          const index = Number.parseInt(btn.dataset.index, 10);
          currentIndex = index;
          setHash(index);
          update();
        });
      });
    }

    function escapeHtml(value) {
      return value.replace(/[&<>"']/g, (ch) => ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[ch]));
    }

    function update() {
      const item = currentItem();
      const localUrl = makeUrl(LOCAL_BASE, item.route);
      const publishedUrl = makeUrl(PUBLISHED_BASE, item.route);

      routebar.textContent = `${item.badge}  ${item.file_path}  ->  ${item.route}`;
      localUrlEl.textContent = localUrl;
      publishedUrlEl.textContent = publishedUrl;
      localFrame.src = localUrl;
      publishedFrame.src = publishedUrl;

      renderNav();
    }

    function move(delta) {
      if (!filteredIndexes.length) return;
      const pos = filteredIndexes.indexOf(currentIndex);
      const nextPos = pos === -1 ? 0 : (pos + delta + filteredIndexes.length) % filteredIndexes.length;
      currentIndex = filteredIndexes[nextPos];
      setHash(currentIndex);
      update();
    }

    prevBtn.addEventListener('click', () => move(-1));
    nextBtn.addEventListener('click', () => move(1));
    openLocalBtn.addEventListener('click', () => window.open(localFrame.src, '_blank', 'noopener'));
    openPublishedBtn.addEventListener('click', () => window.open(publishedFrame.src, '_blank', 'noopener'));
    openBothBtn.addEventListener('click', () => {
      window.open(localFrame.src, '_blank', 'noopener');
      window.open(publishedFrame.src, '_blank', 'noopener');
    });
    copyLocalBtn.addEventListener('click', async () => {
      await navigator.clipboard.writeText(localFrame.src);
      copyLocalBtn.textContent = 'Copied localhost URL';
      setTimeout(() => copyLocalBtn.textContent = 'Copy localhost URL', 1200);
    });
    copyPublishedBtn.addEventListener('click', async () => {
      await navigator.clipboard.writeText(publishedFrame.src);
      copyPublishedBtn.textContent = 'Copied published URL';
      setTimeout(() => copyPublishedBtn.textContent = 'Copy published URL', 1200);
    });
    search.addEventListener('input', renderNav);
    window.addEventListener('hashchange', () => {
      currentIndex = readHash();
      update();
    });

    currentIndex = readHash();
    update();
  </script>
</body>
</html>
"""


class Handler(BaseHTTPRequestHandler):
    local_base = "http://localhost:3000"
    published_base = "https://developers.stellar.org"

    def do_GET(self) -> None:
        parsed = urllib.parse.urlparse(self.path)
        if parsed.path not in {"/", "/index.html"}:
            self.send_error(404, "Not found")
            return

        html_doc = HTML_TEMPLATE.replace(
            "__ITEMS__",
            json.dumps(ITEMS, ensure_ascii=False),
        ).replace(
            "__LOCAL_BASE__",
            json.dumps(self.local_base),
        ).replace(
            "__PUBLISHED_BASE__",
            json.dumps(self.published_base),
        )

        data = html_doc.encode("utf-8")
        self.send_response(200)
        self.send_header("Content-Type", "text/html; charset=utf-8")
        self.send_header("Content-Length", str(len(data)))
        self.end_headers()
        self.wfile.write(data)

    def log_message(self, fmt: str, *args: Any) -> None:
        return


def normalize_base(url: str) -> str:
    return url.rstrip("/")


def main() -> None:
    parser = argparse.ArgumentParser(description="Compare SDP docs side by side.")
    parser.add_argument("--local-base", default="http://localhost:3000", help="Base URL for the local docs site.")
    parser.add_argument("--published-base", default="https://developers.stellar.org", help="Base URL for the published docs site.")
    parser.add_argument("--host", default="127.0.0.1", help="Host for the compare dashboard.")
    parser.add_argument("--port", type=int, default=8765, help="Port for the compare dashboard.")
    parser.add_argument("--no-open", action="store_true", help="Do not automatically open the browser.")
    args = parser.parse_args()

    Handler.local_base = normalize_base(args.local_base)
    Handler.published_base = normalize_base(args.published_base)

    server = ThreadingHTTPServer((args.host, args.port), Handler)
    url = f"http://{args.host}:{args.port}"
    print(f"SDP compare dashboard running at {url}")
    print(f"Local docs base: {Handler.local_base}")
    print(f"Published docs base: {Handler.published_base}")
    print("Press Ctrl+C to stop.")

    if not args.no_open:
      threading.Timer(0.35, lambda: webbrowser.open(url)).start()

    try:
        server.serve_forever()
    except KeyboardInterrupt:
        print("\\nStopping server...")
    finally:
        server.server_close()


if __name__ == "__main__":
    main()

Copilot AI review requested due to automatic review settings April 23, 2026 04:10
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR normalizes Stellar Disbursement Platform (SDP) documentation screenshot assets by moving to lowercase, de-duplicated filenames/paths and updating all MDX references accordingly to improve web compatibility and reduce asset churn.

Changes:

  • Add/rename SDP screenshot assets under static/assets/sdp/ with normalized lowercase numeric filenames.
  • Update English and Spanish docs to reference the new /assets/sdp/*.png paths (and adjust some surrounding formatting).
  • Remove duplicate/unused screenshots per the PR description and re-sequence references to match the new numbering.

Reviewed changes

Copilot reviewed 38 out of 89 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
static/assets/sdp/6.png Adds normalized SDP screenshot asset.
static/assets/sdp/10.png Adds normalized SDP screenshot asset.
static/assets/sdp/12.png Adds normalized SDP screenshot asset.
docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx Updates screenshot reference to normalized /assets/sdp/ path.
docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx Updates screenshot reference to normalized /assets/sdp/ path.
docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx Updates screenshot reference to normalized /assets/sdp/ path.
docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx Updates screenshot reference to normalized /assets/sdp/ path.
docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx Updates screenshot reference and normalizes punctuation in copy.
docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration.mdx Updates Circle screenshots to normalized /assets/sdp/ paths.
docs/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx Updates screenshot reference to normalized /assets/sdp/ path.
docs/platforms/stellar-disbursement-platform/admin-guide/troubleshooting.mdx Updates screenshot reference to normalized /assets/sdp/ path.
docs/platforms/stellar-disbursement-platform/admin-guide/overview.mdx Updates screenshot reference and normalizes punctuation in copy.
docs/platforms/stellar-disbursement-platform/admin-guide/monitoring.mdx Updates Grafana screenshots to normalized paths and separates images from list text for readability.
docs/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx Updates screenshot reference to normalized /assets/sdp/ path.
docs/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx Updates multiple screenshots to normalized paths and separates images from list text for readability.
docs/platforms/stellar-disbursement-platform/admin-guide/embedded-wallets.mdx Updates embedded-wallet screenshots to normalized /assets/sdp/ paths.
docs/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx Updates architecture diagram reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/wallets.mdx Updates Spanish screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/receivers.mdx Updates Spanish screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/payments.mdx Updates Spanish screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/disbursements.mdx Updates Spanish screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/dashboard-home.mdx Updates Spanish screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/circle-configuration.mdx Updates Spanish Circle screenshots to normalized /assets/sdp/ paths.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/user-interface/analytics.mdx Updates Spanish screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/overview.mdx Updates Spanish flow diagram reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/monitoring.mdx Updates Spanish Grafana screenshots to normalized paths and separates images from list text.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/making-your-wallet-sdp-ready.mdx Updates Spanish registration-flow screenshot to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/getting-started.mdx Updates multiple Spanish getting-started screenshots to normalized paths and separates images from list text.
i18n/es/docusaurus-plugin-content-docs/current/platforms/stellar-disbursement-platform/admin-guide/design-and-architecture.mdx Updates Spanish architecture diagram reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/user-interface/wallets.mdx Updates Spanish (SDP docs set) screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/user-interface/receivers.mdx Updates Spanish (SDP docs set) screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/user-interface/payments.mdx Updates Spanish (SDP docs set) screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/user-interface/disbursements.mdx Updates Spanish (SDP docs set) screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/user-interface/dashboard-home.mdx Updates Spanish (SDP docs set) screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/user-interface/circle-configuration.mdx Updates Spanish (SDP docs set) Circle screenshots to normalized /assets/sdp/ paths.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/user-interface/analytics.mdx Updates Spanish (SDP docs set) screenshot reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/overview.mdx Updates Spanish (SDP docs set) flow diagram reference to normalized /assets/sdp/ path.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/monitoring.mdx Updates Spanish (SDP docs set) Grafana screenshots to normalized paths and separates images from list text.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/making-your-wallet-sdp-ready.mdx Updates Spanish (SDP docs set) registration-flow screenshot reference.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/getting-started.mdx Updates multiple Spanish (SDP docs set) getting-started screenshots and separates images from list text.
i18n/es/docusaurus-plugin-content-docs-sdp/current/admin-guide/design-and-architecture.mdx Updates Spanish (SDP docs set) architecture diagram reference to normalized /assets/sdp/ path.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@briwylde08
Copy link
Copy Markdown
Contributor

@JFWooten4 - we are removing the i18n directory in favor of Google Translate. We should not translate anything in the Spanish pages.

@JFWooten4
Copy link
Copy Markdown
Contributor Author

Got it - no translating there and in the work going forward. 2145-pt-10 deprecates some Spanish by removing the files. I'll stop any other diction or linking changes.

For this PR specifically, I don't think I can just "undo" the i18n changes. They are reference and linking changes, with a few added steps and imported images. Since most of it is just updating the static PNG paths, undoing my changes will block compilation since the routes will not resolve.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants