From 0494dc298180336e430ae12df34f1957c3469307 Mon Sep 17 00:00:00 2001
From: fuyuking <101615404+fuyuking@users.noreply.github.com>
Date: Thu, 26 Jun 2025 10:58:36 +0900
Subject: [PATCH 1/6] Add files via upload
---
.../src/plugin/plugins/mapping/config.json | 31 ++++++++++++++++
.../plugins/mapping/configure/index.tsx | 29 +++++++++++++++
apps/web/src/plugin/plugins/mapping/icon.svg | 12 ++++++
.../src/plugin/plugins/mapping/view/index.tsx | 37 +++++++++++++++++++
.../plugin/plugins/mapping/view/style.less | 28 ++++++++++++++
5 files changed, 137 insertions(+)
create mode 100644 apps/web/src/plugin/plugins/mapping/config.json
create mode 100644 apps/web/src/plugin/plugins/mapping/configure/index.tsx
create mode 100644 apps/web/src/plugin/plugins/mapping/icon.svg
create mode 100644 apps/web/src/plugin/plugins/mapping/view/index.tsx
create mode 100644 apps/web/src/plugin/plugins/mapping/view/style.less
diff --git a/apps/web/src/plugin/plugins/mapping/config.json b/apps/web/src/plugin/plugins/mapping/config.json
new file mode 100644
index 000000000..1edcac2d6
--- /dev/null
+++ b/apps/web/src/plugin/plugins/mapping/config.json
@@ -0,0 +1,31 @@
+{
+ "$schema": "../../schema.json",
+ "type": "mapping",
+ "name": "Mapping",
+ "class": "data_card",
+ "icon": "./icon.svg",
+ "defaultRow": 2,
+ "defaultCol": 3,
+ "minRow": 1,
+ "minCol": 2,
+ "configProps": [
+ {
+ "style": "width: 100%",
+ "components": [
+ {
+ "type": "input",
+ "title": "URL",
+ "key": "src",
+ "style": "width: 100%",
+ "defaultValue": "https://example.com",
+ "componentProps": {
+ "inputProps": {
+ "maxLength": 512
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "view": []
+}
diff --git a/apps/web/src/plugin/plugins/mapping/configure/index.tsx b/apps/web/src/plugin/plugins/mapping/configure/index.tsx
new file mode 100644
index 000000000..6a3d92ae1
--- /dev/null
+++ b/apps/web/src/plugin/plugins/mapping/configure/index.tsx
@@ -0,0 +1,29 @@
+import { forwardRef } from 'react';
+import { RenderConfig } from '../../../render';
+
+interface ConfigPluginProps {
+ config: CustomComponentProps;
+ value: any;
+ onOk: (data: any) => void;
+ onChange: (data: any) => void;
+}
+
+const Plugin = forwardRef((props: ConfigPluginProps, ref: any) => {
+ const { onOk, onChange, value, config } = props;
+
+ const handleSubmit = (data: any) => {
+ onOk(data);
+ };
+
+ return (
+
+ );
+});
+
+export default Plugin;
diff --git a/apps/web/src/plugin/plugins/mapping/icon.svg b/apps/web/src/plugin/plugins/mapping/icon.svg
new file mode 100644
index 000000000..34b3f3cfb
--- /dev/null
+++ b/apps/web/src/plugin/plugins/mapping/icon.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/apps/web/src/plugin/plugins/mapping/view/index.tsx b/apps/web/src/plugin/plugins/mapping/view/index.tsx
new file mode 100644
index 000000000..d37985ebb
--- /dev/null
+++ b/apps/web/src/plugin/plugins/mapping/view/index.tsx
@@ -0,0 +1,37 @@
+import { memo, useEffect, useState } from 'react';
+import './style.less';
+
+export interface ViewProps {
+ config: {
+ src?: string;
+ };
+ configJson: {
+ isPreview?: boolean;
+ };
+}
+
+const View = (props: ViewProps) => {
+ const { config } = props;
+ const { src='https://example.com' } = config || {};
+
+ const [key, setKey] = useState(0);
+
+ // 当src变化时更新key值
+ useEffect(() => {
+ setKey(prevKey => prevKey + 1);
+ }, [src]);
+
+ return (
+
+ );
+};
+
+export default memo(View);
diff --git a/apps/web/src/plugin/plugins/mapping/view/style.less b/apps/web/src/plugin/plugins/mapping/view/style.less
new file mode 100644
index 000000000..86c6d7f59
--- /dev/null
+++ b/apps/web/src/plugin/plugins/mapping/view/style.less
@@ -0,0 +1,28 @@
+.text-wrapper {
+ display: flex;
+ flex-direction: column;
+ padding: @padding-md 0;
+ background-color: var(--white);
+ border-radius: @border-radius-md;
+
+ &__preview {
+ min-width: 300px;
+ max-width: 500px;
+ max-height: 300px;
+ }
+
+ &__label {
+ padding: 0 @padding-md;
+ margin-bottom: @margin-xs;
+ font-weight: @font-weight-medium;
+ .text-size(@font-size-lg);
+ }
+
+ &__content {
+ flex: 1;
+ padding: 0 @padding-md;
+ overflow: auto;
+ word-break: break-all;
+ .text-size(@font-size-base);
+ }
+}
From 0e0402b86b9d89ede1c94e1393823e5d7d324dd4 Mon Sep 17 00:00:00 2001
From: fuyuking <101615404+fuyuking@users.noreply.github.com>
Date: Thu, 26 Jun 2025 11:30:29 +0900
Subject: [PATCH 2/6] Add files via upload
---
packages/locales/import/ja.json | 606 ++++++++++++++++++++++++++++++++
1 file changed, 606 insertions(+)
create mode 100644 packages/locales/import/ja.json
diff --git a/packages/locales/import/ja.json b/packages/locales/import/ja.json
new file mode 100644
index 000000000..41a017c3c
--- /dev/null
+++ b/packages/locales/import/ja.json
@@ -0,0 +1,606 @@
+{
+ "auth.message.register_success": "登録に成功しました。",
+ "common.button.cancel": "キャンセル",
+ "common.button.confirm": "確認",
+ "common.button.edit": "編集",
+ "common.button.loading": "読み込み中",
+ "common.button.next": "次へ",
+ "common.button.previous": "前へ",
+ "common.button.reset": "リセット",
+ "common.button.save": "保存",
+ "common.confirm.execute": "更新を実行してもよろしいですか?",
+ "common.document.title": "Beaver IoT",
+ "common.label.403_forbidden": "403 禁止",
+ "common.label.404_not_found": "404 ページが見つかりません",
+ "common.label.add": "追加",
+ "common.label.back": "戻る",
+ "common.label.banned": "禁止",
+ "common.label.broker_address": "Broker アドレス",
+ "common.label.broker_port": "Broker ポート",
+ "common.label.bulk_deletion": "一括削除",
+ "common.label.bulk_removal": "一括削除",
+ "common.label.by_device": "デバイスベース",
+ "common.label.choices": "選択候補",
+ "common.label.chosen": "選択済み",
+ "common.label.click_to_try_fix": "クリックして修復を試す",
+ "common.label.client_id": "クライアント ID",
+ "common.label.close": "閉じる",
+ "common.label.confirm_password": "パスワード確認",
+ "common.label.connect": "接続",
+ "common.label.content": "内容",
+ "common.label.copy": "コピー",
+ "common.label.copy_error_info": "エラー情報をコピー",
+ "common.label.create": "作成",
+ "common.label.create_time": "作成日時",
+ "common.label.creator": "作成者",
+ "common.label.dashboard": "ダッシュボード",
+ "common.label.data_encoding_format": "データエンコード形式",
+ "common.label.data_source": "データソース",
+ "common.label.data_type": "データタイプ",
+ "common.label.day": "{1} 日",
+ "common.label.days": "{1} 日",
+ "common.label.delete": "削除",
+ "common.label.deletion": "削除",
+ "common.label.detail": "詳細",
+ "common.label.device": "デバイス",
+ "common.label.edit_title": "{1} を編集",
+ "common.label.editor": "エディター",
+ "common.label.email": "メールアドレス",
+ "common.label.empty": "データなし",
+ "common.label.enable_status": "有効状態",
+ "common.label.enable_title": "{1} を有効化",
+ "common.label.end_date": "終了日時",
+ "common.label.entity": "エンティティ",
+ "common.label.error": "エラー",
+ "common.label.export": "エクスポート",
+ "common.label.false": "False",
+ "common.label.hour": "{1} 時間",
+ "common.label.hours": "{1} 時間",
+ "common.label.image": "画像",
+ "common.label.import": "インポート",
+ "common.label.input": "入力",
+ "common.label.integration": "統合",
+ "common.label.invisible": "不可視",
+ "common.label.json": "JSON",
+ "common.label.key": "キー",
+ "common.label.label": "ラベル",
+ "common.label.language": "言語",
+ "common.label.last_modified_time": "最終更新日時",
+ "common.label.loading": "読み込み中…",
+ "common.label.local_upload": "ローカルアップロード",
+ "common.label.log": "ログ",
+ "common.label.login": "ログイン",
+ "common.label.max": "最大",
+ "common.label.min": "最小",
+ "common.label.minutes": "{1} 分",
+ "common.label.more": "その他",
+ "common.label.ms": "ms",
+ "common.label.name": "名前",
+ "common.label.no_device_entity": "デバイスに紐づくエンティティなし",
+ "common.label.no_options": "選択肢なし",
+ "common.label.no_permissions": "権限なし",
+ "common.label.on": "オン",
+ "common.label.openapi": "OpenAPI",
+ "common.label.operation": "操作",
+ "common.label.output": "出力",
+ "common.label.page_not_permission": "このページへのアクセス権がありません。管理者へご連絡ください。",
+ "common.label.password": "パスワード",
+ "common.label.please_select": "選択してください",
+ "common.label.property": "プロパティ",
+ "common.label.readonly": "読み取り専用",
+ "common.label.refresh": "ページを更新",
+ "common.label.register": "登録",
+ "common.label.remark": "備考",
+ "common.label.removal": "削除",
+ "common.label.remove": "削除",
+ "common.label.rename": "名称変更",
+ "common.label.required": "必須",
+ "common.label.run": "実行",
+ "common.label.search": "検索",
+ "common.label.second": "{1} 秒",
+ "common.label.seconds": "{1} 秒",
+ "common.label.select_entity": "エンティティを選択",
+ "common.label.selected": "選択済み",
+ "common.label.service": "サービス",
+ "common.label.setting": "設定",
+ "common.label.settings": "設定",
+ "common.label.sign_out": "ログアウト",
+ "common.label.sort_type_newest_to_oldest": "新しい順",
+ "common.label.sort_type_oldest_to_newest": "古い順",
+ "common.label.start_date": "開始日時",
+ "common.label.success": "成功",
+ "common.label.system": "システム",
+ "common.label.table_disabled_status": "無効状態",
+ "common.label.target": "対象",
+ "common.label.test": "テスト",
+ "common.label.time": "時間",
+ "common.label.tip": "ヒント",
+ "common.label.title": "タイトル",
+ "common.label.true": "True",
+ "common.label.type": "タイプ",
+ "common.label.unit": "単位",
+ "common.label.update_time": "更新日時",
+ "common.label.upload_image": "画像をアップロード",
+ "common.label.uploading": "アップロード中",
+ "common.label.url": "URL",
+ "common.label.username": "ユーザー名",
+ "common.label.value": "値",
+ "common.label.version": "バージョン",
+ "common.label.visible": "可視",
+ "common.label.webhook": "Webhook",
+ "common.label.week": "週",
+ "common.label.workflow": "ワークフロー",
+ "common.label.writable": "書き込み可\n",
+ "common.language.ja": "日本語",
+ "common.language.ja_short": "JP",
+ "common.language.cn": "中国語",
+ "common.language.cn_short": "ZH",
+ "common.language.en": "英語",
+ "common.language.en_short": "EN",
+ "common.message.add_success": "追加しました。",
+ "common.message.click_to_upload_file": "クリックまたはドラッグしてファイルをアップロード",
+ "common.message.copy_successful": "コピーしました。",
+ "common.message.delete_success": "削除しました。",
+ "common.message.error_user_business_details_not_exist": "ユーザーのビジネスパラメータがありません",
+ "common.message.json_format_error": "JSON 形式が正しくありません",
+ "common.message.no_results_found": "結果が見つかりません。",
+ "common.message.operation_success": "操作が成功しました。",
+ "common.message.register_helper_text": "ようこそ! まずはユーザーアカウントを作成しましょう。",
+ "common.message.remove_success": "削除しました。",
+ "common.message.something_wrong_title": "エラーが発生しました",
+ "common.message.upload_error_file_invalid_type": "ファイル形式は {1} のみ対応しています。",
+ "common.message.upload_error_file_too_large": "ファイルサイズが {1} を超えています。",
+ "common.message.upload_error_file_too_small": "ファイルサイズが {1} 未満です。",
+ "common.message.upload_error_server_error": "アップロードに失敗しました。しばらくしてから再試行してください。",
+ "common.message.upload_error_too_many_files": "アップロードできる画像は 1 枚のみです",
+ "common.modal.desc_leave_current_page": "変更内容は保存されません。ページを離れてもよろしいですか?",
+ "common.modal.title_leave_current_page": "ページを離れる",
+ "common.placeholder.input": "入力してください",
+ "common.placeholder.maximum": "最大値",
+ "common.placeholder.minimum": "最低値",
+ "common.placeholder.select": "選択してください",
+ "common.plugin_add_title": "{1} を追加",
+ "common.switch.no": "いいえ",
+ "common.switch.sure": "はい",
+ "common.symbol.colon": ":",
+ "common.symbol.comma": ",",
+ "common.symbol.parentheses": "({1})",
+ "common.time.afternoon": "午後",
+ "common.time.morning": "午前",
+ "common.unit.second": "秒",
+
+ "dashboard.add_title": "ダッシュボードを追加",
+ "dashboard.add_widget": "ウィジェットを追加",
+ "dashboard.dashboard_name": "ダッシュボード名",
+ "dashboard.edit_title": "ダッシュボードを編集",
+ "dashboard.empty_description": "棒グラフ、折れ線グラフ、円グラフなどを素早く挿入し、データを直感的に可視化できます。",
+ "dashboard.empty_text": "ウィジェットを選択してダッシュボードを構築してください",
+ "dashboard.label_avg_value": "平均値",
+ "dashboard.label_count_value": "カウント",
+ "dashboard.label_latest_value": "最新値",
+ "dashboard.label_max_value": "最大値",
+ "dashboard.label_min_value": "最小値",
+ "dashboard.label_nearly_half_year": "過去 6 か月",
+ "dashboard.label_nearly_one_days": "過去 1 日",
+ "dashboard.label_nearly_one_month": "過去 1 か月",
+ "dashboard.label_nearly_one_week": "過去 1 週間",
+ "dashboard.label_nearly_one_year": "過去 1 年",
+ "dashboard.label_nearly_six_hours": "過去 6 時間",
+ "dashboard.label_nearly_three_hours": "過去 3 時間",
+ "dashboard.label_nearly_three_month": "過去 3 か月",
+ "dashboard.label_nearly_twelve_hours": "過去 12 時間",
+ "dashboard.label_sum_value": "合計値",
+ "dashboard.label.left_y_axis": "左 Y 軸",
+ "dashboard.label.right_y_axis": "右 Y 軸",
+ "dashboard.label.y_axis": "Y 軸",
+ "dashboard.leave_to_new_dashboard_description": "新しく作成したダッシュボードへ移動しますか?現在の変更は保存されません。",
+ "dashboard.plugin_class_data_card": "データ表示",
+ "dashboard.plugin_class_data_chart": "データチャート",
+ "dashboard.plugin_class_operate": "操作系ウィジェット",
+ "dashboard.plugin_class_other": "その他",
+ "dashboard.plugin.trigger_confirm_text": "この操作を実行してよろしいですか?",
+ "dashboard.set_as_home_dashboard_description": "このダッシュボードをホームに設定しますか?既存のホーム設定は上書きされます。",
+ "dashboard.set_as_home_dashboard_tip": "ダッシュボードをトップに固定",
+ "dashboard.switch_title_off": "オフ",
+ "dashboard.switch_title_on": "オン",
+ "dashboard.unset_as_home_dashboard_tip": "トップ固定を解除",
+
+ "device.detail.basic_info": "基本情報",
+ "device.detail.entity_data": "エンティティデータ",
+ "device.label.param_device_id": "デバイス ID",
+ "device.label.param_device_name": "デバイス名",
+ "device.label.param_entity_id": "エンティティ ID",
+ "device.label.param_entity_name": "エンティティ名",
+ "device.label.param_external_id": "外部デバイス ID",
+ "device.label.param_founder": "作成者",
+ "device.label.param_source": "ソース",
+ "device.message.delete_tip": "削除してもよろしいですか?",
+
+ "entity.label.bool_enum_false": "False の値",
+ "entity.label.bool_enum_true": "True の値",
+ "entity.label.create_entity_from_workflow": "ワークフローから作成",
+ "entity.label.create_entity_only": "エンティティのみ作成",
+ "entity.label.create_property": "プロパティを作成",
+ "entity.label.create_service": "サービスを作成",
+ "entity.label.custom_entity": "カスタムエンティティ",
+ "entity.label.entity_items": "項目",
+ "entity.label.entity_maximum_length": "最大長",
+ "entity.label.entity_maximum_value": "最大値",
+ "entity.label.entity_minimum_length": "最小長",
+ "entity.label.entity_minimum_value": "最小値",
+ "entity.label.entity_type_of_access": "アクセス種別",
+ "entity.label.entity_type_of_access_read_and_write": "読み書き",
+ "entity.label.entity_type_of_access_readonly": "読み取り専用",
+ "entity.label.entity_type_of_access_write": "書き込み専用",
+ "entity.label.entity_type_of_boolean": "BOOLEAN",
+ "entity.label.entity_type_of_double": "DOUBLE",
+ "entity.label.entity_type_of_enum": "ENUM",
+ "entity.label.entity_type_of_long": "LONG",
+ "entity.label.entity_type_of_string": "STRING",
+ "entity.label.enumeration_items": "列挙項目",
+ "entity.label.historical_data": "履歴データ",
+ "entity.label.set_enumeration_items": "列挙項目を設定",
+ "entity.label.set_value": "値を設定",
+ "entity.label.value_source": "値のソース",
+
+ "error.http.account_session_logout": "アカウントがログアウトされました。",
+ "error.http.authentication_failed": "アカウントが存在しない、またはパスワードが間違っています。",
+ "error.http.dashboard_name_exist": "ダッシュボード名が既に存在します。",
+ "error.http.data_no_found": "データが見つかりません。",
+ "error.http.forbidden_permission": "アクセス権がありません。",
+ "error.http.method_not_allowed": "許可されていない HTTP メソッドです。",
+ "error.http.name_repeated": "名前が重複しています。",
+ "error.http.network_timeout": "ネットワーク接続がタイムアウトしました。",
+ "error.http.page_not_found": "お探しのページは存在しません。",
+ "error.http.parameter_syntax_error": "パラメータの構文が誤っています。",
+ "error.http.parameter_validation_failed": "パラメータの検証に失敗しました。",
+ "error.http.request_too_frequently": "リクエストが多すぎます。",
+ "error.http.role_does_not_exit": "ロールが存在しません。",
+ "error.http.role_still_has_user": "ロールに紐づくユーザーを削除してからロールを削除してください。",
+ "error.http.server_error": "サーバーエラーです。確認して再試行してください。",
+ "error.http.token_invalid": "トークンが無効です。再試行してください。",
+ "error.http.token_not_found": "ログインしていません。",
+ "error.http.user_has_no_permission": "現在のユーザーには権限がありません。",
+ "error.http.user_register_email_exist": "登録メールアドレスは既に使われています。",
+
+ "setting.credentials.edit_http": "HTTP 資格情報を編集",
+ "setting.credentials.edit_mqtt": "MQTT 資格情報を編集",
+ "setting.credentials.edit_smtp": "SMTP 設定を編集",
+ "setting.credentials.smtp_addr": "SMTP サーバーアドレス",
+ "setting.credentials.smtp_title": "システムメールサーバー設定(SMTP)",
+ "setting.credentials.white_label": "企業設定",
+ "setting.integration.add.application_tip": "ゲートウェイで直前に作成したアプリケーションを選択してください。",
+ "setting.integration.add.credential_tip": "ゲートウェイの Web GUI(ネットワークサーバー → アプリケーション)でアプリを作成し、生成された情報を以下に貼り付けてください。",
+ "setting.integration.api_status": "API 状態",
+ "setting.integration.api_status_error": "API エラー",
+ "setting.integration.api_status_ready": "API 準備完了",
+ "setting.integration.api_status_waiting": "接続待機中",
+ "setting.integration.available_function": "利用可能な機能",
+ "setting.integration.available_function_warning_text": "下記機能を使用する前に、OpenAPI 接続が準備完了になっていることを確認してください。",
+ "setting.integration.codec.customize_tip": "デバイスデータのエンコード/デコードに使用するコーデックファイルの URL を入力してください。",
+ "setting.integration.configuration": "統合設定",
+ "setting.integration.data_access_service": "データアクセスサービス",
+ "setting.integration.device.sync_tip": "この操作により、対象ノードデバイスのゲートウェイ側コーデック設定が空になります。ご注意ください。",
+ "setting.integration.device.update_codec": "コーデックファイルを更新",
+ "setting.integration.device.update_codec_desc": "指定した URL から最新の製品コーデックを取得します。※ 新しいコーデックは新規追加デバイスにのみ適用されます。",
+ "setting.integration.device.update_codec_title": "コーデックファイルを更新",
+ "setting.integration.function_data_sync_confirm_helper_text": "この操作を実行しますか? 同期では存在しないデバイスのみが追加され、既存デバイスの情報は更新されません。",
+ "setting.integration.function_data_sync_confirm_title": "データ同期",
+ "setting.integration.function_data_sync_desc": "Milesight 開発プラットフォームから、接続アプリケーションに紐づく全デバイス情報とテレメトリを取得します。",
+ "setting.integration.function_data_sync_title": "データ同期",
+ "setting.integration.gateway.delete_bulk_tip": "ゲートウェイを削除すると、その配下のノードデバイスも削除されます。{1} 台のゲートウェイと配下デバイスを削除してもよろしいですか?",
+ "setting.integration.gateway.delete_tip": "ゲートウェイを削除すると配下のノードデバイスも削除されます。削除してよろしいですか?",
+ "setting.integration.label.add_gateway": "ゲートウェイを追加",
+ "setting.integration.label.application_id": "アプリ ID",
+ "setting.integration.label.choose_app": "アプリを選択",
+ "setting.integration.label.codec_repo": "ファイル URL",
+ "setting.integration.label.codec_repo_title": "カスタムファイル URL",
+ "setting.integration.label.config_info": "設定情報",
+ "setting.integration.label.credential": "資格情報",
+ "setting.integration.label.credentials": "資格情報",
+ "setting.integration.label.device_bulk_delete_tip": "{1} 台のデバイスを一括削除してもよろしいですか?",
+ "setting.integration.label.device_count": "追加済みデバイス",
+ "setting.integration.label.device_delete_tip": "デバイスを削除してもよろしいですか?\n",
+ "setting.integration.label.device_eui": "DevEUI",
+ "setting.integration.label.downlink_data": "ダウンリンクデータ",
+ "setting.integration.label.gateway_name": "ゲートウェイ名",
+ "setting.integration.label.gateway_offline": "オフライン",
+ "setting.integration.label.gateway_online": "オンライン",
+ "setting.integration.label.general": "一般",
+ "setting.integration.label.model": "モデル",
+ "setting.integration.label.mqtt_test_fail": "接続に失敗しました。設定を確認してください。",
+ "setting.integration.label.request_data": "リクエストデータ",
+ "setting.integration.label.response_data": "レスポンスデータ",
+ "setting.integration.label.setup_app": "アプリを設定",
+ "setting.integration.label.status": "ゲートウェイ状態",
+ "setting.integration.label.sub_device": "子デバイス",
+ "setting.integration.label.syncable_device": "同期可能デバイス ({1})",
+ "setting.integration.label.synced_device": "追加済みデバイス",
+ "setting.integration.label.synchronize": "同期",
+ "setting.integration.label.topic": "MQTT トピック",
+ "setting.integration.label.uplink_data": "アップリンクデータ",
+ "setting.integration.label.user_credential": "ユーザー資格情報",
+ "setting.integration.message.device_sync_success": "同期が完了しました。",
+ "setting.integration.message.sync_device_tip": "デバイスを同期してもよろしいですか?",
+ "setting.integration.message.sync_device_title": "デバイス同期",
+ "setting.integration.message.test_mqtt_fail": "接続に失敗しました。設定を確認してください。",
+ "setting.integration.openapi_config": "OpenAPI 設定",
+ "setting.integration.openapi_config_helper_text": "API キーはサーバー認証に使用します。",
+ "setting.integration.openapi_frequency_helper_text": "範囲:30 秒 〜 86,400 秒",
+ "setting.integration.openapi_frequency_of_request": "リクエスト間隔",
+ "setting.integration.openapi_helper_text": "OpenAPI を使って定期的にデバイス情報とテレメトリを取得します。",
+ "setting.integration.param_client_secret": "クライアントシークレット",
+ "setting.integration.param_server_address": "サーバーアドレス",
+ "setting.integration.service": "利用可能サービス",
+ "setting.integration.service_operation_confirm": "{1} 操作を実行してよろしいですか?",
+ "setting.integration.sync_device_empty_model": "必須項目をすべて入力してください。",
+ "setting.integration.webhook_helper_text": "Webhook で Milesight 開発プラットフォームからのプッシュデータを受信し、生成された URL をプラットフォーム側に設定してください。",
+ "setting.integration.webhook_secret_key": "シークレットキー",
+ "setting.integration.webhook_status": "Webhook 状態",
+ "setting.integration.webhook_status_error": "Webhook エラー",
+ "setting.integration.webhook_status_ready": "Webhook 準備完了",
+ "setting.integration.webhook_status_waiting": "設定待ち",
+ "setting.integration.webhook_url": "Webhook URL",
+
+ "user.label.add_new_user_modal_title": "新規ユーザーを追加",
+ "user.label.add_role": "ロールを作成",
+ "user.label.bulk_delete_tip": "{0} 名のユーザーを一括削除します。よろしいですか? ※削除は取り消せません。",
+ "user.label.edit_user_modal_title": "ユーザーを編集",
+ "user.label.rename_role": "ロール名を変更",
+ "user.label.reset_password": "パスワードをリセット",
+ "user.label.role_table_title": "ロール",
+ "user.label.single_delete_tip": "ユーザー {0} を削除します。よろしいですか? ※削除は取り消せません。",
+ "user.label.user_name_table_title": "ユーザー名",
+ "user.label.user_role": "ユーザーとロール",
+ "user.message.not_data_roles_tip": "ロールがありません。まずロールを作成してください。",
+
+ "user.role.add_user_member_modal_title": "ユーザーを紐づけ",
+ "user.role.bulk_dashboard_remove_tip": "{0} 件のダッシュボードを一括で権限解除します。よろしいですか?",
+ "user.role.bulk_device_remove_tip": "{0} 台のデバイスを一括で権限解除します。よろしいですか?",
+ "user.role.bulk_integration_remove_tip": "{0} 件の統合を一括解除します。解除後は当該統合下のデバイスや独立エンティティにアクセスできなくなります。続行しますか?",
+ "user.role.bulk_member_remove_tip": "{0} 名のメンバーを一括解除します。よろしいですか?",
+ "user.role.dashboard_permission_modal_title": "ダッシュボード権限を追加",
+ "user.role.delete_tip": "ロール {0} を削除します。削除は取り消せません。よろしいですか?",
+ "user.role.device_can_not_remove_tip": "統合が選択されているためデバイスを解除できません。先に統合の選択を外してください。",
+ "user.role.device_permission_modal_title": "デバイス権限を追加",
+ "user.role.function_table_title": "権限",
+ "user.role.functions_tab_title": "機能権限",
+ "user.role.integration_name_table_title": "統合名",
+ "user.role.integration_num_device_table_title": "デバイス数",
+ "user.role.integration_num_entity_table_title": "エンティティ数",
+ "user.role.integration_permission_add_tip": "統合を追加すると、その統合配下のすべてのデータにアクセスできます。",
+ "user.role.integration_permission_modal_title": "統合権限を追加",
+ "user.role.members_tab_title": "メンバー",
+ "user.role.model_table_title": "機能モジュール",
+ "user.role.page_table_title": "機能ページ",
+ "user.role.resource_dashboard_tab_title": "ダッシュボード権限",
+ "user.role.resource_device_tab_title": "デバイス権限",
+ "user.role.resource_integration_tab_title": "統合権限",
+ "user.role.resources_tab_title": "リソース",
+ "user.role.roles_tab_name": "ロール",
+ "user.role.single_dashboard_remove_tip": "ダッシュボード {0} を解除してよろしいですか?",
+ "user.role.single_device_remove_tip": "デバイス {0} を解除してよろしいですか?",
+ "user.role.single_integration_remove_tip": "統合 {0} を解除します。解除後は当該統合下のデータにアクセスできなくなります。続行しますか?",
+ "user.role.single_member_remove_tip": "ユーザー {0} を解除してよろしいですか?",
+ "user.role.users_tab_name": "ユーザー",
+
+ "valid.date.selected_time_greater_than_now_time": "現在より過去の時間は選択できません。",
+ "valid.date.start_time_greater_than_end_time": "開始日時は終了日時より後にはできません。",
+ "valid.date.start_time_less_than_pre_end_time": "開始日時は前回の終了日時より前にはできません。",
+ "valid.input.address": "255 文字以内で住所を入力してください。",
+ "valid.input.amount_decimals_max_length": "小数点以下は最大 {1} 桁までです。",
+ "valid.input.amount_max_length": "金額は最大 {1} 桁までです。",
+ "valid.input.at_least_1_lowercase_letter": "少なくとも 1 つの小文字を含めてください。",
+ "valid.input.at_least_1_num": "少なくとも 1 つの数字を含めてください。",
+ "valid.input.at_least_1_uppercase_letter": "少なくとも 1 つの大文字を含めてください。",
+ "valid.input.between_length": "最小長:{1}、最大長:{2}。",
+ "valid.input.cn_phone": "有効な電話番号を入力してください。",
+ "valid.input.comments": "{1} 文字以内で入力してください。",
+ "valid.input.company_id": "11 桁の会社 ID を入力してください。",
+ "valid.input.decimals": "正しい小数を入力してください。",
+ "valid.input.email": "有効なメールアドレスを入力してください(形式:XXX@XXX.XX、5〜255 文字)。",
+ "valid.input.form_list_name_no_repeat": "フォーム項目名は重複できません。",
+ "valid.input.hex_number": "数字のみ入力してください。",
+ "valid.input.image": ".jpg .png .jpeg 形式の画像を選択してください。",
+ "valid.input.integer_positive_negative_zero": "正整数・負整数または 0 を入力してください。",
+ "valid.input.integer_positive_zero": "0 以上の整数を入力してください。",
+ "valid.input.ip_address": "IP アドレスを入力してください(形式:XXX.XXX.XXX.XXX、各 XXX は 1〜255)。",
+ "valid.input.ip_or_domain": "有効な IP アドレスまたはドメインを入力してください。",
+ "valid.input.ipv6_address": "IPv6 アドレスを入力してください(XXXX:XXXX:...、XXXX は 0000〜FFFF)。",
+ "valid.input.length": "入力長は {0} 文字です。",
+ "valid.input.letters": "アルファベットのみ使用できます。",
+ "valid.input.letters_and_num": "アルファベットと数字のみ使用できます。",
+ "valid.input.mac": "MAC アドレスを入力してください。",
+ "valid.input.match_regexp": "正規表現 {1} に一致する値を入力してください。",
+ "valid.input.max_length": "{1} 文字以内で入力してください。",
+ "valid.input.max_value": "最大値は {0} までです。",
+ "valid.input.min_length": "{0} 文字以上で入力してください。",
+ "valid.input.min_value": "{0} 以上の値を入力してください。",
+ "valid.input.name": "名前は 1〜127 文字で入力してください。",
+ "valid.input.netmask": "サブネットマスクを入力してください(XXX.XXX.XXX.XXX)。",
+ "valid.input.no_includes_space_ascii": "空白を含まない ASCII 文字を入力してください。",
+ "valid.input.not_allow_string": "使用できない文字列:{0}",
+ "valid.input.not_include_whitespace": "空白は使用できません。",
+ "valid.input.num_letter_space_simple_special": "数字・文字・空白・特殊文字 (). -+*# のみ使用できます。",
+ "valid.input.number": "数字を入力してください。",
+ "valid.input.number_has_min_max": "{1}〜{2} の数字を入力してください。",
+ "valid.input.number_no_zero": "0 より大きい数字を入力してください。",
+ "valid.input.password": "8〜63 文字で大小英字と数字を含めてください。",
+ "valid.input.password.diff": "新しいパスワードと確認用パスワードが一致しません。",
+ "valid.input.phone": "電話番号を 1〜31 文字で入力してください。",
+ "valid.input.phone_or_email": "有効なメールアドレスまたは電話番号を入力してください。",
+ "valid.input.pin_code": "4〜8 桁の PIN を入力してください。",
+ "valid.input.port": "有効なポート番号を入力してください。",
+ "valid.input.postal_code": "郵便番号を入力してください(32 文字未満)。",
+ "valid.input.range_length": "{0}〜{1} 文字で入力してください。",
+ "valid.input.range_value": "{0}〜{1} の値を入力してください。",
+ "valid.input.replace_device_sn": "同じ機種の SN を入力してください。",
+ "valid.input.required": "この項目は必須です。",
+ "valid.input.sn": "12 文字または 16 文字の英数字を入力してください。",
+ "valid.input.start_with_http_https": "http:// または https:// で始まる URL を入力してください。",
+ "valid.input.start_with_normal_char": "小文字・大文字・数字・アンダースコアで始めてください。",
+ "valid.input.start_with_ws_wss": "ws:// または wss:// で始まる URL を入力してください。",
+ "valid.input.step_value": "{0} の倍数を入力してください。",
+ "valid.input.string_letter_num_special_char": "英数字、\"_\"、\"-\" のみ使用できます。",
+ "valid.input.string_rules_one": "英大小字・数字・_・- を含む ASCII で、空白は不可。",
+ "valid.input.string_rules_two": "英大小字・数字・記号 !\"#$%&'()*+,-./:;<=>@[]^_`{|}~ のみ使用できます。",
+ "valid.input.two_sixteen_hexadecimal": "16 進数 16 桁を 2 組、\"-\" で区切って入力してください。",
+ "valid.input.url": "有効な URL を入力してください。",
+ "valid.input.username": "ユーザー名は 5 文字以上で入力してください。",
+ "valid.input.value": "入力値:{0} のみ。",
+ "valid.input.version": "バージョン形式が正しくありません。",
+ "valid.resp.at_least_one": "{1} を少なくとも 1 つ選択してください。",
+
+ "workflow.button.label_import_from_dsl": "DSL からインポート",
+ "workflow.context_menu.title_change_node": "ノードを変更",
+ "workflow.editor.config_panel_test_title": "{1} をテスト",
+ "workflow.editor.editor_auto_create_service_entity_tip": "ワークフロー名に基づくカスタムサービスエンティティが自動生成されます。エンティティ一覧で確認できます。",
+ "workflow.editor.form_button_add_condition": "条件を追加",
+ "workflow.editor.form_logic_operator_switch_tip": "クリックして切り替え",
+ "workflow.editor.form_param_execution_time": "実行時間",
+ "workflow.editor.form_param_execution_time_queue": "実行時間キュー",
+ "workflow.editor.form_param_expire_time": "有効期限",
+ "workflow.editor.form_param_select_placeholder": "値を入力または変数を参照",
+ "workflow.editor.form_param_timer_period_everyday": "毎日",
+ "workflow.editor.form_param_timer_period_friday": "金曜日",
+ "workflow.editor.form_param_timer_period_monday": "月曜日",
+ "workflow.editor.form_param_timer_period_saturday": "土曜日",
+ "workflow.editor.form_param_timer_period_sunday": "日曜日",
+ "workflow.editor.form_param_timer_period_thursday": "木曜日",
+ "workflow.editor.form_param_timer_period_tuesday": "火曜日",
+ "workflow.editor.form_param_timer_period_wednesday": "水曜日",
+ "workflow.editor.form_param_timer_period_weekday": "平日",
+ "workflow.editor.form_param_timer_period_weekend": "週末",
+ "workflow.editor.form_param_timer_type": "タイマー種別",
+ "workflow.editor.form_param_timer_type_cycle": "周期実行",
+ "workflow.editor.form_param_timer_type_interval": "間隔実行",
+ "workflow.editor.form_param_timer_type_once": "一度だけ実行",
+ "workflow.editor.input_placeholder_remark": "説明を追加...",
+ "workflow.editor.log_panel_title_test_run": "テスト実行",
+ "workflow.editor.log_panel_title_verification_result": "検証結果",
+ "workflow.editor.log_title_run": "実行ログ",
+ "workflow.editor.log_title_test": "テストログ",
+ "workflow.editor.logs_popover_title_run": "実行ログ",
+ "workflow.editor.logs_popover_title_test": "テストログ",
+ "workflow.editor.move_mode_hand": "画面移動 Ctrl + H",
+ "workflow.editor.move_mode_pointer": "ポインターモード Ctrl + V",
+ "workflow.editor.node_delete_confirm_desc": "ノードを削除してよろしいですか?",
+ "workflow.editor.node_delete_confirm_title": "ノード削除",
+ "workflow.editor.node_test_tip": "このノードをテスト",
+ "workflow.editor.output_desc_mqtt_payload": "メッセージ内容",
+ "workflow.editor.output_desc_mqtt_topic": "メッセージトピック",
+ "workflow.editor.output_desc_request_body": "リクエストボディ",
+ "workflow.editor.output_desc_request_header": "リクエストヘッダー",
+ "workflow.editor.output_desc_request_params": "リクエストクエリパラメータ",
+ "workflow.editor.output_desc_response_body": "レスポンスボディ",
+ "workflow.editor.output_desc_response_code": "レスポンスコード",
+ "workflow.editor.output_desc_response_header": "レスポンスヘッダー",
+ "workflow.editor.output_desc_variables_in_path": "パス内変数",
+ "workflow.editor.save_warning_message": "このワークフローは他で参照されています。保存すると情報が同期更新されます。保存してもよろしいですか?",
+ "workflow.editor.valid.condition_not_setup": "条件が設定されていません",
+ "workflow.email.content_modal_title": "メール内容を編集",
+ "workflow.email.label_content_recipients": "宛先",
+ "workflow.email.label_content_recipients_tip": "複数の宛先は「;」で区切ります",
+ "workflow.email.label_gmail_config_api_key": "SerpApi API キー",
+ "workflow.email.label_smtp_config_encryption_method": "暗号化方式",
+ "workflow.email.label_smtp_config_encryption_none": "なし",
+ "workflow.email.label_smtp_config_encryption_start_tls": "StartTLS",
+ "workflow.email.label_smtp_config_encryption_tls": "TLS",
+ "workflow.email.label_smtp_config_password": "SMTP パスワード",
+ "workflow.email.label_smtp_config_service_host": "SMTP サーバー",
+ "workflow.email.label_smtp_config_service_port": "SMTP ポート",
+ "workflow.email.label_smtp_config_username": "SMTP ユーザー名",
+ "workflow.label.abnormal_edge_tip": "ノードのネストが不正です。確認してください。",
+ "workflow.label.assigner_node_name": "エンティティ割当",
+ "workflow.label.branch": "分岐 {1}",
+ "workflow.label.code_node_name": "コード",
+ "workflow.label.condition_operator_contains": "含む",
+ "workflow.label.condition_operator_end_with": "で終わる",
+ "workflow.label.condition_operator_greater_than": "より大きい",
+ "workflow.label.condition_operator_greater_than_or_equal": "以上",
+ "workflow.label.condition_operator_is": "等しい",
+ "workflow.label.condition_operator_is_empty": "空である",
+ "workflow.label.condition_operator_is_not": "等しくない",
+ "workflow.label.condition_operator_is_not_empty": "空ではない",
+ "workflow.label.condition_operator_less_than": "より小さい",
+ "workflow.label.condition_operator_less_than_or_equal": "以下",
+ "workflow.label.condition_operator_not_contains": "含まない",
+ "workflow.label.condition_operator_start_with": "で始まる",
+ "workflow.label.connection_parameters": "接続パラメータ",
+ "workflow.label.cycle_connection_tip": "ノード間の接続が不正です。",
+ "workflow.label.design_mode_advanced_name": "高度モード",
+ "workflow.label.design_mode_canvas_name": "キャンバスモード",
+ "workflow.label.email_node_name": "メール通知",
+ "workflow.label.entry_node_number_limit_tip": "ワークフローには入口ノードを {1} 個だけ配置してください",
+ "workflow.label.free_node_limit_tip": "孤立したノードは配置できません",
+ "workflow.label.handle_tooltip": "クリック:ノードを追加
ドラッグ:ノードを接続",
+ "workflow.label.http_in_node_name": "HTTP リスナー",
+ "workflow.label.http_node_name": "HTTP リクエスト",
+ "workflow.label.httpin_node_desc": "受信した HTTP リクエストでワークフローを起動します。",
+ "workflow.label.ifelse_node_name": "IF/ELSE 判定",
+ "workflow.label.import_from_curl": "cURL からインポート",
+ "workflow.label.listener_node_desc": "監視対象エンティティの値が変化するとワークフローを起動します。",
+ "workflow.label.listener_node_name": "エンティティリスナー",
+ "workflow.label.logic_keyword_and": "AND",
+ "workflow.label.logic_keyword_else": "ELSE",
+ "workflow.label.logic_keyword_elseif": "ELIF",
+ "workflow.label.logic_keyword_if": "IF",
+ "workflow.label.logic_keyword_or": "OR",
+ "workflow.label.mqtt_node_desc": "受信した MQTT メッセージでワークフローを起動します。",
+ "workflow.label.mqtt_node_name": "MQTT リスナー",
+ "workflow.label.no_log_record": "ログなし",
+ "workflow.label.node_category_action": "アクション",
+ "workflow.label.node_category_control": "制御",
+ "workflow.label.node_category_entry": "入口",
+ "workflow.label.node_category_external": "外部",
+ "workflow.label.node_email_type": "メールタイプ",
+ "workflow.label.node_id": "ノード ID",
+ "workflow.label.node_min_number_limit_tip": "ワークフローには最低 {1} 個のノードが必要です。",
+ "workflow.label.output_node_name": "出力ノード",
+ "workflow.label.output_variables": "出力変数",
+ "workflow.label.parallel": "並列 {1}",
+ "workflow.label.parallel_depth_limit_tip": "並列のネストは最大 {1} 階層まで",
+ "workflow.label.parallel_limit_tip": "並列分岐は最大 {1} 本まで",
+ "workflow.label.param_type_other": "その他",
+ "workflow.label.placeholder_please_enter_curl": "ここに cURL コマンドを入力してください。",
+ "workflow.label.placeholder_please_enter_json": "JSON を入力してください",
+ "workflow.label.placeholder_please_enter_raw_text": "RAW テキストを入力してください",
+ "workflow.label.select_node_name": "エンティティ選択",
+ "workflow.label.service_node_name": "サービス呼び出し",
+ "workflow.label.timer_node_desc": "指定時間または周期でワークフローを起動します。",
+ "workflow.label.timer_node_name": "タイマー",
+ "workflow.label.trigger_node_desc": "ユーザー操作でワークフローを起動します。",
+ "workflow.label.trigger_node_name": "トリガー",
+ "workflow.label.use_system_smtp_settings": "システムの SMTP 設定を使用",
+ "workflow.label.webhook_node_name": "Webhook 送信",
+ "workflow.message.delete_tip": "ワークフローを削除してもよろしいですか? ※削除は取り消せません。",
+ "workflow.message.import_dsl_error": "DSL ファイルにエラーがあります。修正後に再試行してください。",
+ "workflow.modal.add_workflow_modal": "ワークフローを作成",
+ "workflow.modal.edit_workflow_modal": "ワークフローを編集",
+ "workflow.modal.entry_node_create_title": "どのタイプの入口ノードを作成しますか?",
+ "workflow.modal.running_log": "実行ログ",
+ "workflow.modal.upload_tips": "クリックまたはドラッグでファイルをアップロード",
+ "workflow.modal.workflow_name": "ワークフロー名",
+ "workflow.node.config_panel_lable_arguments": "パラメータ",
+ "workflow.node.input_variables": "入力変数",
+ "workflow.node.service_helper_text": "先に呼び出すサービスを選択してください。",
+ "workflow.node.trigger_switch_label": "内容",
+ "workflow.valid.edge_id_duplicated": "ノード {1} と {2} をつなぐエッジ ID が重複しています。",
+ "workflow.valid.invalid_edge_id": "ノード {1} と {2} をつなぐエッジ ID が無効です。",
+ "workflow.valid.invalid_edge_type": "ノード {1} と {2} をつなぐエッジタイプが無効です。",
+ "workflow.valid.invalid_email": "{1} フィールドは有効なメールアドレスではありません。",
+ "workflow.valid.invalid_node_id": "{1} ノード ID が無効です。",
+ "workflow.valid.invalid_node_type": "{1} ノードタイプが無効です。",
+ "workflow.valid.invalid_timer_interval": "間隔は {1} 未満でなければなりません。",
+ "workflow.valid.invalid_url": "{1} フィールドは有効な URL ではありません。",
+ "workflow.valid.invalid_url_path": "{1} フィールドは / で始まり、英数字と {2} を含む形式でなければなりません。",
+ "workflow.valid.max_length": "{1} フィールドの長さは最大 {2} 文字です。",
+ "workflow.valid.min_length": "{1} フィールドの長さは最低 {0} 文字です。",
+ "workflow.valid.node_id_duplicated": "{1} と {2} のノード ID が重複しています。",
+ "workflow.valid.node_parameters_required": "{1} ノードのパラメータが必要です。",
+ "workflow.valid.output_node_limit_count_tip": "ワークフロー内には出力ノードを 1 つだけ配置できます。",
+ "workflow.valid.output_node_limit_has_trigger_tip": "出力ノードがある場合、入口ノードはトリガーノードでなければなりません。",
+ "workflow.valid.parameter_required": "{1} ノードのパラメータは必須です。",
+ "workflow.valid.range_length": "{1} の長さは {2} 以上 {3} 以下で入力してください。",
+ "workflow.valid.required": "{1} フィールドは必須です。"
+}
From 0e592b6df4dbacdcc356e17953401fb478bc3749 Mon Sep 17 00:00:00 2001
From: fuyuking <101615404+fuyuking@users.noreply.github.com>
Date: Thu, 26 Jun 2025 11:31:32 +0900
Subject: [PATCH 3/6] Add files via upload
---
packages/locales/src/lang/ja/dashboard.json | 37 +++
packages/locales/src/lang/ja/device.json | 12 +
packages/locales/src/lang/ja/entity.json | 28 +++
packages/locales/src/lang/ja/error.json | 21 ++
packages/locales/src/lang/ja/global.json | 237 ++++++++++++++++++++
packages/locales/src/lang/ja/setting.json | 80 +++++++
packages/locales/src/lang/ja/user.json | 42 ++++
packages/locales/src/lang/ja/workflow.json | 155 +++++++++++++
8 files changed, 612 insertions(+)
create mode 100644 packages/locales/src/lang/ja/dashboard.json
create mode 100644 packages/locales/src/lang/ja/device.json
create mode 100644 packages/locales/src/lang/ja/entity.json
create mode 100644 packages/locales/src/lang/ja/error.json
create mode 100644 packages/locales/src/lang/ja/global.json
create mode 100644 packages/locales/src/lang/ja/setting.json
create mode 100644 packages/locales/src/lang/ja/user.json
create mode 100644 packages/locales/src/lang/ja/workflow.json
diff --git a/packages/locales/src/lang/ja/dashboard.json b/packages/locales/src/lang/ja/dashboard.json
new file mode 100644
index 000000000..e8f026a2a
--- /dev/null
+++ b/packages/locales/src/lang/ja/dashboard.json
@@ -0,0 +1,37 @@
+{
+ "dashboard.add_title": "ダッシュボードを追加",
+ "dashboard.add_widget": "ウィジェットを追加",
+ "dashboard.dashboard_name": "ダッシュボード名",
+ "dashboard.edit_title": "ダッシュボードを編集",
+ "dashboard.empty_description": "棒グラフ、折れ線グラフ、円グラフなどを素早く挿入してデータを直感的に可視化し、ビジネスの動きを一目で把握できます",
+ "dashboard.empty_text": "ウィジェットを選択してデータダッシュボードの作成を始めましょう",
+ "dashboard.label.left_y_axis": "左Y軸",
+ "dashboard.label.right_y_axis": "右Y軸",
+ "dashboard.label.y_axis": "Y軸",
+ "dashboard.label_avg_value": "平均値",
+ "dashboard.label_count_value": "カウント数",
+ "dashboard.label_latest_value": "最新値",
+ "dashboard.label_max_value": "最大値",
+ "dashboard.label_min_value": "最小値",
+ "dashboard.label_nearly_half_year": "過去半年",
+ "dashboard.label_nearly_one_days": "直近1日",
+ "dashboard.label_nearly_one_month": "過去1か月",
+ "dashboard.label_nearly_one_week": "過去1週間",
+ "dashboard.label_nearly_one_year": "過去1年",
+ "dashboard.label_nearly_six_hours": "直近6時間",
+ "dashboard.label_nearly_three_hours": "直近3時間",
+ "dashboard.label_nearly_three_month": "過去3か月",
+ "dashboard.label_nearly_twelve_hours": "直近12時間",
+ "dashboard.label_sum_value": "合計値",
+ "dashboard.leave_to_new_dashboard_description": "新しく作成したダッシュボードに移動しますか? 現在のダッシュボードで行った変更は保存されませんのでご注意ください。",
+ "dashboard.plugin.trigger_confirm_text": "操作を実行してよろしいですか?",
+ "dashboard.plugin_class_data_card": "データ表示",
+ "dashboard.plugin_class_data_chart": "データチャート",
+ "dashboard.plugin_class_operate": "操作ウィジェット",
+ "dashboard.plugin_class_other": "その他",
+ "dashboard.set_as_home_dashboard_description": "現在のダッシュボードをホームダッシュボードに設定しますか? この操作は既存のホームダッシュボードを上書きします。",
+ "dashboard.set_as_home_dashboard_tip": "トップ固定ダッシュボード",
+ "dashboard.switch_title_off": "オフ",
+ "dashboard.switch_title_on": "オン",
+ "dashboard.unset_as_home_dashboard_tip": "固定解除"
+}
diff --git a/packages/locales/src/lang/ja/device.json b/packages/locales/src/lang/ja/device.json
new file mode 100644
index 000000000..102830810
--- /dev/null
+++ b/packages/locales/src/lang/ja/device.json
@@ -0,0 +1,12 @@
+{
+ "device.detail.basic_info": "基本情報",
+ "device.detail.entity_data": "エンティティデータ",
+ "device.label.param_device_id": "デバイスID",
+ "device.label.param_device_name": "デバイス名",
+ "device.label.param_entity_id": "エンティティID",
+ "device.label.param_entity_name": "エンティティ名",
+ "device.label.param_external_id": "外部デバイスID",
+ "device.label.param_founder": "作成者",
+ "device.label.param_source": "ソース",
+ "device.message.delete_tip": "削除してもよろしいですか?"
+}
\ No newline at end of file
diff --git a/packages/locales/src/lang/ja/entity.json b/packages/locales/src/lang/ja/entity.json
new file mode 100644
index 000000000..49ac72b33
--- /dev/null
+++ b/packages/locales/src/lang/ja/entity.json
@@ -0,0 +1,28 @@
+{
+ "entity.label.bool_enum_false": "Falseの値",
+ "entity.label.bool_enum_true": "Trueの値",
+ "entity.label.create_entity_from_workflow": "ワークフローから作成",
+ "entity.label.create_entity_only": "エンティティのみ作成",
+ "entity.label.create_property": "プロパティを作成",
+ "entity.label.create_service": "サービスを作成",
+ "entity.label.custom_entity": "カスタムエンティティ",
+ "entity.label.entity_items": "項目",
+ "entity.label.entity_maximum_length": "最大長さ",
+ "entity.label.entity_maximum_value": "最大値",
+ "entity.label.entity_minimum_length": "最小長さ",
+ "entity.label.entity_minimum_value": "最小値",
+ "entity.label.entity_type_of_access": "アクセス種別",
+ "entity.label.entity_type_of_access_read_and_write": "読み書き可",
+ "entity.label.entity_type_of_access_readonly": "読み取り専用",
+ "entity.label.entity_type_of_access_write": "書き込みのみ",
+ "entity.label.entity_type_of_boolean": "BOOLEAN",
+ "entity.label.entity_type_of_double": "DOUBLE",
+ "entity.label.entity_type_of_enum": "ENUM",
+ "entity.label.entity_type_of_long": "LONG",
+ "entity.label.entity_type_of_string": "STRING",
+ "entity.label.enumeration_items": "列挙項目",
+ "entity.label.historical_data": "履歴データ",
+ "entity.label.set_enumeration_items": "列挙項目を設定",
+ "entity.label.set_value": "値を設定",
+ "entity.label.value_source": "値のソース"
+}
\ No newline at end of file
diff --git a/packages/locales/src/lang/ja/error.json b/packages/locales/src/lang/ja/error.json
new file mode 100644
index 000000000..43b1834a8
--- /dev/null
+++ b/packages/locales/src/lang/ja/error.json
@@ -0,0 +1,21 @@
+{
+ "error.http.account_session_logout": "アカウントがサインアウトされました",
+ "error.http.authentication_failed": "アカウントが存在しないか、パスワードが間違っています。再入力してください",
+ "error.http.dashboard_name_exist": "ダッシュボード名は既に存在します",
+ "error.http.data_no_found": "データが見つかりません",
+ "error.http.forbidden_permission": "アクセス権がなく、アクセスは拒否されました",
+ "error.http.method_not_allowed": "許可されていない HTTP メソッドです",
+ "error.http.name_repeated": "名前が重複しています",
+ "error.http.network_timeout": "ネットワーク接続がタイムアウトしました",
+ "error.http.page_not_found": "お探しのページは存在しません",
+ "error.http.parameter_syntax_error": "パラメーターの構文エラー",
+ "error.http.parameter_validation_failed": "パラメーター検証に失敗しました",
+ "error.http.request_too_frequently": "リクエストが多すぎます",
+ "error.http.role_does_not_exit": "ロールが存在しません",
+ "error.http.role_still_has_user": "まずロールに属するユーザーを削除してからロールを削除してください",
+ "error.http.server_error": "リクエストエラーです。確認して再試行してください",
+ "error.http.token_invalid": "トークンが無効です。再試行してください",
+ "error.http.token_not_found": "アカウントがログインしていません",
+ "error.http.user_has_no_permission": "現在のユーザーには権限がありません",
+ "error.http.user_register_email_exist": "このメールアドレスは既に登録されています"
+}
\ No newline at end of file
diff --git a/packages/locales/src/lang/ja/global.json b/packages/locales/src/lang/ja/global.json
new file mode 100644
index 000000000..3c8774ff9
--- /dev/null
+++ b/packages/locales/src/lang/ja/global.json
@@ -0,0 +1,237 @@
+{
+ "auth.message.register_success": "登録に成功しました。",
+ "common.button.cancel": "キャンセル",
+ "common.button.confirm": "確認",
+ "common.button.edit": "編集",
+ "common.button.loading": "読み込み中",
+ "common.button.next": "次へ",
+ "common.button.previous": "前へ",
+ "common.button.reset": "リセット",
+ "common.button.save": "保存",
+ "common.confirm.execute": "更新を実行してよろしいですか?",
+ "common.document.title": "Beaver IoT",
+ "common.label.403_forbidden": "403 禁止",
+ "common.label.404_not_found": "404 ページが見つかりません",
+ "common.label.add": "追加",
+ "common.label.back": "戻る",
+ "common.label.banned": "禁止",
+ "common.label.broker_address": "Brokerアドレス",
+ "common.label.broker_port": "Brokerポート",
+ "common.label.bulk_deletion": "一括削除",
+ "common.label.bulk_removal": "一括除去",
+ "common.label.by_device": "デバイス別",
+ "common.label.choices": "選択待ち",
+ "common.label.chosen": "選択済み",
+ "common.label.click_to_try_fix": "クリックして修復を試みる",
+ "common.label.client_id": "クライアントID",
+ "common.label.close": "閉じる",
+ "common.label.confirm_password": "パスワード確認",
+ "common.label.connect": "接続",
+ "common.label.content": "内容",
+ "common.label.copy": "コピー",
+ "common.label.copy_error_info": "エラーメッセージをコピー",
+ "common.label.create": "作成",
+ "common.label.create_time": "作成時間",
+ "common.label.creator": "作成者",
+ "common.label.dashboard": "ダッシュボード",
+ "common.label.data_encoding_format": "データエンコーディング形式",
+ "common.label.data_source": "データソース",
+ "common.label.data_type": "データタイプ",
+ "common.label.day": "{1}日",
+ "common.label.days": "{1}日",
+ "common.label.delete": "削除",
+ "common.label.deletion": "削除",
+ "common.label.detail": "詳細",
+ "common.label.device": "デバイス",
+ "common.label.edit_title": "{1}を編集",
+ "common.label.editor": "編集者",
+ "common.label.email": "メールアドレス",
+ "common.label.empty": "データなし",
+ "common.label.enable_status": "有効状態",
+ "common.label.enable_title": "{1}を有効化",
+ "common.label.end_date": "終了日",
+ "common.label.entity": "エンティティ",
+ "common.label.error": "エラー",
+ "common.label.export": "エクスポート",
+ "common.label.false": "False",
+ "common.label.hour": "{1}時間",
+ "common.label.hours": "{1}時間",
+ "common.label.image": "画像",
+ "common.label.import": "インポート",
+ "common.label.input": "入力",
+ "common.label.integration": "統合",
+ "common.label.invisible": "非表示",
+ "common.label.json": "JSON",
+ "common.label.key": "キー",
+ "common.label.label": "ラベル",
+ "common.label.language": "言語",
+ "common.label.last_modified_time": "最終更新時間",
+ "common.label.loading": "読み込み中...",
+ "common.label.local_upload": "ローカルアップロード",
+ "common.label.log": "ログ",
+ "common.label.login": "ログイン",
+ "common.label.max": "最大",
+ "common.label.min": "最小",
+ "common.label.minutes": "{1}分",
+ "common.label.more": "その他",
+ "common.label.ms": "ミリ秒",
+ "common.label.name": "名前",
+ "common.label.no_device_entity": "デバイス未所属エンティティ",
+ "common.label.no_options": "利用可能な項目なし",
+ "common.label.no_permissions": "権限なし",
+ "common.label.on": "ON",
+ "common.label.openapi": "OpenAPI",
+ "common.label.operation": "操作",
+ "common.label.output": "出力",
+ "common.label.page_not_permission": "アクセスが拒否されました。管理者に連絡してください。",
+ "common.label.password": "パスワード",
+ "common.label.please_select": "選択してください",
+ "common.label.property": "プロパティ",
+ "common.label.readonly": "読み取り専用",
+ "common.label.refresh": "ページを更新",
+ "common.label.register": "登録",
+ "common.label.remark": "備考",
+ "common.label.removal": "削除",
+ "common.label.remove": "削除",
+ "common.label.rename": "名前変更",
+ "common.label.required": "必須",
+ "common.label.run": "実行",
+ "common.label.search": "検索",
+ "common.label.second": "{1}秒",
+ "common.label.seconds": "{1}秒",
+ "common.label.select_entity": "エンティティを選択",
+ "common.label.selected": "選択済み",
+ "common.label.service": "サービス",
+ "common.label.setting": "設定",
+ "common.label.settings": "設定",
+ "common.label.sign_out": "サインアウト",
+ "common.label.sort_type_newest_to_oldest": "新しい順",
+ "common.label.sort_type_oldest_to_newest": "古い順",
+ "common.label.start_date": "開始日",
+ "common.label.success": "成功",
+ "common.label.system": "システム",
+ "common.label.table_disabled_status": "無効状態",
+ "common.label.target": "対象",
+ "common.label.test": "テスト",
+ "common.label.time": "時間",
+ "common.label.tip": "ヒント",
+ "common.label.title": "タイトル",
+ "common.label.true": "True",
+ "common.label.type": "タイプ",
+ "common.label.unit": "単位",
+ "common.label.update_time": "更新時間",
+ "common.label.upload_image": "画像をアップロード",
+ "common.label.uploading": "アップロード中",
+ "common.label.url": "URL",
+ "common.label.username": "ユーザー名",
+ "common.label.value": "値",
+ "common.label.version": "バージョン",
+ "common.label.visible": "表示",
+ "common.label.webhook": "Webhook",
+ "common.label.week": "週",
+ "common.label.workflow": "ワークフロー",
+ "common.label.writable": "書き込み可",
+ "common.language.ja": "日本語",
+ "common.language.ja_short": "JA",
+ "common.language.cn": "中文",
+ "common.language.cn_short": "ZH",
+ "common.language.en": "英語",
+ "common.language.en_short": "EN",
+ "common.message.add_success": "追加に成功しました。",
+ "common.message.click_to_upload_file": "クリックまたはファイルをドラッグしてアップロードしてください。",
+ "common.message.copy_successful": "コピーしました。",
+ "common.message.delete_success": "削除に成功しました。",
+ "common.message.error_user_business_details_not_exist": "ユーザーにビジネスパラメータがありません。",
+ "common.message.json_format_error": "JSONフォーマットエラー",
+ "common.message.no_results_found": "結果が見つかりません。",
+ "common.message.operation_success": "操作が成功しました。",
+ "common.message.register_helper_text": "ようこそ!まずはユーザーアカウントを作成しましょう。",
+ "common.message.remove_success": "削除に成功しました。",
+ "common.message.something_wrong_title": "問題が発生しました",
+ "common.message.upload_error_file_invalid_type": "ファイルタイプは{1}でなければなりません。",
+ "common.message.upload_error_file_too_large": "ファイルサイズが{1}を超えています。",
+ "common.message.upload_error_file_too_small": "ファイルサイズが{1}未満です。",
+ "common.message.upload_error_server_error": "アップロードに失敗しました。後でもう一度お試しください。",
+ "common.message.upload_error_too_many_files": "アップロードできる画像は1枚のみです。",
+ "common.modal.desc_leave_current_page": "変更内容は保存されない可能性があります。このページを離れますか?",
+ "common.modal.title_leave_current_page": "現在のページを離れる",
+ "common.placeholder.input": "入力してください",
+ "common.placeholder.maximum": "最大値",
+ "common.placeholder.minimum": "最小値",
+ "common.placeholder.select": "選択してください",
+ "common.plugin_add_title": "{1}を追加",
+ "common.switch.no": "いいえ",
+ "common.switch.sure": "はい",
+ "common.symbol.colon": ":",
+ "common.symbol.comma": "、",
+ "common.symbol.parentheses": "({1})",
+ "common.time.afternoon": "午後",
+ "common.time.morning": "午前",
+ "common.unit.second": "秒",
+ "valid.date.selected_time_greater_than_now_time": "現在より過去の時刻は選択できません。",
+ "valid.date.start_time_greater_than_end_time": "開始時間は終了時間より後にはできません。",
+ "valid.date.start_time_less_than_pre_end_time": "開始時間は前回の終了時間より前にはできません。",
+ "valid.input.address": "255文字以内で住所を入力してください。",
+ "valid.input.amount_decimals_max_length": "金額は小数点以下最大{1}桁までです。",
+ "valid.input.amount_max_length": "金額は最大{1}桁までです。",
+ "valid.input.at_least_1_lowercase_letter": "少なくとも1つの小文字を含めてください。",
+ "valid.input.at_least_1_num": "少なくとも1つの数字を含めてください。",
+ "valid.input.at_least_1_uppercase_letter": "少なくとも1つの大文字を含めてください。",
+ "valid.input.between_length": "最小文字長:{1}。最大文字長:{2}。",
+ "valid.input.cn_phone": "有効な電話番号を入力してください。",
+ "valid.input.comments": "入力値の長さは{1}文字以下である必要があります。",
+ "valid.input.company_id": "11桁の有効な会社IDを入力してください。",
+ "valid.input.decimals": "正しい小数を入力してください。",
+ "valid.input.email": "有効なメールアドレス(XXX@XXX.XX)を入力してください。5〜255文字である必要があります。",
+ "valid.input.form_list_name_no_repeat": "フォーム項目の名前は重複できません。",
+ "valid.input.hex_number": "数字のみ入力してください。",
+ "valid.input.image": ".jpg、.png、.jpeg形式の画像を選択してください。",
+ "valid.input.integer_positive_negative_zero": "正/負の整数または0を入力してください。",
+ "valid.input.integer_positive_zero": "0を含む正の整数を入力してください。",
+ "valid.input.ip_address": "IPアドレスを入力してください(XXX.XXX.XXX.XXX、各XXXは1〜255)。",
+ "valid.input.ip_or_domain": "有効なIPアドレスまたはドメイン名を入力してください。",
+ "valid.input.ipv6_address": "IPv6アドレスを入力してください(XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX、XXXXは0000-FFFF)。",
+ "valid.input.length": "入力可能な長さ:{0}。",
+ "valid.input.letters": "英字のみ(大文字・小文字)。",
+ "valid.input.letters_and_num": "英字と数字のみ(大文字・小文字)。",
+ "valid.input.mac": "MACアドレスを入力してください。",
+ "valid.input.match_regexp": "正規表現{1}に一致する有効な値を入力してください。",
+ "valid.input.max_length": "入力文字数は{1}文字を超えてはいけません。",
+ "valid.input.max_value": "入力値の最大値は{0}を超えられません。",
+ "valid.input.min_length": "入力値の長さは{0}文字以上にしてください。",
+ "valid.input.min_value": "入力値は{0}以上にしてください。",
+ "valid.input.name": "名前は1〜127文字で入力してください。",
+ "valid.input.netmask": "サブネットマスクを入力してください(XXX.XXX.XXX.XXX)。",
+ "valid.input.no_includes_space_ascii": "空白を含まないASCII文字を入力してください。",
+ "valid.input.not_allow_string": "使用できない文字列:{0}",
+ "valid.input.not_include_whitespace": "空白は使用できません。",
+ "valid.input.num_letter_space_simple_special": "数字、英字、空白、および記号((). -+*#)のみ使用できます。",
+ "valid.input.number": "数字を入力してください。",
+ "valid.input.number_has_min_max": "{1}〜{2}の数字を入力してください。",
+ "valid.input.number_no_zero": "0より大きい数字を入力してください。",
+ "valid.input.password": "パスワードは8〜63文字で、大文字・小文字・数字を含めてください。",
+ "valid.input.password.diff": "新しいパスワードと確認用パスワードが一致しません。",
+ "valid.input.phone": "有効な電話番号を入力してください(1〜31桁)。",
+ "valid.input.phone_or_email": "有効なメールアドレスまたは電話番号を入力してください。メールは5〜255文字でXXX@XXX.XX形式、電話は1〜31桁の数字です。",
+ "valid.input.pin_code": "4〜8桁のPINコードを入力してください。",
+ "valid.input.port": "有効な端口番号を入力してください。",
+ "valid.input.postal_code": "郵便番号を入力してください(数字、英字、空白、記号((). -+*#)を使用)。32文字未満で入力してください。",
+ "valid.input.range_length": "入力値の長さは{0}以上{1}以下にしてください。",
+ "valid.input.range_value": "入力値は{0}以上{1}以下にしてください。",
+ "valid.input.replace_device_sn": "同じデバイス種別のSN番号を入力してください。",
+ "valid.input.required": "この項目は必須です。",
+ "valid.input.sn": "数字と英字で構成された12または16文字で入力してください。",
+ "valid.input.start_with_http_https": "有効なURLを入力してください。http://またはhttps://で始まる必要があります。",
+ "valid.input.start_with_normal_char": "入力は英字(a-z,A-Z)、数字(0-9)、またはアンダースコア(_)で始めてください。",
+ "valid.input.start_with_ws_wss": "有効なURLを入力してください。ws://またはwss://で始まる必要があります。",
+ "valid.input.step_value": "{0}の倍数を入力してください。",
+ "valid.input.string_letter_num_special_char": "大文字・小文字・数字・「_」「-」のみ使用できます。",
+ "valid.input.string_rules_one": "ASCIIは英字(大・小)、数字、_、-で構成し、空白を含めないでください。",
+ "valid.input.string_rules_two": "大文字・小文字・数字および!\"#$%&'()*+,-./:;<=>@[]^_`{|}~のみ使用できます。",
+ "valid.input.two_sixteen_hexadecimal": "16進数16ビット値を2つ入力し、範囲を\"-\"で区切ってください。",
+ "valid.input.url": "有効なURLを入力してください。",
+ "valid.input.username": "ユーザー名は最低5文字です。",
+ "valid.input.value": "入力値:{0}のみ。",
+ "valid.input.version": "バージョン番号が規格に合っていません。",
+ "valid.resp.at_least_one": "少なくとも1つの{1}を選択してください。"
+}
\ No newline at end of file
diff --git a/packages/locales/src/lang/ja/setting.json b/packages/locales/src/lang/ja/setting.json
new file mode 100644
index 000000000..c3d8cf866
--- /dev/null
+++ b/packages/locales/src/lang/ja/setting.json
@@ -0,0 +1,80 @@
+{
+ "setting.credentials.edit_http": "HTTP認証情報を編集",
+ "setting.credentials.edit_mqtt": "MQTT認証情報を編集",
+ "setting.credentials.edit_smtp": "SMTP設定を編集",
+ "setting.credentials.smtp_addr": "SMTPサーバーアドレス",
+ "setting.credentials.smtp_title": "システムメールサーバー設定(SMTP)",
+ "setting.credentials.white_label": "エンタープライズ設定",
+ "setting.integration.add.application_tip": "下のゲートウェイで先ほど作成したアプリケーションのIDを選択してください。",
+ "setting.integration.add.credential_tip": "ゲートウェイの Web GUI(Network Server - Application)でアプリケーションを作成し、生成された情報を以下に貼り付けてください。",
+ "setting.integration.api_status": "APIステータス",
+ "setting.integration.api_status_error": "APIエラー",
+ "setting.integration.api_status_ready": "API準備完了",
+ "setting.integration.api_status_waiting": "接続待ち",
+ "setting.integration.available_function": "利用可能な機能",
+ "setting.integration.available_function_warning_text": "以下の機能を使用する前に、OpenAPI 接続が準備完了状態であることを確認してください。",
+ "setting.integration.codec.customize_tip": "デバイスデータのエンコード/デコードに使用する Codec ファイルのアドレスを入力してください。",
+ "setting.integration.configuration": "統合設定",
+ "setting.integration.data_access_service": "データアクセスサービス",
+ "setting.integration.device.sync_tip": "この操作によりノードデバイス(ゲートウェイで使用)の Payload Codec が空にリセットされます。慎重に操作してください。",
+ "setting.integration.device.update_codec": "Codec ファイルを更新",
+ "setting.integration.device.update_codec_desc": "指定された取得先から最新の製品 Codec を取得します。注意:新しい Codec は新規に追加されたデバイスにのみ有効です。",
+ "setting.integration.device.update_codec_title": "Codec ファイルを更新",
+ "setting.integration.function_data_sync_confirm_helper_text": "この操作を実行してよろしいですか?同期では存在しないデバイスのみ追加され、既存デバイスの情報は更新されません。",
+ "setting.integration.function_data_sync_confirm_title": "データ同期",
+ "setting.integration.function_data_sync_desc": "接続済みアプリケーションに紐づく Milesight 開発プラットフォームから、すべてのデバイス情報とデバイスが報告したテレメトリデータを取得します。",
+ "setting.integration.function_data_sync_title": "データ同期",
+ "setting.integration.gateway.delete_bulk_tip": "ゲートウェイを削除すると、その下のノードデバイスも削除されます。{1} 台のゲートウェイと配下のノードデバイスを削除してもよろしいですか?",
+ "setting.integration.gateway.delete_tip": "ゲートウェイを削除すると、その下のノードデバイスも削除されます。ゲートウェイと配下のノードデバイスを削除してもよろしいですか?",
+ "setting.integration.label.add_gateway": "ゲートウェイを追加",
+ "setting.integration.label.application_id": "アプリケーション ID",
+ "setting.integration.label.choose_app": "アプリを選択",
+ "setting.integration.label.codec_repo": "ファイルアドレス",
+ "setting.integration.label.codec_repo_title": "カスタム Codec ファイルアドレス",
+ "setting.integration.label.config_info": "設定情報",
+ "setting.integration.label.credential": "認証情報",
+ "setting.integration.label.credentials": "認証情報",
+ "setting.integration.label.device_bulk_delete_tip": "これら {1} 台のデバイスを一括削除してもよろしいですか?",
+ "setting.integration.label.device_count": "追加済みデバイス",
+ "setting.integration.label.device_delete_tip": "このデバイスを削除してもよろしいですか?",
+ "setting.integration.label.device_eui": "DevEUI",
+ "setting.integration.label.downlink_data": "ダウンリンクデータ",
+ "setting.integration.label.gateway_name": "ゲートウェイ名",
+ "setting.integration.label.gateway_offline": "オフライン",
+ "setting.integration.label.gateway_online": "オンライン",
+ "setting.integration.label.general": "一般",
+ "setting.integration.label.model": "モデル",
+ "setting.integration.label.mqtt_test_fail": "接続に失敗しました。設定を確認してください。",
+ "setting.integration.label.request_data": "リクエストデータ",
+ "setting.integration.label.response_data": "レスポンスデータ",
+ "setting.integration.label.setup_app": "アプリを設定",
+ "setting.integration.label.status": "ゲートウェイステータス",
+ "setting.integration.label.sub_device": "子デバイス",
+ "setting.integration.label.syncable_device": "同期可能なデバイス({1})",
+ "setting.integration.label.synced_device": "追加済みデバイス",
+ "setting.integration.label.synchronize": "同期",
+ "setting.integration.label.topic": "トピック",
+ "setting.integration.label.uplink_data": "アップリンクデータ",
+ "setting.integration.label.user_credential": "ユーザー認証情報",
+ "setting.integration.message.device_sync_success": "同期が成功しました",
+ "setting.integration.message.sync_device_tip": "デバイス同期を実行してもよろしいですか?",
+ "setting.integration.message.sync_device_title": "デバイスを同期",
+ "setting.integration.message.test_mqtt_fail": "接続に失敗しました。設定を確認してください。",
+ "setting.integration.openapi_config": "OpenAPI 設定",
+ "setting.integration.openapi_config_helper_text": "API キーはサーバーとの認証に使用します。",
+ "setting.integration.openapi_frequency_helper_text": "範囲:30 秒 〜 86400 秒",
+ "setting.integration.openapi_frequency_of_request": "リクエスト間隔",
+ "setting.integration.openapi_helper_text": "OpenAPI を介して定期的にデバイス情報とテレメトリデータを取得します。",
+ "setting.integration.param_client_secret": "クライアントシークレット",
+ "setting.integration.param_server_address": "サーバーアドレス",
+ "setting.integration.service": "利用可能なサービス",
+ "setting.integration.service_operation_confirm": "操作 {1} を実行しますか?",
+ "setting.integration.sync_device_empty_model": "必須項目をすべて入力してください。",
+ "setting.integration.webhook_helper_text": "Webhook サービスを介して Milesight 開発プラットフォームからリアルタイムにデータを受信し、生成された URL を Milesight 開発プラットフォームのアプリケーションに貼り付けてください。",
+ "setting.integration.webhook_secret_key": "シークレットキー",
+ "setting.integration.webhook_status": "Webhook ステータス",
+ "setting.integration.webhook_status_error": "Webhook エラー",
+ "setting.integration.webhook_status_ready": "Webhook 準備完了",
+ "setting.integration.webhook_status_waiting": "設定待ち",
+ "setting.integration.webhook_url": "Webhook URL"
+}
\ No newline at end of file
diff --git a/packages/locales/src/lang/ja/user.json b/packages/locales/src/lang/ja/user.json
new file mode 100644
index 000000000..cb520c862
--- /dev/null
+++ b/packages/locales/src/lang/ja/user.json
@@ -0,0 +1,42 @@
+{
+ "user.label.add_new_user_modal_title": "新規ユーザーを追加",
+ "user.label.add_role": "ロールを作成",
+ "user.label.bulk_delete_tip": "削除は取り消せません。{0}人のユーザーを一括削除してもよろしいですか?",
+ "user.label.edit_user_modal_title": "ユーザーを編集",
+ "user.label.rename_role": "ロール名を変更",
+ "user.label.reset_password": "パスワードをリセット",
+ "user.label.role_table_title": "ロール",
+ "user.label.single_delete_tip": "削除は取り消せません。ユーザー {0} を削除してもよろしいですか?",
+ "user.label.user_name_table_title": "ユーザー名",
+ "user.label.user_role": "ユーザーとロール",
+ "user.message.not_data_roles_tip": "データがありません。まずロールを作成してください。",
+ "user.role.add_user_member_modal_title": "メンバーを追加",
+ "user.role.bulk_dashboard_remove_tip": "ダッシュボード {0} 件を一括で削除してもよろしいですか?",
+ "user.role.bulk_device_remove_tip": "デバイス {0} 台を一括で削除してもよろしいですか?",
+ "user.role.bulk_integration_remove_tip": "削除後、この統合に属するすべてのデバイスおよび独立エンティティにはアクセスできなくなります。{0} 件の統合を一括で削除してもよろしいですか?",
+ "user.role.bulk_member_remove_tip": "メンバー {0} 人を一括で削除してもよろしいですか?",
+ "user.role.dashboard_permission_modal_title": "ダッシュボード権限を追加",
+ "user.role.delete_tip": "削除は取り消せません。ロール {0} を削除してもよろしいですか?",
+ "user.role.device_can_not_remove_tip": "削除できません。元の統合が選択されています。まず元の統合の選択を解除してください。",
+ "user.role.device_permission_modal_title": "デバイス権限を追加",
+ "user.role.function_table_title": "権限",
+ "user.role.functions_tab_title": "機能権限",
+ "user.role.integration_name_table_title": "統合名",
+ "user.role.integration_num_device_table_title": "デバイス数",
+ "user.role.integration_num_entity_table_title": "エンティティ数",
+ "user.role.integration_permission_add_tip": "統合を追加すると、その統合下のすべてのデバイスと独立エンティティデータへアクセスできるようになります。",
+ "user.role.integration_permission_modal_title": "統合権限を追加",
+ "user.role.members_tab_title": "メンバー",
+ "user.role.model_table_title": "モジュール",
+ "user.role.page_table_title": "ページ",
+ "user.role.resource_dashboard_tab_title": "ダッシュボード権限",
+ "user.role.resource_device_tab_title": "デバイス権限",
+ "user.role.resource_integration_tab_title": "統合権限",
+ "user.role.resources_tab_title": "リソース",
+ "user.role.roles_tab_name": "ロール",
+ "user.role.single_dashboard_remove_tip": "ダッシュボード {0} を削除してもよろしいですか?",
+ "user.role.single_device_remove_tip": "デバイス {0} を削除してもよろしいですか?",
+ "user.role.single_integration_remove_tip": "削除後、この統合に属するすべてのデバイスおよび独立エンティティにはアクセスできなくなります。統合 {0} を削除してもよろしいですか?",
+ "user.role.single_member_remove_tip": "メンバー {0} を削除してもよろしいですか?",
+ "user.role.users_tab_name": "ユーザー"
+}
\ No newline at end of file
diff --git a/packages/locales/src/lang/ja/workflow.json b/packages/locales/src/lang/ja/workflow.json
new file mode 100644
index 000000000..14a901ce1
--- /dev/null
+++ b/packages/locales/src/lang/ja/workflow.json
@@ -0,0 +1,155 @@
+{
+ "workflow.button.label_import_from_dsl": "DSLからインポート",
+ "workflow.context_menu.title_change_node": "ノードを変更",
+ "workflow.editor.config_panel_test_title": "テスト {1}",
+ "workflow.editor.editor_auto_create_service_entity_tip": "システムはワークフロー名に基づきカスタムサービスエンティティを自動生成します。生成されたエンティティはカスタムエンティティ一覧で確認できます。",
+ "workflow.editor.form_button_add_condition": "条件を追加",
+ "workflow.editor.form_logic_operator_switch_tip": "クリックして{1}に切り替え",
+ "workflow.editor.form_param_execution_time": "実行時刻",
+ "workflow.editor.form_param_execution_time_queue": "実行時刻キュー",
+ "workflow.editor.form_param_expire_time": "有効期限",
+ "workflow.editor.form_param_select_placeholder": "値を入力または変数を参照",
+ "workflow.editor.form_param_timer_period_everyday": "毎日",
+ "workflow.editor.form_param_timer_period_friday": "金曜日",
+ "workflow.editor.form_param_timer_period_monday": "月曜日",
+ "workflow.editor.form_param_timer_period_saturday": "土曜日",
+ "workflow.editor.form_param_timer_period_sunday": "日曜日",
+ "workflow.editor.form_param_timer_period_thursday": "木曜日",
+ "workflow.editor.form_param_timer_period_tuesday": "火曜日",
+ "workflow.editor.form_param_timer_period_wednesday": "水曜日",
+ "workflow.editor.form_param_timer_period_weekday": "平日",
+ "workflow.editor.form_param_timer_period_weekend": "週末",
+ "workflow.editor.form_param_timer_type": "タイマー種別",
+ "workflow.editor.form_param_timer_type_cycle": "周期実行",
+ "workflow.editor.form_param_timer_type_interval": "間隔実行",
+ "workflow.editor.form_param_timer_type_once": "1回のみ実行",
+ "workflow.editor.input_placeholder_remark": "説明を追加…",
+ "workflow.editor.log_panel_title_test_run": "テスト実行",
+ "workflow.editor.log_panel_title_verification_result": "検証結果",
+ "workflow.editor.log_title_run": "実行ログ",
+ "workflow.editor.log_title_test": "テストログ",
+ "workflow.editor.logs_popover_title_run": "実行ログ",
+ "workflow.editor.logs_popover_title_test": "テストログ",
+ "workflow.editor.move_mode_hand": "ハンドモード Ctrl + H",
+ "workflow.editor.move_mode_pointer": "ポインタモード Ctrl + V",
+ "workflow.editor.node_delete_confirm_desc": "このノードを削除してもよろしいですか?",
+ "workflow.editor.node_delete_confirm_title": "ノードを削除",
+ "workflow.editor.node_test_tip": "このノードをテスト",
+ "workflow.editor.output_desc_mqtt_payload": "メッセージ内容",
+ "workflow.editor.output_desc_mqtt_topic": "メッセージトピック",
+ "workflow.editor.output_desc_request_body": "リクエストボディ",
+ "workflow.editor.output_desc_request_header": "リクエストヘッダー",
+ "workflow.editor.output_desc_request_params": "クエリパラメータ",
+ "workflow.editor.output_desc_response_body": "レスポンスボディ",
+ "workflow.editor.output_desc_response_code": "レスポンスコード",
+ "workflow.editor.output_desc_response_header": "レスポンスヘッダー",
+ "workflow.editor.output_desc_variables_in_path": "パス内の変数",
+ "workflow.editor.save_warning_message": "このワークフローは参照されています。保存すると情報が同期更新されます。保存してもよろしいですか?",
+ "workflow.editor.valid.condition_not_setup": "条件が設定されていません",
+ "workflow.email.content_modal_title": "メール内容を編集",
+ "workflow.email.label_content_recipients": "宛先",
+ "workflow.email.label_content_recipients_tip": "複数の宛先は「;」で区切ってください。",
+ "workflow.email.label_gmail_config_api_key": "SerpApi APIキー",
+ "workflow.email.label_smtp_config_encryption_method": "暗号化方式",
+ "workflow.email.label_smtp_config_encryption_none": "なし",
+ "workflow.email.label_smtp_config_encryption_start_tls": "StartTLS",
+ "workflow.email.label_smtp_config_encryption_tls": "TLS",
+ "workflow.email.label_smtp_config_password": "SMTPパスワード",
+ "workflow.email.label_smtp_config_service_host": "SMTPサーバーパス",
+ "workflow.email.label_smtp_config_service_port": "SMTPポート",
+ "workflow.email.label_smtp_config_username": "SMTPユーザー名",
+ "workflow.label.abnormal_edge_tip": "ノードのネストが不正です。確認して再試行してください。",
+ "workflow.label.assigner_node_name": "エンティティ割当",
+ "workflow.label.branch": "ブランチ{1}",
+ "workflow.label.code_node_name": "コード",
+ "workflow.label.condition_operator_contains": "含む",
+ "workflow.label.condition_operator_end_with": "で終わる",
+ "workflow.label.condition_operator_greater_than": "より大きい",
+ "workflow.label.condition_operator_greater_than_or_equal": "以上",
+ "workflow.label.condition_operator_is": "等しい",
+ "workflow.label.condition_operator_is_empty": "空である",
+ "workflow.label.condition_operator_is_not": "等しくない",
+ "workflow.label.condition_operator_is_not_empty": "空でない",
+ "workflow.label.condition_operator_less_than": "より小さい",
+ "workflow.label.condition_operator_less_than_or_equal": "以下",
+ "workflow.label.condition_operator_not_contains": "含まない",
+ "workflow.label.condition_operator_start_with": "で始まる",
+ "workflow.label.connection_parameters": "接続パラメータ",
+ "workflow.label.cycle_connection_tip": "ノード間の接続が無効です。",
+ "workflow.label.design_mode_advanced_name": "高度モード",
+ "workflow.label.design_mode_canvas_name": "キャンバスモード",
+ "workflow.label.email_node_name": "メール通知",
+ "workflow.label.entry_node_number_limit_tip": "ワークフローにはちょうど {1} 個の開始ノードが必要です。",
+ "workflow.label.free_node_limit_tip": "ワークフローに孤立ノードは許可されません。",
+ "workflow.label.handle_tooltip": "クリックでノードを追加
ドラッグで接続",
+ "workflow.label.http_in_node_name": "HTTPリスナー",
+ "workflow.label.http_node_name": "HTTPリクエスト",
+ "workflow.label.httpin_node_desc": "受信したHTTPリクエストをリッスンし、ワークフローをトリガーします。",
+ "workflow.label.ifelse_node_name": "IF/ELSE",
+ "workflow.label.import_from_curl": "cURLからインポート",
+ "workflow.label.listener_node_desc": "監視対象エンティティの値が変化した際にワークフローを実行します。",
+ "workflow.label.listener_node_name": "エンティティリスナー",
+ "workflow.label.logic_keyword_and": "AND",
+ "workflow.label.logic_keyword_else": "ELSE",
+ "workflow.label.logic_keyword_elseif": "ELIF",
+ "workflow.label.logic_keyword_if": "IF",
+ "workflow.label.logic_keyword_or": "OR",
+ "workflow.label.mqtt_node_desc": "受信したMQTTメッセージをリッスンし、ワークフローをトリガーします。",
+ "workflow.label.mqtt_node_name": "MQTTリスナー",
+ "workflow.label.no_log_record": "ログ記録なし",
+ "workflow.label.node_category_action": "アクション",
+ "workflow.label.node_category_control": "制御",
+ "workflow.label.node_category_entry": "エントリ",
+ "workflow.label.node_category_external": "外部",
+ "workflow.label.node_email_type": "メールタイプ",
+ "workflow.label.node_id": "ノードID",
+ "workflow.label.node_min_number_limit_tip": "ワークフローには最低 {1} 個のノードが必要です。",
+ "workflow.label.output_node_name": "出力",
+ "workflow.label.output_variables": "出力変数",
+ "workflow.label.parallel": "並列{1}",
+ "workflow.label.parallel_depth_limit_tip": "並列ネストは {1} 階層まで",
+ "workflow.label.parallel_limit_tip": "並列ブランチは最大 {1} まで",
+ "workflow.label.param_type_other": "その他",
+ "workflow.label.placeholder_please_enter_curl": "ここにcURLコマンドを入力してください。",
+ "workflow.label.placeholder_please_enter_json": "JSONを入力してください",
+ "workflow.label.placeholder_please_enter_raw_text": "RAWテキストを入力してください",
+ "workflow.label.select_node_name": "エンティティ選択",
+ "workflow.label.service_node_name": "サービス呼び出し",
+ "workflow.label.timer_node_desc": "定期的またはスケジュールでワークフローを実行します。",
+ "workflow.label.timer_node_name": "タイマー",
+ "workflow.label.trigger_node_desc": "ユーザーが手動でワークフローをトリガーします。",
+ "workflow.label.trigger_node_name": "トリガー",
+ "workflow.label.use_system_smtp_settings": "システムSMTP設定を使用",
+ "workflow.label.webhook_node_name": "Webhookプッシュ",
+ "workflow.message.delete_tip": "ワークフローを削除してもよろしいですか?削除後は復元できません。",
+ "workflow.message.import_dsl_error": "DSLファイルにエラーがあります。修正して再試行してください。",
+ "workflow.modal.add_workflow_modal": "ワークフローを作成",
+ "workflow.modal.edit_workflow_modal": "ワークフローを編集",
+ "workflow.modal.entry_node_create_title": "どのタイプの開始ノードを作成しますか?",
+ "workflow.modal.running_log": "実行ログ",
+ "workflow.modal.upload_tips": "クリックまたはファイルをドラッグしてアップロード",
+ "workflow.modal.workflow_name": "ワークフロー名",
+ "workflow.node.config_panel_lable_arguments": "引数",
+ "workflow.node.input_variables": "入力変数",
+ "workflow.node.service_helper_text": "まず呼び出すサービスを選択してください。",
+ "workflow.node.trigger_switch_label": "内容",
+ "workflow.valid.edge_id_duplicated": "ノード {1} と {2} を結ぶEdgeのIDが重複しています。",
+ "workflow.valid.invalid_edge_id": "ノード {1} と {2} を結ぶEdgeのIDが無効です。",
+ "workflow.valid.invalid_edge_type": "ノード {1} と {2} を結ぶEdgeのタイプが無効です。",
+ "workflow.valid.invalid_email": "{1} フィールドは有効なメールアドレスではありません。",
+ "workflow.valid.invalid_node_id": "{1} ノードIDが無効です。",
+ "workflow.valid.invalid_node_type": "{1} ノードタイプが無効です。",
+ "workflow.valid.invalid_timer_interval": "タイマー間隔は {1} 未満である必要があります。",
+ "workflow.valid.invalid_url": "{1} フィールドは有効なURLではありません。",
+ "workflow.valid.invalid_url_path": "{1} フィールドは / で始まり、英数字と {2} 形式をサポートしてください。",
+ "workflow.valid.max_length": "{1} フィールドの長さは {2} 文字を超えてはいけません。",
+ "workflow.valid.min_length": "{1} フィールドの長さは {0} 文字以上である必要があります。",
+ "workflow.valid.node_id_duplicated": "{1} と {2} のノードIDが重複しています。",
+ "workflow.valid.node_parameters_required": "{1} ノードのパラメータが必要です。",
+ "workflow.valid.output_node_limit_count_tip": "ワークフローには出力ノードは1つのみ許可されます。",
+ "workflow.valid.output_node_limit_has_trigger_tip": "出力ノードが存在する場合、開始ノードはトリガーノードでなければなりません。",
+ "workflow.valid.parameter_required": "{1} ノードのパラメータは必須です。",
+ "workflow.valid.range_length": "{1} フィールドの長さは {2} 以上 {3} 以下でなければなりません。",
+ "workflow.valid.required": "{1} フィールドは必須です。",
+ "workflow.valid.invalid_reference_param": "{1} フィールドが参照するパラメータが無効です。"
+}
\ No newline at end of file
From 226521c9c46c841c3466821aa98b69eb98ab9e08 Mon Sep 17 00:00:00 2001
From: fuyuking <101615404+fuyuking@users.noreply.github.com>
Date: Thu, 26 Jun 2025 11:34:06 +0900
Subject: [PATCH 4/6] Add files via upload
---
packages/locales/src/lang/cn/global.json | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/packages/locales/src/lang/cn/global.json b/packages/locales/src/lang/cn/global.json
index ea704ba52..cbc5458cd 100644
--- a/packages/locales/src/lang/cn/global.json
+++ b/packages/locales/src/lang/cn/global.json
@@ -51,7 +51,6 @@
"common.label.enable_title": "启用{1}",
"common.label.end_date": "结束时间",
"common.label.entity": "实体",
- "common.label.entity_type": "实体类型",
"common.label.error": "错误",
"common.label.export": "导出",
"common.label.false": "False",
@@ -136,6 +135,8 @@
"common.language.cn_short": "ZH",
"common.language.en": "English",
"common.language.en_short": "EN",
+ "common.language.ja": "日本語",
+ "common.language.ja_short": "JA",
"common.message.add_success": "添加成功。",
"common.message.click_to_upload_file": "点击或拖拽文件至此区域进行上传。",
"common.message.copy_successful": "复制成功。",
@@ -183,7 +184,7 @@
"valid.input.decimals": "请输入正确的小数。",
"valid.input.email": "请输入有效的电子邮件地址,格式为XXX@XXX.XX。长度应为5到255个字符。",
"valid.input.form_list_name_no_repeat": "表单项名称不能重复。",
- "valid.input.hex_number": "只允许十六进制数值。",
+ "valid.input.hex_number": "仅输入数字。",
"valid.input.image": "请选择.jpg、.png或.jpeg格式的图片。",
"valid.input.integer_positive_negative_zero": "请输入正整数/负整数或零。",
"valid.input.integer_positive_zero": "请输入正整数(包括零)。",
From 7352e296fc20427ee570db3f0212111b1fdee5ef Mon Sep 17 00:00:00 2001
From: fuyuking <101615404+fuyuking@users.noreply.github.com>
Date: Thu, 26 Jun 2025 11:35:31 +0900
Subject: [PATCH 5/6] Add files via upload
---
packages/locales/src/lang/en/global.json | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/packages/locales/src/lang/en/global.json b/packages/locales/src/lang/en/global.json
index 80b559ecb..aeb83c37e 100644
--- a/packages/locales/src/lang/en/global.json
+++ b/packages/locales/src/lang/en/global.json
@@ -51,7 +51,6 @@
"common.label.enable_title": "Enable {1}",
"common.label.end_date": "End Date",
"common.label.entity": "Entity",
- "common.label.entity_type": "Entity Type",
"common.label.error": "Error",
"common.label.export": "Export",
"common.label.false": "False",
@@ -136,6 +135,8 @@
"common.language.cn_short": "ZH",
"common.language.en": "English",
"common.language.en_short": "EN",
+ "common.language.ja": "日本語",
+ "common.language.ja_short": "JA",
"common.message.add_success": "Added successfully.",
"common.message.click_to_upload_file": " Click or drag files to this area to upload.",
"common.message.copy_successful": "Copied successfully.",
@@ -183,7 +184,7 @@
"valid.input.decimals": "Please enter the correct decimal number.",
"valid.input.email": "Please enter a valid email address with XXX@XXX.XX format. It must be 5 to 255 characters long.",
"valid.input.form_list_name_no_repeat": "The name of the form item cannot be repeated.",
- "valid.input.hex_number": "Only hexadecimal values are allowed.",
+ "valid.input.hex_number": "Input numbers only.",
"valid.input.image": "Please choose an image with .jpg, .png or .jpeg file format.",
"valid.input.integer_positive_negative_zero": "Please enter a positive/negative integer, or zero.",
"valid.input.integer_positive_zero": "Please enter a positive integer (Includes Zero).",
From ba0b3ba5fa69a7c02a36ef2650acef37f8d0771a Mon Sep 17 00:00:00 2001
From: fuyuking <101615404+fuyuking@users.noreply.github.com>
Date: Thu, 26 Jun 2025 11:39:03 +0900
Subject: [PATCH 6/6] Delete apps/web/src/plugin/plugins/mapping directory
---
.../src/plugin/plugins/mapping/config.json | 31 ----------------
.../plugins/mapping/configure/index.tsx | 29 ---------------
apps/web/src/plugin/plugins/mapping/icon.svg | 12 ------
.../src/plugin/plugins/mapping/view/index.tsx | 37 -------------------
.../plugin/plugins/mapping/view/style.less | 28 --------------
5 files changed, 137 deletions(-)
delete mode 100644 apps/web/src/plugin/plugins/mapping/config.json
delete mode 100644 apps/web/src/plugin/plugins/mapping/configure/index.tsx
delete mode 100644 apps/web/src/plugin/plugins/mapping/icon.svg
delete mode 100644 apps/web/src/plugin/plugins/mapping/view/index.tsx
delete mode 100644 apps/web/src/plugin/plugins/mapping/view/style.less
diff --git a/apps/web/src/plugin/plugins/mapping/config.json b/apps/web/src/plugin/plugins/mapping/config.json
deleted file mode 100644
index 1edcac2d6..000000000
--- a/apps/web/src/plugin/plugins/mapping/config.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "$schema": "../../schema.json",
- "type": "mapping",
- "name": "Mapping",
- "class": "data_card",
- "icon": "./icon.svg",
- "defaultRow": 2,
- "defaultCol": 3,
- "minRow": 1,
- "minCol": 2,
- "configProps": [
- {
- "style": "width: 100%",
- "components": [
- {
- "type": "input",
- "title": "URL",
- "key": "src",
- "style": "width: 100%",
- "defaultValue": "https://example.com",
- "componentProps": {
- "inputProps": {
- "maxLength": 512
- }
- }
- }
- ]
- }
- ],
- "view": []
-}
diff --git a/apps/web/src/plugin/plugins/mapping/configure/index.tsx b/apps/web/src/plugin/plugins/mapping/configure/index.tsx
deleted file mode 100644
index 6a3d92ae1..000000000
--- a/apps/web/src/plugin/plugins/mapping/configure/index.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import { forwardRef } from 'react';
-import { RenderConfig } from '../../../render';
-
-interface ConfigPluginProps {
- config: CustomComponentProps;
- value: any;
- onOk: (data: any) => void;
- onChange: (data: any) => void;
-}
-
-const Plugin = forwardRef((props: ConfigPluginProps, ref: any) => {
- const { onOk, onChange, value, config } = props;
-
- const handleSubmit = (data: any) => {
- onOk(data);
- };
-
- return (
-
- );
-});
-
-export default Plugin;
diff --git a/apps/web/src/plugin/plugins/mapping/icon.svg b/apps/web/src/plugin/plugins/mapping/icon.svg
deleted file mode 100644
index 34b3f3cfb..000000000
--- a/apps/web/src/plugin/plugins/mapping/icon.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
\ No newline at end of file
diff --git a/apps/web/src/plugin/plugins/mapping/view/index.tsx b/apps/web/src/plugin/plugins/mapping/view/index.tsx
deleted file mode 100644
index d37985ebb..000000000
--- a/apps/web/src/plugin/plugins/mapping/view/index.tsx
+++ /dev/null
@@ -1,37 +0,0 @@
-import { memo, useEffect, useState } from 'react';
-import './style.less';
-
-export interface ViewProps {
- config: {
- src?: string;
- };
- configJson: {
- isPreview?: boolean;
- };
-}
-
-const View = (props: ViewProps) => {
- const { config } = props;
- const { src='https://example.com' } = config || {};
-
- const [key, setKey] = useState(0);
-
- // 当src变化时更新key值
- useEffect(() => {
- setKey(prevKey => prevKey + 1);
- }, [src]);
-
- return (
-
- );
-};
-
-export default memo(View);
diff --git a/apps/web/src/plugin/plugins/mapping/view/style.less b/apps/web/src/plugin/plugins/mapping/view/style.less
deleted file mode 100644
index 86c6d7f59..000000000
--- a/apps/web/src/plugin/plugins/mapping/view/style.less
+++ /dev/null
@@ -1,28 +0,0 @@
-.text-wrapper {
- display: flex;
- flex-direction: column;
- padding: @padding-md 0;
- background-color: var(--white);
- border-radius: @border-radius-md;
-
- &__preview {
- min-width: 300px;
- max-width: 500px;
- max-height: 300px;
- }
-
- &__label {
- padding: 0 @padding-md;
- margin-bottom: @margin-xs;
- font-weight: @font-weight-medium;
- .text-size(@font-size-lg);
- }
-
- &__content {
- flex: 1;
- padding: 0 @padding-md;
- overflow: auto;
- word-break: break-all;
- .text-size(@font-size-base);
- }
-}