/**
 * ja.js - 日本語ロケール (Japanese)
 * en.js をベースに上書きするキーのみ定義します。
 * 未定義のキーは resolveLocale による deep-merge で en.js から補完されます。
 */

/** @type {Partial<import('../../../types/index.js').AsnLocale>} */
export const ja = {
  toolbar: {
    bold: '太字 (Ctrl+B)',
    italic: '斜体 (Ctrl+I)',
    underline: '下線 (Ctrl+U)',
    strikethrough: '取り消し線',
    superscript: '上付き文字',
    subscript: '下付き文字',
    alignLeft: '左揃え',
    alignCenter: '中央揃え',
    alignRight: '右揃え',
    alignJustify: '両端揃え',
    ul: '箇条書きリスト',
    ol: '番号付きリスト',
    checklist: 'チェックリスト',
    indent: 'インデントを増やす',
    outdent: 'インデントを減らす',
    undo: '元に戻す (Ctrl+Z)',
    redo: 'やり直す (Ctrl+Y)',
    hr: '水平線',
    link: 'リンクを挿入',
    image: '画像を挿入',
    video: '動画を挿入',
    emoji: '絵文字を挿入',
    icon: 'FAアイコンを挿入',
    table: 'テーブルを挿入',
    fontSize: 'フォントサイズ',
    fontSizePlaceholder: 'サイズ',
    removeFormat: '書式をリセット',
    direction: '文字方向を切り替え (LTR / RTL)',
    fontFamily: 'フォント',
    paragraphStyle: '段落スタイル',
    paragraphStylePlaceholder: 'スタイル',
    lineHeight: '行の高さ',
    lineHeightPlaceholder: '\u2195 行間',
    codeview: 'HTMLソースを表示',
    fullscreen: '全画面表示',
    shortcuts: 'キーボードショートカット (Ctrl+Shift+/)',
    find: '検索 (Ctrl+F)',
    findReplace: '検索と置換 (Ctrl+H)',
    inlineCode: 'インラインコード (Ctrl+`)',
    print: '印刷',
    foreColor: '文字色',
    backColor: 'ハイライト色',
    chooseTextColor: '文字色を選択',
    chooseHighlightColor: 'ハイライト色を選択',
    customColor: 'カスタムカラー',
    insertTableLabel: 'テーブルを挿入',
    paragraphItems: {
      p:          '標準',
      blockquote: '引用',
      pre:        'コード',
    },
  },

  linkDialog: {
    ariaLabel:       'リンクを挿入',
    title:           'リンクを挿入',
    url:             'URL',
    urlPlaceholder:  'https://',
    displayText:     '表示テキスト',
    textPlaceholder: 'リンクテキスト',
    openInNewTab:    '新しいタブで開く',
    insertBtn:       '挿入',
    cancelBtn:       'キャンセル',
  },

  imageDialog: {
    ariaLabel:      '画像を挿入',
    title:          '画像を挿入',
    imageUrl:       '画像URL',
    urlPlaceholder: 'https://example.com/image.png',
    altText:        '代替テキスト',
    altPlaceholder: '画像の説明',
    alignment:      '配置',
    alignNone:      'なし',
    alignLeft:      '左',
    alignCenter:    '中央',
    alignRight:     '右',
    uploadLabel:    'ファイルをアップロード',
    insertBtn:      '挿入',
    cancelBtn:      'キャンセル',
  },

  videoDialog: {
    ariaLabel:       '動画を挿入',
    title:           '動画を挿入',
    videoUrl:        '動画URL',
    urlPlaceholder:  'YouTube、Vimeo、または直接動画URL',
    widthLabel:      '幅 (px)',
    widthPlaceholder: '560',
    insertBtn:       '挿入',
    cancelBtn:       'キャンセル',
    detected:        (type) => `検出: ${type}`,
    unknownFormat:   '不明な形式 \u2014 直接動画埋め込みを試みます',
    invalidUrl:      'URLが無効です \u2014 有効な動画URLを入力してください。',
  },

  emojiDialog: {
    ariaLabel:         '絵文字を挿入',
    title:             '絵文字を挿入',
    searchPlaceholder: '絵文字を検索\u2026',
    all:               'すべて',
    cancelBtn:         'キャンセル',
    close:             '閉じる',
    categories: {
      smileys: '顔文字',
      people:  '人物',
      animals: '動物',
      food:    '食べ物',
      travel:  '旅行',
      objects: 'モノ',
      symbols: '記号',
    },
  },

  iconDialog: {
    ariaLabel:         'FAアイコンを挿入',
    title:             'FAアイコンを挿入',
    searchPlaceholder: 'アイコンを検索\u2026',
    all:               'すべて',
    style:             'スタイル',
    size:              'サイズ',
    color:             'カラー',
    useColor:          ' カラーを使用',
    selectHint:        'アイコンを選択してください',
    insertBtn:         'FAアイコンを挿入',
    cancelBtn:         'キャンセル',
    close:             '閉じる',
    categories: {
      popular:       '人気',
      interface:     'インターフェース',
      navigation:    'ナビゲーション',
      media:         'メディア',
      communication: '通信',
      files:         'ファイル',
      people:        '人物',
      objects:       'モノ',
    },
  },

  findReplace: {
    findTitle:          '検索',
    findReplaceTitle:   '検索と置換',
    findPlaceholder:    '検索\u2026',
    searchAriaLabel:    '検索テキスト',
    caseSensitive:      '\u00a0大文字/小文字を区別',
    prevBtn:            '\u2190 前へ',
    nextBtn:            '次へ \u2192',
    replacePlaceholder: '置換後\u2026',
    replaceAriaLabel:   '置換後のテキスト',
    replaceBtn:         '置換',
    replaceAllBtn:      'すべて置換',
    close:              '\u00d7',
  },

  shortcutsDialog: {
    title:     'キーボードショートカット',
    ariaLabel: 'キーボードショートカット',
    close:     '閉じる',
    shortcuts: [
      {
        category: 'テキスト書式',
        items: [
          { keys: 'Ctrl + B', action: '太字' },
          { keys: 'Ctrl + I', action: '斜体' },
          { keys: 'Ctrl + U', action: '下線' },
          { keys: 'Ctrl + K', action: 'リンクの挿入 / 編集' },
        ],
      },
      {
        category: '履歴',
        items: [
          { keys: 'Ctrl + Z',                      action: '元に戻す' },
          { keys: 'Ctrl + Y  /  Ctrl + Shift + Z', action: 'やり直す' },
        ],
      },
      {
        category: '選択と移動',
        items: [
          { keys: 'Ctrl + A',    action: 'すべて選択' },
          { keys: 'Tab',         action: 'インデント増加 / スペース挿入' },
          { keys: 'Shift + Tab', action: 'インデント減少' },
        ],
      },
      {
        category: 'クリップボード',
        items: [
          { keys: 'Ctrl + Shift + V', action: 'プレーンテキストとして貼り付け' },
        ],
      },
      {
        category: '検索と置換',
        items: [
          { keys: 'Ctrl + F', action: '文書内を検索' },
          { keys: 'Ctrl + H', action: '検索と置換' },
        ],
      },
      {
        category: 'エディター',
        items: [
          { keys: 'Ctrl + Shift + /', action: 'ショートカットダイアログを表示' },
        ],
      },
    ],
  },

  contextMenu: {
    cut:             '切り取り',
    copy:            'コピー',
    paste:           '貼り付け',
    bold:            '太字',
    italic:          '斜体',
    underline:       '下線',
    textColor:       '文字色',
    highlightColor:  'ハイライト色',
    copyFormat:      '書式をコピー',
    pasteFormat:     '書式を貼り付け',
    removeFormat:    '書式をリセット',
    link:            'リンクを挿入',
    image:           '画像を挿入',
    video:           '動画を挿入',
    table:           'テーブルを挿入',
    back:            '戻る',
    noHighlight:     'ハイライトなし',
    customColor:     'カスタムカラー',
    customColorLabel: 'カスタム\u2026',
  },

  statusbar: {
    resizeHandle: 'ドラッグしてリサイズ',
    words:      (n) => `単語数: ${n}`,
    wordsLimit: (n, max) => `単語数: ${n}/${max}`,
    chars:      (n) => `文字数: ${n}`,
    charsLimit: (n, max) => `文字数: ${n}/${max}`,
  },

  tooltips: {
    link: {
      ariaLabel:  'リンク操作',
      openLink:   'リンクを開く',
      copyUrl:    'URLをコピー',
      editLink:   'リンクを編集',
      removeLink: 'リンクを削除',
    },
    image: {
      ariaLabel:    '画像操作',
      label:        '画像',
      floatLeft:    '左に回り込み',
      noFloat:      '回り込みなし',
      alignCenter:  '中央揃え',
      floatRight:   '右に回り込み',
      originalSize: '元のサイズ',
      rotateLeft:   '左に回転',
      rotateRight:  '右に回転',
      cropImage:    '画像をトリミング',
      addCaption:   'キャプションを追加 / 編集',
      deleteImage:  '画像を削除',
    },
    code: {
      ariaLabel:          'コードブロック操作',
      label:              'コード',
      syntaxLanguage:     '言語',
      syntaxAriaLabel:    '構文言語',
      copyCode:           'コードをコピー',
      toggleWordWrap:     '折り返しを切り替え',
      enableWordWrap:     '折り返しを有効にする',
      disableWordWrap:    '折り返しを無効にする',
      convertToParagraph: '段落に変換',
      deleteCodeBlock:    'コードブロックを削除',
    },
    table: {
      ariaLabel:          'テーブル操作',
      label:              'テーブル',
      selectCells:        'セルを選択',
      addRowAbove:        '上に行を追加',
      addRowBelow:        '下に行を追加',
      deleteRow:          '行を削除',
      addColumnLeft:      '左に列を追加',
      addColumnRight:     '右に列を追加',
      deleteColumn:       '列を削除',
      mergeCells:         'セルを結合',
      unmergeCells:       'セルの結合を解除',
      columnWidth:        '列幅',
      rowHeight:          '行の高さ',
      tableBorderWidth:   'テーブルの枠幅',
      deleteTable:        'テーブルを削除',
      columnWidthPx:      '列幅 (px)',
      rowHeightPx:        '行の高さ (px)',
      tableBorderWidthPx: 'テーブルの枠幅 (px)',
      cancelBtn:          'キャンセル',
      applyBtn:           '適用',
    },
    video: {
      ariaLabel:    '動画操作',
      label:        '動画',
      floatLeft:    '左に回り込み',
      noFloat:      '回り込みなし',
      alignCenter:  '中央揃え',
      floatRight:   '右に回り込み',
      originalSize: '元のサイズ',
      previewVideo: 'プレビュー',
      exitPreview:  'プレビューを終了',
      deleteVideo:  '動画を削除',
    },
  },

  errors: {
    imageFormat: (type) =>
      `形式 "${type}" はブラウザでの表示をサポートしていません。JPEG、PNG、または WebP に変換してください。`,
    imageSize: (maxSize) =>
      `画像ファイルが大きすぎます。最大許容サイズは ${maxSize} MB です。`,
  },
};
