Merge pull request #66 from gnsworks/develop

Add Japanese translation
This commit is contained in:
Tola Leng
2025-07-13 15:38:28 +07:00
committed by GitHub
14 changed files with 673 additions and 1 deletions
+118
View File
@@ -0,0 +1,118 @@
# 🛠️ CheckCleへの貢献
**CheckCle**への貢献にご興味をお持ちいただき、ありがとうございます — リアルタイムフルスタック監視のための究極のオープンソースプラットフォームです。バグの報告、機能の提案、ドキュメントの改善、またはコードの提出など、どのような形でのご貢献でも歓迎いたします!
大小を問わず、あらゆる種類の貢献を歓迎します。このガイドが始めるのに役立ちます。
---
## 📌 目次
- [行動規範](#-行動規範)
- [貢献の方法](#-貢献の方法)
- [開発環境のセットアップ](#-開発環境のセットアップ)
- [プルリクエストのプロセス](#-プルリクエストのプロセス)
- [バグと問題の報告](#-バグと問題の報告)
- [機能リクエスト](#-機能リクエスト)
- [コミュニティとサポート](#-コミュニティとサポート)
- [ライセンス](#-ライセンス)
---
## 📜 行動規範
私たちは[行動規範](https://opensource.guide/code-of-conduct/)に従い、オープンで歓迎するコミュニティを促進しています。参加することで、これらの基準を守ることに同意したものとします。
---
## 🤝 貢献の方法
CheckCleの改善に役立つ方法をいくつか紹介します:
- 🐞 **バグの報告** 不具合を見つけましたか?[GitHub Issue](https://github.com/operacle/checkcle/issues)を開いてお知らせください。
- 🌟 **機能の提案** アイデアはありますか?[Discussion](https://github.com/operacle/checkcle/discussions)を始めるか、機能リクエストのissueを開いてください。
- 🛠 **プルリクエストの提出** – コードの改善、バグの修正、機能の追加、ドキュメントの改善を行ってください。
- 📝 **ドキュメントの改善** – タイポの修正でも大変助かります!
- 🌍 **宣伝の協力** – リポジトリに⭐をつけて、SNSでシェアし、他の方にも貢献を呼びかけてください!
---
## 🧰 開発環境のセットアップ
コードに貢献する前に、プロジェクトをローカルで設定してください:
### 1. リポジトリをフォーク
[GitHub](https://github.com/operacle/checkcle)で「Fork」をクリックして、自分のコピーを作成してください。
### 2. フォークをクローン
```bash
git clone --branch develop https://github.com/operacle/checkcle.git
cd checkcle
```
### 3. 依存関係のインストール
READMEまたはプロジェクトドキュメントの指示に従って、必要なパッケージをインストールし、ローカル開発サーバーを実行してください。
### 4. ローカル開発の開始
```bash
#Webアプリケーション
cd application/
npm install && npm run dev
#サーバーバックエンド
cd server
./pocketbase serve --dir pb_data
```
---
## ✅ プルリクエストのプロセス
1. コードが既存のスタイルと命名規則に従っていることを確認してください。
2. 明確で簡潔なコミットメッセージを書いてください。
3. ブランチをプッシュし、`main`ブランチにプルリクエスト(PR)を開いてください。
4. 意味のあるPRの説明を提供してください(何を/なぜ/どのように)。
5. 関連するissueがある場合はリンクしてください(例:`Closes #12`)。
6. すべてのチェックが通ることを確認してください(例:リンティング、テスト)。
PRをレビューし、必要に応じて変更をリクエストし、準備ができ次第マージします!
---
## 🐛 バグと問題の報告
可能な限り多くの情報を含めてください:
- 明確で説明的なタイトル
- 再現手順
- 期待される動作と実際の動作
- 環境情報(OS、ブラウザ、デバイスなど)
- 該当する場合はスクリーンショットやログ
報告には[Issue Tracker](https://github.com/operacle/checkcle/issues)をご利用ください。
---
## 💡 機能リクエスト
アイデアをお聞かせください![Discussion](https://github.com/operacle/checkcle/discussions)または機能リクエストのissueを開いてください。[ロードマップ](https://github.com/operacle/checkcle#development-roadmap)に既に記載されていないことを確認してください。
---
## 🌍 コミュニティとサポート
ヘルプが必要ですか?つながりたいですか?
- 💬 [Discordに参加](https://discord.gg/xs9gbubGwX)
- 🗣 [GitHub Discussion](https://github.com/operacle/checkcle/discussions)を開始または参加
- 🐦 [XTwitter](https://x.com/tl)でフォロー
---
## 📜 ライセンス
貢献することで、あなたの貢献が[MITライセンス](LICENSE)の下でライセンスされることに同意したものとします。
---
## 🙏 ありがとうございます
CheckCleを一緒に構築できることを嬉しく思います — **コミュニティによる、コミュニティのための**強力な監視プラットフォーム。あなたのサポートは私たちにとってとても大切です!💙
+148
View File
@@ -0,0 +1,148 @@
![CheckCle Platform](https://pub-4a4062303020445f8f289a2fee84f9e8.r2.dev/images/server-detail-page.png)
# 🚀 CheckCleとは?
CheckCleは、フルスタックシステム、アプリケーション、インフラストラクチャのシームレスでリアルタイムな監視を実現するオープンソースソリューションです。開発者、システム管理者、DevOpsチームに対して、環境の全レイヤー(サーバー、アプリケーション、サービス)にわたる深い洞察と実用的なデータを提供します。CheckCleにより、テクノロジースタック全体の可視性、制御、最適なパフォーマンスの確保が可能になります。
## 🎯 ライブデモ
👉 **今すぐ試す:** [CheckCle ライブデモ](https://demo.checkcle.io)
## 🌟 主要機能
### アップタイムサービス & インフラストラクチャサーバー監視
- HTTP、DNS、Pingプロトコルの監視
- TCPベースのAPIサービス(FTP、SMTP、HTTPなど)の監視
- 詳細なアップタイム、レスポンス時間、パフォーマンス問題の追跡
- 分散地域監視
- インシデント履歴(UP/DOWN/WARNING/PAUSE
- SSL & ドメイン監視(ドメイン、発行者、有効期限、残り日数、ステータス、最終通知日)
- インフラストラクチャサーバー監視:Linux(🐧 Debian、Ubuntu、CentOS、Red Hatなど)およびWindows(ベータ版)をサポート。ワンライン・インストール・エージェント・スクリプトによるサーバーメトリクス(CPU、RAM、ディスク使用量、ネットワーク活動)の監視
- メンテナンススケジュール & インシデント管理
- 運用ステータス / パブリックステータスページ
- メール、Telegram、Discord、Slack経由の通知
- レポート & 分析
- 設定パネル(ユーザー管理、データ保持、多言語、テーマ(ダーク & ライトモード)、通知とチャネル、アラートテンプレート)
## #️⃣ はじめに
### 現在サポートされているアーキテクチャ
* ✅ x86_64 PC、ラップトップ、サーバー(amd64)
* ✅ 最新のRaspberry Pi 3/4/564ビットOS)、Apple Silicon Macarm64
### 以下のオプションのいずれかを使用してCheckCleをインストールします。
1. CheckCle ワンクリックインストール - ターミナルにコピーして実行するだけ
```bash
curl -fsSL https://checkcle.io/install.sh | bash
```
2. docker runでインストール。以下の準備済みdocker runコマンドをコピーするだけ
```bash
docker run -d \
--name checkcle \
--restart unless-stopped \
-p 8090:8090 \
-v /opt/pb_data:/mnt/pb_data \
--ulimit nofile=4096:8192 \
operacle/checkcle:latest
```
3. Docker compose設定でインストール
```bash
version: '3.9'
services:
checkcle:
image: operacle/checkcle:latest
container_name: checkcle
restart: unless-stopped
ports:
- "8090:8090" # Webアプリケーション
volumes:
- /opt/pb_data:/mnt/pb_data # ホストディレクトリをコンテナパスにマップ
ulimits:
nofile:
soft: 4096
hard: 8192
```
3. 管理Web画面
デフォルトURL: http://0.0.0.0:8090
ユーザー: admin@example.com
パスワード: Admin123456
4. https://docs.checkcle.io のクイックスタートガイドに従ってください
###
![checkcle-collapse-black](https://pub-4a4062303020445f8f289a2fee84f9e8.r2.dev/images/uptime-monitoring.png)
![Service Detail Page](https://pub-4a4062303020445f8f289a2fee84f9e8.r2.dev/images/uptime-service-detail.png)
![checkcle-server-instance](https://pub-4a4062303020445f8f289a2fee84f9e8.r2.dev/images/instance-server-monitoring.png)
![Schedule Maintenance](https://pub-4a4062303020445f8f289a2fee84f9e8.r2.dev/images/checkcle-schedule-maintenance.png)
![SSL Monitoring](https://pub-4a4062303020445f8f289a2fee84f9e8.r2.dev/images/ssl-monitoring.png)
## 📝 開発ロードマップ
- ✅ ヘルスチェック & アップタイム監視(HTTP)
- ✅ ライブ統計情報付きダッシュボードUI
- ✅ マルチユーザーシステム認証(管理者)
- ✅ 通知(Telegram
- ✅ Dockerコンテナ化
- ✅ CheckCle ウェブサイト
- ✅ CheckCle デモサーバー
- ✅ SSL & ドメイン監視
- ✅ メンテナンススケジュール
- ✅ インシデント管理
- [ ] インフラストラクチャサーバー監視
- ✅ 運用ステータス / パブリックステータスページ
- ✅ アップタイム監視(HTTP、TCP、PING、DNS)フル機能
- ✅ 分散地域監視エージェント [サポート運用](https://github.com/operacle/Distributed-Regional-Monitoring)
- ✅ システム設定パネル&メール設定
- ✅ ユーザー権限ロール
- [ ] 通知(Email/Slack/Discord/Signal
- ✅ データ保持 & 自動圧縮(データ & データベース圧縮のマルチオプション)
- ✅ 完全なドキュメント付きオープンソースリリース
## 🌟 CheckCleはコミュニティのため?
- **情熱を持って開発**: コミュニティのためのオープンソース愛好家によって作成
- **フリー & オープンソース**: 隠れたコストなしで完全に無料で使用可能
- **協力 & つながり**: オープンソースに情熱を持つ同志と出会う
---
## 🤝 貢献の方法
CheckCleの改善にご協力いただける方法をご紹介します:
- 🐞 **バグ報告** 不具合を発見しましたか?[GitHub Issue](https://github.com/operacle/checkcle/issues)を開いてお知らせください。
- 🌟 **機能提案** アイデアはありますか?[ディスカッション](https://github.com/operacle/checkcle/discussions)を開始するか、機能リクエストのissueを開いてください。
- 🛠 **プルリクエスト送信** – コードの改善、バグ修正、機能追加、ドキュメントの改良を行ってください。
- 📝 **ドキュメント改善** タイポ修正でも助かります!
- 🌍 **口コミ宣伝** – リポジトリに⭐をつけ、SNSでシェアし、他の人を貢献に招待してください!
---
## 🌍 つながりを保つ
- ウェブサイト: [checkcle.io](https://checkcle.io)
- ドキュメント: [docs.checkcle.io](https://docs.checkcle.io)
- GitHubリポジトリ: ⭐ [CheckCle](https://github.com/operacle/checkcle.git)
- コミュニティチャンネル: ディスカッションやissuesで参加してください!
- Discord: コミュニティに参加 [@discord](https://discord.gg/xs9gbubGwX)
- X: [@tlengoss](https://x.com/tlengoss)
## 📜 ライセンス
CheckCleはMITライセンスの下でリリースされています。
---
## 👥 貢献者
[![](https://contrib.rocks/image?repo=operacle/checkcle)](https://github.com/operacle/checkcle/graphs/contributors)
## スター履歴
[![Star History Chart](https://api.star-history.com/svg?repos=operacle/checkcle&type=Date)](https://www.star-history.com/#operacle/checkcle&Date)
CheckCleで情報を把握し、オンラインを維持しましょう! 🌐
@@ -129,6 +129,9 @@ export const Header = ({
<DropdownMenuItem onClick={() => setLanguage("de")} className={language === "de" ? "bg-accent" : ""}>
{t("Deutsch")}
</DropdownMenuItem>
<DropdownMenuItem onClick={() => setLanguage("ja")} className={language === "ja" ? "bg-accent" : ""}>
{t("japanese")}
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
+3 -1
View File
@@ -1,13 +1,15 @@
import enTranslations from './en';
import kmTranslations from './km';
import deTranslations from './de';
import jaTranslations from './ja';
export type Language = "en" | "km" | "de";
export type Language = "en" | "km" | "de" | "ja";
export const translations = {
en: enTranslations,
km: kmTranslations,
de: deTranslations,
ja: jaTranslations,
};
// Type for accessing translations by module and key
+17
View File
@@ -0,0 +1,17 @@
import { AboutTranslations } from '../types/about';
export const aboutTranslations: AboutTranslations = {
aboutCheckcle: "Checkcleについて",
systemDescription: "Checkcleは、サーバーとサービスの健全性に関するリアルタイム監視、インシデント管理、運用の透明性を提供するオープンソースの監視スタックです。MIT ライセンスの下で公開されています。",
systemVersion: "システムバージョン",
license: "ライセンス",
mitLicense: "MIT ライセンス",
links: "リンク",
viewOnGithub: "GitHubで表示",
viewDocumentation: "ドキュメントを表示",
followOnX: "Xでフォロー",
joinDiscord: "Discordに参加",
quickActions: "クイックアクション",
quickActionsDescription: "一般的な監視操作と機能に素早くアクセスできます。開始するには、以下のアクションを選択してください。",
quickTips: "クイックヒント",
};
+29
View File
@@ -0,0 +1,29 @@
import { CommonTranslations } from '../types/common';
export const commonTranslations: CommonTranslations = {
welcome: "ようこそ",
logout: "ログアウト",
language: "言語",
english: "English",
khmer: "Khmer",
german: "Deutsch",
japanese: "日本語",
goodMorning: "おはようございます",
goodAfternoon: "こんにちは",
goodEvening: "こんばんは",
profile: "プロファイル",
settings: "設定",
documentation: "ドキュメント",
notifications: "通知",
close: "閉じる",
cancel: "キャンセル",
view: "表示",
edit: "編集",
delete: "削除",
status: "ステータス",
time: "時間",
title: "タイトル",
description: "説明",
success: "成功",
error: "エラー",
};
@@ -0,0 +1,54 @@
import { IncidentTranslations } from '../types/incident';
export const incidentTranslations: IncidentTranslations = {
incidentManagement: 'インシデント管理',
incidentsManagementDesc: 'サービスのインシデントとその解決を追跡・管理する',
unresolvedIncidents: '未解決',
resolvedIncidents: '解決済み',
activeIncidents: 'アクティブなインシデント',
criticalIssues: '重要な問題',
avgResolutionTime: '平均解決時間',
noIncidents: 'アクティブなインシデントはありません',
createIncident: 'インシデントを作成',
investigating: '調査中',
identified: '特定済み',
monitoring: '監視中',
resolved: '解決済み',
scheduleIncidentManagement: 'スケジュール・インシデント管理',
incidentName: 'インシデント名',
incidentStatus: 'インシデントステータス',
highPriority: '高優先度',
configurationSettings: '設定',
incidentCreatedSuccess: 'インシデントが正常に作成されました',
basicInfo: '基本情報',
serviceId: 'サービスID',
assignedTo: '担当者',
unassigned: '未割り当て',
timeline: 'タイムライン',
incidentTime: 'インシデント発生時刻',
resolutionTime: '解決時刻',
systems: 'システム',
noSystems: '影響を受けるシステムはありません',
impactAnalysis: '影響分析',
rootCause: '根本原因',
resolutionSteps: '解決手順',
lessonsLearned: '学んだ教訓',
resolutionDetails: '解決詳細',
assignment: '割り当て',
download: 'ダウンロード',
downloadPdf: 'PDFダウンロード',
print: '印刷',
confidentialNote: 'この文書は機密情報であり、内部使用のみを目的としています。',
generatedOn: '生成日時',
enterResolutionSteps: 'インシデント解決のために取った手順を入力してください',
enterLessonsLearned: 'このインシデントから学んだ教訓を入力してください',
editIncident: 'インシデントを編集',
editIncidentDesc: 'このインシデントの詳細を更新',
updating: '更新中...',
update: '更新',
create: '作成',
creating: '作成中...',
configuration: '設定',
failedToUpdateStatus: 'ステータスの更新に失敗しました',
inProgress: '進行中',
};
+24
View File
@@ -0,0 +1,24 @@
import { Translations } from '../types';
import { commonTranslations } from './common';
import { menuTranslations } from './menu';
import { loginTranslations } from './login';
import { aboutTranslations } from './about';
import { servicesTranslations } from './services';
import { maintenanceTranslations } from './maintenance';
import { incidentTranslations } from './incident';
import { sslTranslations } from './ssl';
import { settingsTranslations } from './settings';
const jaTranslations: Translations = {
common: commonTranslations,
menu: menuTranslations,
login: loginTranslations,
about: aboutTranslations,
services: servicesTranslations,
maintenance: maintenanceTranslations,
incident: incidentTranslations,
ssl: sslTranslations,
settings: settingsTranslations
};
export default jaTranslations;
+22
View File
@@ -0,0 +1,22 @@
import { LoginTranslations } from '../types/login';
export const loginTranslations: LoginTranslations = {
signInToYourAccount: "アカウントにサインイン",
dontHaveAccount: "アカウントをお持ちでない場合",
createOne: "作成する",
signInWithGoogle: "Googleでサインイン",
orContinueWith: "または",
email: "メール",
password: "パスワード",
forgot: "忘れた場合",
signIn: "サインイン",
signingIn: "サインイン中...",
loginSuccessful: "ログイン成功",
loginSuccessMessage: "正常にログインしました。",
loginFailed: "ログイン失敗",
authenticationFailed: "認証に失敗しました",
bySigningIn: "サインインすることで、",
termsAndConditions: "利用規約",
and: "と",
privacyPolicy: "プライバシーポリシー",
};
@@ -0,0 +1,67 @@
import { MaintenanceTranslations } from '../types/maintenance';
export const maintenanceTranslations: MaintenanceTranslations = {
scheduledMaintenance: 'スケジュール済みメンテナンス',
scheduledMaintenanceDesc: 'システムとサービスの計画されたメンテナンスウィンドウを表示・管理',
upcomingMaintenance: '予定',
ongoingMaintenance: '実行中',
completedMaintenance: '完了',
createMaintenanceWindow: 'メンテナンス作成',
totalScheduledHours: '総スケジュール時間',
maintenanceName: 'メンテナンス名',
maintenanceStatus: 'ステータス',
scheduledStart: 'スケジュール開始',
scheduledEnd: 'スケジュール終了',
affectedServices: '影響を受けるサービス',
impact: '影響',
minor: '軽微',
major: '重要',
critical: '重大',
none: 'なし',
actions: 'アクション',
scheduled: 'スケジュール済み',
inprogress: '進行中',
completed: '完了',
cancelled: 'キャンセル',
markAsInProgress: '進行中としてマーク',
markAsCompleted: '完了としてマーク',
markAsCancelled: 'キャンセルとしてマーク',
confirmDelete: '削除確認',
deleteMaintenanceConfirmation: 'このメンテナンスウィンドウを削除してもよろしいですか?',
thisActionCannotBeUndone: 'この操作は元に戻せません。',
maintenanceDeleted: 'メンテナンス削除完了',
maintenanceDeletedDesc: 'メンテナンスウィンドウが正常に削除されました。',
errorDeletingMaintenance: 'メンテナンスウィンドウの削除中にエラーが発生しました。',
statusUpdated: 'ステータス更新完了',
maintenanceStatusUpdated: 'メンテナンスステータスが正常に更新されました。',
errorUpdatingMaintenanceStatus: 'メンテナンスステータスの更新中にエラーが発生しました。',
createMaintenance: 'メンテナンス作成',
createMaintenanceDesc: 'サービスの新しいメンテナンスウィンドウをスケジュール',
enterTitle: 'メンテナンスタイトルを入力',
enterDescription: 'メンテナンスの詳細説明を入力',
startTime: '開始時刻',
endTime: '終了時刻',
selectDate: '日付を選択',
enterAffectedServices: '影響を受けるサービスを入力',
separateServicesWithComma: '複数のサービスはカンマで区切ってください',
priority: '優先度',
selectPriority: '優先度を選択',
selectStatus: 'ステータスを選択',
selectImpact: '影響を選択',
notifySubscribers: '購読者に通知',
notifySubscribersDesc: 'このメンテナンスが開始されたときに全購読者に通知を送信',
maintenanceCreated: 'メンテナンス作成完了',
maintenanceCreatedDesc: 'メンテナンスウィンドウが正常にスケジュールされました。',
errorCreatingMaintenance: 'メンテナンスウィンドウの作成中にエラーが発生しました。',
errorFetchingMaintenanceData: 'メンテナンスデータの取得中にエラーが発生しました。',
low: '低',
medium: '中',
high: '高',
created: '作成済み',
lastUpdated: '最終更新',
subscribersWillBeNotified: 'メンテナンス開始時に購読者に通知されます',
noNotifications: '通知は送信されません',
noScheduledMaintenance: 'スケジュール済みメンテナンスなし',
noMaintenanceWindows: 'この期間にメンテナンスウィンドウはありません。「メンテナンス作成」ボタンをクリックして作成してください。',
maintenanceCreatedSuccess: 'メンテナンスウィンドウが正常に作成されました',
};
+20
View File
@@ -0,0 +1,20 @@
import { MenuTranslations } from '../types/menu';
export const menuTranslations: MenuTranslations = {
uptimeMonitoring: "稼働監視",
instanceMonitoring: "インスタンス監視",
sslDomain: "SSL・ドメイン",
scheduleIncident: "スケジュール・インシデント",
operationalPage: "運用ページ",
reports: "レポート",
regionalMonitoring: "地域監視",
settingPanel: "設定パネル",
generalSettings: "一般設定",
userManagement: "ユーザー管理",
notificationSettings: "通知設定",
alertsTemplates: "アラートテンプレート",
rolesManagement: "ロール管理",
dataRetention: "データ保持",
backupSettings: "バックアップ設定",
aboutSystem: "システム情報",
};
@@ -0,0 +1,11 @@
import { ServicesTranslations } from '../types/services';
export const servicesTranslations: ServicesTranslations = {
serviceName: "サービス名",
serviceType: "サービスタイプ",
serviceStatus: "サービスステータス",
responseTime: "応答時間",
uptime: "稼働時間",
lastChecked: "最終チェック",
noServices: "フィルタ条件に一致するサービスがありません。",
};
@@ -0,0 +1,51 @@
import { SettingsTranslations } from '../types/settings';
export const settingsTranslations: SettingsTranslations = {
// タブ
systemSettings: "システム設定",
mailSettings: "メール設定",
// システム設定
appName: "アプリケーション名",
appURL: "アプリケーションURL",
senderName: "送信者名",
senderEmail: "送信者メールアドレス",
hideControls: "コントロールを非表示",
// メール設定
smtpSettings: "SMTP設定",
smtpEnabled: "SMTPを有効にする",
smtpHost: "SMTPホスト",
smtpPort: "SMTPポート",
smtpUsername: "SMTPユーザー名",
smtpPassword: "SMTPパスワード",
smtpAuthMethod: "認証方式",
enableTLS: "TLSを有効にする",
localName: "ローカル名",
// テストメール
testEmail: "テストメール",
sendTestEmail: "テストメールを送信",
emailTemplate: "メールテンプレート",
verification: "認証",
passwordReset: "パスワードリセット",
confirmEmailChange: "メールアドレス変更確認",
otp: "OTP",
loginAlert: "ログインアラート",
authCollection: "認証コレクション",
selectCollection: "コレクションを選択",
toEmailAddress: "宛先メールアドレス",
enterEmailAddress: "メールアドレスを入力",
sending: "送信中...",
// アクションとステータス
save: "変更を保存",
saving: "保存中...",
settingsUpdated: "設定が正常に更新されました",
errorSavingSettings: "設定の保存中にエラーが発生しました",
errorFetchingSettings: "設定の読み込み中にエラーが発生しました",
testConnection: "接続テスト",
testingConnection: "接続テスト中...",
connectionSuccess: "接続成功",
connectionFailed: "接続失敗"
};
+106
View File
@@ -0,0 +1,106 @@
import { SSLTranslations } from '../types/ssl';
export const sslTranslations: SSLTranslations = {
// ページとセクションタイトル
sslDomainManagement: "SSL・ドメイン管理",
monitorSSLCertificates: "ドメインのSSL証明書を監視・管理",
addSSLCertificate: "SSL証明書を追加",
editSSLCertificate: "SSL証明書を編集",
deleteSSLCertificate: "SSL証明書を削除",
sslCertificateDetails: "SSL証明書詳細",
detailedInfo: "詳細情報:",
// ステータス関連
valid: "有効",
expiringSoon: "期限切れ間近",
expired: "期限切れ",
pending: "保留中",
// 統計とカード
validCertificates: "有効な証明書",
expiringSoonCertificates: "期限切れ間近",
expiredCertificates: "期限切れ証明書",
// フォームフィールド
domain: "ドメイン",
domainName: "ドメイン名",
domainCannotChange: "ドメインは作成後変更できません",
warningThreshold: "警告閾値",
warningThresholdDays: "警告閾値(日)",
expiryThreshold: "期限切れ閾値",
expiryThresholdDays: "期限切れ閾値(日)",
notificationChannel: "通知チャンネル",
chooseChannel: "通知チャンネルを選択",
whereToSend: "通知の送信先",
daysBeforeExpiration: "期限切れ前の警告を受信する日数",
daysBeforeCritical: "期限切れ前の重要アラートを受信する日数",
getNotifiedExpiration: "証明書の期限切れが近い時に通知を受信",
getNotifiedCritical: "証明書の期限切れが非常に近い時に通知を受信",
// テーブルヘッダーとフィールド
issuer: "発行者",
expirationDate: "有効期限",
daysLeft: "残り日数",
status: "ステータス",
lastNotified: "最終通知",
actions: "アクション",
validFrom: "有効開始日",
validUntil: "有効終了日",
validityDays: "有効期間",
organization: "組織",
commonName: "コモンネーム",
serialNumber: "シリアル番号",
algorithm: "アルゴリズム",
subjectAltNames: "サブジェクト代替名",
// ボタンとアクション
addDomain: "ドメインを追加",
refreshAll: "全て更新",
cancel: "キャンセル",
addCertificate: "証明書を追加",
check: "チェック",
view: "表示",
edit: "編集",
delete: "削除",
close: "閉じる",
saveChanges: "変更を保存",
updating: "更新中",
// 詳細ビューのセクション
basicInformation: "基本情報",
validity: "有効性",
issuerInfo: "発行者情報",
technicalDetails: "技術的詳細",
monitoringConfig: "監視設定",
recordInfo: "レコード情報",
// 通知とメッセージ
sslCertificateAdded: "SSL証明書が正常に追加されました",
sslCertificateUpdated: "SSL証明書が正常に更新されました",
sslCertificateDeleted: "SSL証明書が正常に削除されました",
sslCertificateRefreshed: "{domain}のSSL証明書が正常に更新されました",
allCertificatesRefreshed: "全{count}件の証明書が正常に更新されました",
someCertificatesFailed: "{success}件の証明書が更新され、{failed}件が失敗しました",
failedToAddCertificate: "SSL証明書の追加に失敗しました",
failedToLoadCertificates: "SSL証明書の読み込みに失敗しました",
failedToUpdateCertificate: "SSL証明書の更新に失敗しました",
failedToDeleteCertificate: "SSL証明書の削除に失敗しました",
failedToCheckCertificate: "SSL証明書のチェックに失敗しました",
noCertificatesToRefresh: "更新する証明書がありません",
startingRefreshAll: "{count}件の証明書の更新を開始しています",
checkingSSLCertificate: "SSL証明書をチェック中...",
deleteConfirmation: "以下の証明書を削除してもよろしいですか?",
deleteWarning: "この操作は元に戻せません。証明書が完全に削除されます。",
// その他
unknown: "不明",
never: "なし",
none: "なし",
loadingChannels: "チャンネル読み込み中...",
noChannelsFound: "通知チャンネルが見つかりません",
noSSLCertificates: "SSL証明書が見つかりません",
created: "作成日",
lastUpdated: "最終更新",
lastNotification: "最終通知",
collectionId: "コレクションID"
};