@object-ui/i18n 17.3.0 → 17.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +1295 -1
  2. package/README.md +0 -13
  3. package/dist/index.d.ts +3 -1
  4. package/dist/index.js +11 -1
  5. package/dist/locales/ar.d.ts +466 -107
  6. package/dist/locales/ar.js +559 -153
  7. package/dist/locales/de.d.ts +466 -107
  8. package/dist/locales/de.js +574 -175
  9. package/dist/locales/en.d.ts +502 -143
  10. package/dist/locales/en.js +678 -145
  11. package/dist/locales/es.d.ts +466 -107
  12. package/dist/locales/es.js +553 -155
  13. package/dist/locales/fr.d.ts +466 -107
  14. package/dist/locales/fr.js +553 -152
  15. package/dist/locales/index.d.ts +4734 -1144
  16. package/dist/locales/ja.d.ts +466 -107
  17. package/dist/locales/ja.js +545 -146
  18. package/dist/locales/ko.d.ts +466 -107
  19. package/dist/locales/ko.js +551 -153
  20. package/dist/locales/pt.d.ts +466 -107
  21. package/dist/locales/pt.js +552 -154
  22. package/dist/locales/ru.d.ts +466 -107
  23. package/dist/locales/ru.js +563 -153
  24. package/dist/locales/zh.d.ts +501 -142
  25. package/dist/locales/zh.js +542 -142
  26. package/dist/pickLocalized.d.ts +21 -0
  27. package/dist/pickLocalized.js +40 -7
  28. package/dist/provider.d.ts +83 -1
  29. package/dist/provider.js +303 -29
  30. package/dist/useDisplayLocale.d.ts +49 -0
  31. package/dist/useDisplayLocale.js +55 -0
  32. package/dist/useObjectLabel.d.ts +8 -2
  33. package/dist/useObjectLabel.js +28 -8
  34. package/dist/useSafeTranslation.js +50 -2
  35. package/dist/utils/index.d.ts +1 -0
  36. package/dist/utils/index.js +1 -0
  37. package/dist/utils/number-display.d.ts +32 -0
  38. package/dist/utils/number-display.js +32 -0
  39. package/dist/utils/spec-formatters.d.ts +39 -13
  40. package/dist/utils/spec-formatters.js +3 -3
  41. package/package.json +4 -3
@@ -1,4 +1,18 @@
1
1
  const ja = {
2
+ // objectui#4467 — the impersonation banner (app-shell ImpersonationBanner).
3
+ // Raised by `session.impersonatedBy`, so it survives SPA reboots; it names
4
+ // BOTH parties because the audit trail attributes the work to the impersonated
5
+ // user, and the exit states its own failure rather than appearing to succeed.
6
+ impersonation: {
7
+ banner: {
8
+ message: '{{user}} になりすまして操作しています。すべての操作はこのユーザーとして記録されます。',
9
+ startedBy: '管理者 {{admin}} が開始しました。',
10
+ stop: 'なりすましを終了',
11
+ stopping: '終了しています…',
12
+ stopFailed: 'なりすましを終了できませんでした: {{reason}}',
13
+ notRestored: 'サーバーはリクエストを受け付けましたが、管理者セッションを復元しませんでした。まだ {{user}} として操作しています。サインアウトして再度サインインして終了してください。',
14
+ },
15
+ },
2
16
  // objectui#2600 B5 — capability picker scope group headers (labels come from the sys_capability registry).
3
17
  capability: {
4
18
  label: {
@@ -16,6 +30,26 @@ const ja = {
16
30
  other: 'その他',
17
31
  },
18
32
  },
33
+ // objectui#3546 slice six — PermissionFacetLink の授権ファセット要約。
34
+ // 数量ラベルは appDesigner.objectManager.fieldCount と同じ「{{count}} + 単位」形。
35
+ // 日本語に単複はないため `_one` は基底キーと同値(意図的)。
36
+ perm: {
37
+ facet: {
38
+ none: "なし",
39
+ more: "+{{count}} 件",
40
+ objects: "{{count}} オブジェクト",
41
+ objects_one: "{{count}} オブジェクト",
42
+ fields: "{{count}} フィールドルール",
43
+ fields_one: "{{count}} フィールドルール",
44
+ rls: "{{count}} RLS ポリシー",
45
+ rls_one: "{{count}} RLS ポリシー",
46
+ tabs: "{{count}} タブルール",
47
+ tabs_one: "{{count}} タブルール",
48
+ adminScope: "委任管理を設定済み",
49
+ designInStudio: "Studio でデザイン →",
50
+ designInStudioHint: "Studio でデザイン",
51
+ },
52
+ },
19
53
  lookup: {
20
54
  recentlyUsed: '最近使用したもの',
21
55
  allResults: 'すべての結果',
@@ -46,13 +80,12 @@ const ja = {
46
80
  common: {
47
81
  addToFavorites: "お気に入りに追加",
48
82
  removeFromFavorites: "お気に入りから削除",
49
- loading: "読み込み中...",
83
+ loading: "読み込み中…",
50
84
  save: "保存",
51
85
  cancel: "キャンセル",
52
86
  delete: "削除",
53
87
  edit: "編集",
54
88
  create: "作成",
55
- search: "検索",
56
89
  filter: "フィルター",
57
90
  reset: "リセット",
58
91
  confirm: "確認",
@@ -76,7 +109,7 @@ const ja = {
76
109
  required: "必須",
77
110
  optional: "任意",
78
111
  selectOption: "選択してください",
79
- select: "選択...",
112
+ select: "選択…",
80
113
  openChat: "チャットを開く",
81
114
  closeChat: "チャットを閉じる",
82
115
  closePanel: "パネルを閉じる",
@@ -85,6 +118,11 @@ const ja = {
85
118
  itemCountOne: "{{count}} 件",
86
119
  toggleSidebar: "サイドバーを切り替え",
87
120
  package: "パッケージ",
121
+ done: "完了",
122
+ editInStudio: "Studio で編集",
123
+ record: "レコード",
124
+ retry: "再試行",
125
+ printDialogHint: "ブラウザーの印刷ダイアログを開きます(PDF エクスポートではありません)",
88
126
  },
89
127
  actions: {
90
128
  decisionOutput: {
@@ -116,6 +154,9 @@ const ja = {
116
154
  submitFailed: "保存できませんでした。もう一度お試しください。",
117
155
  discardTitle: "変更を破棄しますか?",
118
156
  discardMessage: "保存されていない変更があります。このままフォームを閉じると編集内容は失われます。",
157
+ // objectui#4024 — the create/edit dialog's `sr-only` accessible
158
+ // description, used when the form declares no `description` of its own.
159
+ dialogDescriptionFallback: "フォームの項目を入力してから、送信またはキャンセルしてください。",
119
160
  keepEditing: "編集を続ける",
120
161
  discard: "破棄",
121
162
  conflictTitle: "保存の競合",
@@ -184,7 +225,7 @@ const ja = {
184
225
  richText: {
185
226
  format: "フォーマット: {{format}}",
186
227
  basicEditorHint: "リッチテキストエディター(基本)",
187
- placeholder: "テキストを入力...",
228
+ placeholder: "テキストを入力…",
188
229
  },
189
230
  options: {
190
231
  empty: "選択できる項目がありません",
@@ -250,7 +291,7 @@ const ja = {
250
291
  saveAll: "すべて保存 ({{count}})",
251
292
  addRecord: "レコードを追加",
252
293
  open: "開く",
253
- search: "検索...",
294
+ search: "検索…",
254
295
  modified: "{{count}} 行が変更されました",
255
296
  saveFailed: '保存に失敗しました',
256
297
  selected: "{{count}} 件選択中",
@@ -294,7 +335,7 @@ const ja = {
294
335
  delete: "削除",
295
336
  export: "エクスポート",
296
337
  exportAs: "{{format}}でエクスポート",
297
- loading: "グリッドを読み込み中...",
338
+ loading: "グリッドを読み込み中…",
298
339
  errorLoading: "グリッドの読み込みエラー",
299
340
  pullToRefresh: "引っ張って更新",
300
341
  refreshing: "更新中…",
@@ -305,6 +346,22 @@ const ja = {
305
346
  yes: "はい",
306
347
  no: "いいえ",
307
348
  systemFields: "システム",
349
+ // objectui#4024 — column-footer aggregate prefixes, keyed by the spec's
350
+ // `ColumnSummary` vocabulary. `pattern` owns the label/value join so this
351
+ // pack controls its own separator and word order.
352
+ summary: {
353
+ pattern: "{{label}}: {{value}}",
354
+ count: "件数",
355
+ countEmpty: "空欄",
356
+ countFilled: "入力済み",
357
+ countUnique: "一意",
358
+ percentEmpty: "空欄",
359
+ percentFilled: "入力済み",
360
+ sum: "合計",
361
+ avg: "平均",
362
+ min: "最小",
363
+ max: "最大",
364
+ },
308
365
  toolbar: {
309
366
  densityMode: "密度",
310
367
  densityCompact: "コンパクト",
@@ -483,6 +540,8 @@ const ja = {
483
540
  loadErrorUnauthorizedMessage: "セッションの有効期限が切れたか、サインアウトしています。再度サインインしてください。",
484
541
  loadErrorRejectedTitle: "このビューのクエリは拒否されました",
485
542
  loadErrorRejectedMessage: "サーバーはこのビューのフィルターまたはクエリ設定を処理できませんでした。フィルターを解除すると解消することがほとんどです。ビューがこの状態で保存されている場合は、管理者による修正が必要です。",
543
+ loadErrorApiDisabledTitle: "このオブジェクトは API から利用できません",
544
+ loadErrorApiDisabledMessage: "このオブジェクトが API に公開されていないため、このページはレコードを読み込めません。これは権限ではなくオブジェクト自体の設定です。管理者が API アクセスを有効にするまで、このページは動作しません。",
486
545
  retry: "再試行",
487
546
  managedBy: {
488
547
  system: {
@@ -507,7 +566,7 @@ const ja = {
507
566
  },
508
567
  },
509
568
  refresh: "更新",
510
- loading: 'Loading records...',
569
+ loading: "レコードを読み込み中…",
511
570
  recordCount: "{{count}} 件のレコード",
512
571
  recordCountOne: "{{count}} 件のレコード",
513
572
  addRecord: "レコードを追加",
@@ -519,7 +578,8 @@ const ja = {
519
578
  sort: "並べ替え",
520
579
  sortRecords: "レコードを並べ替え",
521
580
  sortByIdSuffix: "(ID順)",
522
- sortRelationalHint: "他のレコードを参照する列は表示されていません。保存されている ID でしか並べ替えられず、セルに表示される名称では並べ替えできません。その名称で並べ替えるには、名称を保持する数式項目を追加してください。",
581
+ sortRelationalHint: "他のレコードを参照する列は表示されていません。保存されている ID でしか並べ替えられず、セルに表示される名称では並べ替えできません。その名称で並べ替えるには、名称をこのオブジェクトに非正規化し、参照元が変更されたときに書き込まれる保存項目として持たせたうえで、その項目で並べ替えてください。数式項目は使えません。数式は仮想的で、対応する列が保存されないため、サーバーは並べ替えを拒否します。",
582
+ resetSortToDefault: "ビューの既定の並び順に戻す",
523
583
  group: "グループ",
524
584
  groupBy: "グループ化",
525
585
  export: "エクスポート",
@@ -577,13 +637,16 @@ const ja = {
577
637
  },
578
638
  kanban: {
579
639
  uncategorized: "未分類",
640
+ columns: "カラム",
580
641
  addCard: "カードを追加",
581
642
  addColumn: "カラムを追加",
582
643
  moveCard: "カードを移動",
583
644
  deleteCard: "カードを削除",
584
645
  deleteColumn: "カラムを削除",
585
646
  noCards: "カードがありません",
586
- cardTitlePlaceholder: "カードのタイトルを入力...",
647
+ cardTitlePlaceholder: "カードのタイトルを入力…",
648
+ requiredFieldsTitle: "必須項目を入力してください",
649
+ requiredFieldsDescription: "この移動により以下の項目が必須になります。入力して続行してください。",
587
650
  },
588
651
  timeline: {
589
652
  bucket: {
@@ -596,6 +659,13 @@ const ja = {
596
659
  noDate: "日付なし",
597
660
  unassigned: "未割当",
598
661
  },
662
+ scale: {
663
+ week: "第{{n}}週",
664
+ quarter: "{{year}}年第{{quarter}}四半期",
665
+ },
666
+ gantt: {
667
+ rowLabel: "項目",
668
+ },
599
669
  },
600
670
  gantt: {
601
671
  viewMode: {
@@ -642,6 +712,18 @@ const ja = {
642
712
  ff: "終了 → 終了",
643
713
  sf: "開始 → 終了",
644
714
  },
715
+ linkEnd: {
716
+ start: "開始",
717
+ end: "終了",
718
+ },
719
+ link: {
720
+ rejected: {
721
+ self: "タスクを自分自身に依存させることはできません。",
722
+ locked: "この行はロックされているため、依存関係を追加できません。",
723
+ group: "サマリー行は依存先にできません。配下のタスクに接続してください。",
724
+ cycle: "この接続は循環依存になります。",
725
+ },
726
+ },
645
727
  conflict: {
646
728
  title: "スケジュールの競合",
647
729
  body: "この移動は依存関係の制約と競合します。影響を受ける {{count}} 件のタスクを自動で再スケジュールしますか?",
@@ -650,8 +732,8 @@ const ja = {
650
732
  },
651
733
  autoScheduleDlg: {
652
734
  title: "自動スケジュール",
653
- body: "依存リンクを満たすため {count} 件のタスクを後ろにずらしますか?",
654
- skipped: "ロックされた {count} 件のタスクもリンクに違反していますが、スキップされました。",
735
+ body: "依存リンクを満たすため {{count}} 件のタスクを後ろにずらしますか?",
736
+ skipped: "ロックされた {{count}} 件のタスクもリンクに違反していますが、スキップされました。",
655
737
  confirm: "適用",
656
738
  cancel: "キャンセル",
657
739
  none: "依存関係はすべて満たされています — 再スケジュールの必要はありません。",
@@ -688,6 +770,7 @@ const ja = {
688
770
  exportPng: "PNG で書き出す",
689
771
  exportPdf: "PDF で書き出す",
690
772
  saveLayout: "レイアウトを保存",
773
+ refresh: "更新",
691
774
  undo: "元に戻す",
692
775
  redo: "やり直す",
693
776
  prevPeriod: "前の期間",
@@ -728,11 +811,11 @@ const ja = {
728
811
  defaultBadge: "デフォルト",
729
812
  tabActionsFor: "{{name}} のビュー操作",
730
813
  readonlyAriaLabel: "読み取り専用ビュー",
731
- readonlyTooltip: "システムビュー — 複製してカスタマイズしてください。",
814
+ readonlyTooltip: "システムビュー — コードで定義され、読み取り専用です。",
732
815
  },
733
816
  designer: {
734
- undo: 'Undo',
735
- redo: 'Redo',
817
+ undo: "元に戻す",
818
+ redo: "やり直す",
736
819
  },
737
820
  detail: {
738
821
  editInlineHint: "ダブルクリックで編集",
@@ -772,13 +855,15 @@ const ja = {
772
855
  relatedRecords: "{{count}} 件のレコード",
773
856
  relatedRecordOne: "{{count}} 件のレコード",
774
857
  noRelatedRecords: "関連レコードが見つかりません",
775
- loading: "読み込み中...",
858
+ loading: "読み込み中…",
776
859
  copyToClipboard: "クリップボードにコピー",
777
860
  copied: "コピーしました!",
778
861
  deleteConfirmation: "このレコードを削除してもよろしいですか?",
862
+ deleted: "レコードを削除しました",
779
863
  editRecord: "レコードを編集",
780
864
  viewAll: "すべて表示",
781
865
  new: "新規",
866
+ add: "追加",
782
867
  emptyValue: "—",
783
868
  activity: "アクティビティ",
784
869
  editRow: "編集",
@@ -789,7 +874,7 @@ const ja = {
789
874
  nextPage: "次へ",
790
875
  pageOf: "ページ {{current}} / {{total}}",
791
876
  sortBy: "並べ替え",
792
- filterPlaceholder: "フィルター...",
877
+ filterPlaceholder: "フィルター…",
793
878
  highlightFields: "主要フィールド",
794
879
  comments: "コメント",
795
880
  searchComments: "コメントを検索…",
@@ -854,6 +939,7 @@ const ja = {
854
939
  loadMore: "さらに読み込む",
855
940
  edited: "(編集済み)",
856
941
  via: "{{source}} 経由",
942
+ viewSource: "ソースを表示",
857
943
  replyCount: "{{count}} 件の返信",
858
944
  replyCountPlural: "{{count}} 件の返信",
859
945
  replyPlaceholder: "返信…",
@@ -895,13 +981,18 @@ const ja = {
895
981
  concurrentUpdateReload: "最新を読み込む",
896
982
  concurrentUpdateOverwrite: "上書きする",
897
983
  concurrentUpdateCancel: "キャンセル",
984
+ concurrentUpdateRecordLabel: "このレコード",
898
985
  openInNewTab: "新しいタブで開く",
899
986
  history: "履歴",
987
+ historyEmpty: "履歴はまだありません",
900
988
  deleteRowTitle: "レコードを削除",
901
989
  createdBy: "作成者",
902
990
  updatedBy: "更新者",
903
991
  created: "作成",
904
992
  updated: "更新",
993
+ // objectui#3863 — base key. ja has a single plural category (`other`), so this
994
+ // slot is unreachable here and equals `_other` for key-set parity.
995
+ showEmptyRelated: "+ {{count}} 件(空)",
905
996
  showEmptyRelated_one: "+ {{count}} 件(空)",
906
997
  showEmptyRelated_other: "+ {{count}} 件(空)",
907
998
  copyEmail: "メールをコピー",
@@ -913,7 +1004,8 @@ const ja = {
913
1004
  },
914
1005
  chart: {
915
1006
  noData: "チャートデータがありません",
916
- loading: "チャート読み込み中...",
1007
+ loading: "チャート読み込み中…",
1008
+ nullCategory: "(未設定)",
917
1009
  },
918
1010
  map: {
919
1011
  searchLocations: "場所を検索…",
@@ -935,8 +1027,8 @@ const ja = {
935
1027
  properties: "プロパティ",
936
1028
  connections: "接続",
937
1029
  quickConnect: "クイック接続",
938
- fromPlaceholder: "開始...",
939
- toPlaceholder: "終了...",
1030
+ fromPlaceholder: "開始…",
1031
+ toPlaceholder: "終了…",
940
1032
  connect: "接続",
941
1033
  label: "ラベル",
942
1034
  type: "タイプ",
@@ -984,6 +1076,7 @@ const ja = {
984
1076
  },
985
1077
  dashboard: {
986
1078
  noRows: "行がありません",
1079
+ loading: "読み込み中…",
987
1080
  pickMeasures: "このデータセットウィジェットの指標(値)を選択してください。",
988
1081
  datasetUnsupported: "このデータソースはデータセットクエリに対応していません。",
989
1082
  details: "詳細",
@@ -1241,6 +1334,7 @@ const ja = {
1241
1334
  },
1242
1335
  },
1243
1336
  console: {
1337
+ saveAdvisoryTitle: "保存しました — 編集チェックで {{count}} 件の推奨事項が見つかりました",
1244
1338
  settingsHub: {
1245
1339
  title: "設定",
1246
1340
  subtitle: "ワークスペース、連携、機能フラグを設定します。",
@@ -1307,7 +1401,7 @@ const ja = {
1307
1401
  shareTitle: "この会話を共有",
1308
1402
  shareDisabledTitle: "共有するにはチャットを開始してください",
1309
1403
  newChat: "新規",
1310
- searchChats: "チャットを検索...",
1404
+ searchChats: "チャットを検索…",
1311
1405
  noChatsYet: "チャットはまだありません",
1312
1406
  noChatsDescription: "新しい会話を開始するとここに表示されます。",
1313
1407
  noMatchingChats: "一致するチャットはありません。",
@@ -1316,18 +1410,18 @@ const ja = {
1316
1410
  deleteConversation: "会話を削除",
1317
1411
  saveRename: "名前を保存",
1318
1412
  cancelRename: "名前の変更をキャンセル",
1319
- loadingHistory: "会話履歴を読み込んでいます...",
1413
+ loadingHistory: "会話履歴を読み込んでいます…",
1320
1414
  conversationReady: "会話の準備ができました",
1321
1415
  preparingConversation: "新しい会話を準備しています",
1322
1416
  offlineDemoMode: "オフラインデモモード — エージェント一覧は利用できません",
1323
1417
  sendFailedRateLimited: "送信の間隔が短すぎます。メッセージは下に保持されています — 少し待ってから再試行してください。",
1324
1418
  sendFailedGeneric: "メッセージを送信できませんでした。下に保持されています — もう一度お試しください。",
1325
- askAgent: "{{agent}} に質問...",
1419
+ askAgent: "{{agent}} に質問…",
1326
1420
  assistant: "アシスタント",
1327
1421
  liveCanvas: "ライブプレビュー — {{app}}(ドラフト)",
1328
1422
  liveCanvasUnlisted: "ライブアプリ — {{app}}(公開するまで非掲載)",
1329
- loadingAgents: "エージェントを読み込んでいます...",
1330
- askAnything: "何でも質問してください...",
1423
+ loadingAgents: "エージェントを読み込んでいます…",
1424
+ askAnything: "何でも質問してください…",
1331
1425
  emptyTitle: "会話を始める",
1332
1426
  emptyDescription: "何でも質問してください — アシスタントは現在のアプリのコンテキストを参照できます。",
1333
1427
  switchAssistant: "アシスタントを切り替え",
@@ -1430,9 +1524,60 @@ const ja = {
1430
1524
  createSeed: "サンプルデータを生成",
1431
1525
  createPackage: "アプリパッケージを作成",
1432
1526
  },
1527
+ // objectui#3546 slice four — the AI console surfaces: the /ai chat page's app switcher,
1528
+ // connection banner and plan/publish cards, the ChatDock chrome, and the
1529
+ // conversation-list date buckets. `group.*` is the template-key family
1530
+ // `console.ai.group.${key}` (ConversationsSidebar), enumerated from the
1531
+ // ConversationGroupKey union — all five members, no wildcard.
1532
+ collapseToDock: "サイドパネルに収める",
1533
+ switchApp: "アプリを切り替え",
1534
+ switchAppLabel: "アプリ別のビルド会話",
1535
+ newApp: "新しいアプリ",
1536
+ connectionWaiting: "サーバーを待っています…",
1537
+ connectionStalled: "まだ処理しています…",
1538
+ connectionOffline: "接続が切断されました — 再接続しています…",
1539
+ designingPlan: "アプリを設計しています…",
1540
+ designingPlanHint: {
1541
+ data: "追跡するデータを整理しています…",
1542
+ objects: "オブジェクトとそのフィールドを形にしています…",
1543
+ relations: "関連レコードを接続しています…",
1544
+ lookups: "リレーションと参照フィールドを設定しています…",
1545
+ views: "画面とビューを計画しています…",
1546
+ forms: "フォームとリストを配置しています…",
1547
+ defaults: "妥当な既定値と検証を追加しています…",
1548
+ dashboard: "追跡用のダッシュボードを描いています…",
1549
+ review: "構造全体に矛盾がないか再確認しています…",
1550
+ finalize: "プランをまとめています…",
1551
+ },
1552
+ planBuilding: "ビルド中…",
1553
+ planBuilt: "ビルド済み",
1554
+ planDeferred: "まだビルドされていません",
1555
+ planReady: "プランの準備ができました。今すぐビルドするか、調整したい点を教えてください。",
1556
+ published: "公開しました",
1557
+ publishFailed: "公開に失敗しました",
1558
+ unavailableTitle: "AI アシスタントを利用できません",
1559
+ unavailableDescription: "このデプロイでは AI アシスタントが有効になっていません。それ以外の機能は通常どおり動作します。",
1560
+ unavailableError: "AI サービスに接続できませんでした。一時的にオフラインの可能性があります — 再試行するか、ホームに戻ってください。",
1561
+ unavailableRetry: "再試行",
1562
+ unavailableHome: "ホームに戻る",
1563
+ dock: {
1564
+ title: "アシスタント",
1565
+ description: "AI アシスタントのチャット",
1566
+ resize: "チャットのサイズを変更",
1567
+ collapse: "チャットを折りたたむ",
1568
+ maximize: "フルページで開く",
1569
+ open: "アシスタントを開く",
1570
+ },
1571
+ group: {
1572
+ today: "今日",
1573
+ yesterday: "昨日",
1574
+ previous7Days: "過去 7 日間",
1575
+ previous30Days: "過去 30 日間",
1576
+ older: "それ以前",
1577
+ },
1433
1578
  },
1434
1579
  title: "ObjectStack コンソール",
1435
- initializing: "アプリケーションを初期化中...",
1580
+ initializing: "アプリケーションを初期化中…",
1436
1581
  loadingHint: "新しい環境のセットアップには少し時間がかかることがあります。",
1437
1582
  breadcrumb: {
1438
1583
  dashboards: "ダッシュボード",
@@ -1440,6 +1585,31 @@ const ja = {
1440
1585
  reports: "レポート",
1441
1586
  system: "システム",
1442
1587
  },
1588
+ // objectui#4024 — the single-namespace settings screen. Its sibling
1589
+ // `settingsHub` above already resolved through this pack; the view was the
1590
+ // one file still carrying English literals.
1591
+ settingsView: {
1592
+ backToHub: "すべての設定",
1593
+ back: "戻る",
1594
+ noNamespace: "名前空間が選択されていません。",
1595
+ loadError: "設定の読み込みに失敗しました",
1596
+ saved: "設定を保存しました",
1597
+ saveFailed: "保存に失敗しました",
1598
+ lockedByEnv: "環境によりロックされています: {{key}}",
1599
+ lockedByEnvNoKey: "環境によりロックされています",
1600
+ actionSucceeded: "操作に成功しました",
1601
+ actionFailed: "操作に失敗しました",
1602
+ discard: "破棄",
1603
+ saveChanges: "変更を保存",
1604
+ unsavedCount: "未保存の変更 {{count}} 件",
1605
+ unsavedCount_one: "未保存の変更 {{count}} 件",
1606
+ unsavedCount_other: "未保存の変更 {{count}} 件",
1607
+ cryptoRefusalTitle: "このデプロイメントはシークレットを暗号化できません",
1608
+ cryptoRefusalSubjectSuffix: "は暗号化対象として宣言されているため、何も書き込まれませんでした。",
1609
+ cryptoRefusalNoSubject: "暗号化対象として宣言された値は拒否され、何も書き込まれませんでした。",
1610
+ cryptoRefusalToast: "シークレットを暗号化できません: {{subject}}",
1611
+ cryptoRefusalToastNoSubject: "シークレットを暗号化できません",
1612
+ },
1443
1613
  loadingSteps: {
1444
1614
  connecting: "データソースに接続中",
1445
1615
  loadingConfig: "設定を読み込み中",
@@ -1469,6 +1639,7 @@ const ja = {
1469
1639
  general: "一般",
1470
1640
  navigation: "ナビゲーション",
1471
1641
  dataViews: "データビュー",
1642
+ aiChat: "AI アシスタント",
1472
1643
  preferences: "設定",
1473
1644
  },
1474
1645
  openCommandPalette: "コマンドパレットを開く",
@@ -1479,11 +1650,13 @@ const ja = {
1479
1650
  createRecord: "新しいレコードを作成",
1480
1651
  refreshData: "データを更新",
1481
1652
  editRecord: "選択したレコードを編集",
1653
+ newChat: "新しいチャット",
1654
+ toggleChatsList: "チャット一覧を切り替え",
1482
1655
  toggleDarkMode: "ダークモードを切り替え",
1483
1656
  },
1484
1657
  commandPalette: {
1485
1658
  title: "コマンドパレット",
1486
- placeholder: "コマンドを入力または検索...",
1659
+ placeholder: "コマンドを入力または検索…",
1487
1660
  noResults: "結果が見つかりません。",
1488
1661
  objects: "オブジェクト",
1489
1662
  dashboards: "ダッシュボード",
@@ -1509,6 +1682,12 @@ const ja = {
1509
1682
  goHome: "ホームに戻る",
1510
1683
  errorDetails: "エラー詳細(開発モードのみ)",
1511
1684
  },
1685
+ // objectui#3546 slice four — the console's catch-all route (AppContent `RouteNotFound`).
1686
+ notFound: {
1687
+ title: "ページが見つかりません",
1688
+ description: "アクセスした URL は、このアプリのどのビューにも一致しません。",
1689
+ back: "戻る",
1690
+ },
1512
1691
  theme: {
1513
1692
  toggle: "テーマを切り替え",
1514
1693
  light: "ライト",
@@ -1524,8 +1703,10 @@ const ja = {
1524
1703
  viewNameHelp: "マシンキー(snake_case)。タイトルから自動入力されます — 必要に応じて編集してください。",
1525
1704
  viewNameRequired: "キーを入力してください(英小文字、数字、アンダースコア)。ラテン文字以外のタイトルでは自動入力されません。",
1526
1705
  viewNameInvalid: "英小文字、数字、アンダースコアを使用し、先頭は文字かアンダースコアにしてください。",
1527
- systemViewReadonly: 'System view defined in code - duplicate to customize.',
1528
- expandToPage: 'Open as full page',
1706
+ systemViewReadonly: "システムビューはコードで定義されており、読み取り専用です。",
1707
+ cannotEditMetaView: "このビューはコードで定義された組み込みビューのため、変更できません。",
1708
+ cannotDeleteMetaView: "このビューはコードで定義された組み込みビューのため、削除できません。",
1709
+ expandToPage: "フルページで開く",
1529
1710
  objectNotFound: "オブジェクトが見つかりません",
1530
1711
  objectNotFoundDescription: "オブジェクト「{{objectName}}」は現在の設定に存在しません。",
1531
1712
  objectNotFoundHint: "アプリのナビゲーション設定を確認するか、サイドバーから別のオブジェクトを選択してください。",
@@ -1557,7 +1738,7 @@ const ja = {
1557
1738
  exportPrintHint: "エクスポート形式、印刷、レコード数の表示",
1558
1739
  showAllFields: "すべて表示",
1559
1740
  hideAllFields: "すべて非表示",
1560
- searchFields: "フィールドを検索...",
1741
+ searchFields: "フィールドを検索…",
1561
1742
  title: "タイトル",
1562
1743
  description: "説明",
1563
1744
  data: "データ",
@@ -1596,7 +1777,7 @@ const ja = {
1596
1777
  longitudeField: "経度フィールド",
1597
1778
  imageField: "画像フィールド",
1598
1779
  dateField: "日付フィールド",
1599
- selectField: "フィールドを選択...",
1780
+ selectField: "フィールドを選択…",
1600
1781
  gridOptionsHint: "グリッドビューは上記で設定された列を使用します。",
1601
1782
  groupBy: "グループ化",
1602
1783
  prefixField: "プレフィックスフィールド",
@@ -1659,7 +1840,7 @@ const ja = {
1659
1840
  latitudeFieldHelp: "緯度座標を提供するフィールド(地理フィールドのみ)。",
1660
1841
  longitudeFieldHelp: "経度座標を提供するフィールド(地理フィールドのみ)。",
1661
1842
  imageFieldHelp: "ギャラリーのカバーはこの画像または添付フィールドから取得されます。",
1662
- selectOption: "選択...",
1843
+ selectOption: "選択…",
1663
1844
  noEligibleFieldForType: "このタイプに適したフィールドがありません。最初にオブジェクトに追加してください。",
1664
1845
  viewTypeUnavailable: "このオブジェクトには「{{field}}」として機能するフィールドがありません。",
1665
1846
  viewTypeUnavailableShort: "このオブジェクトではサポートされていません。",
@@ -1709,7 +1890,7 @@ const ja = {
1709
1890
  ufDropdown: "ドロップダウン",
1710
1891
  ufTabs: "タブ",
1711
1892
  ufToggle: "トグル",
1712
- ufAddField: "+ フィルターフィールドを追加...",
1893
+ ufAddField: "+ フィルターフィールドを追加…",
1713
1894
  ufNoFields: "利用可能なフィールドがありません",
1714
1895
  ufAddTab: "+ タブを追加",
1715
1896
  ufTabLabel: "ラベル",
@@ -1769,7 +1950,7 @@ const ja = {
1769
1950
  passwordPlaceholder: "パスワードを入力",
1770
1951
  forgotPasswordText: "パスワードをお忘れですか?",
1771
1952
  submitButton: "サインイン",
1772
- submittingButton: "サインイン中...",
1953
+ submittingButton: "サインイン中…",
1773
1954
  noAccountText: "アカウントをお持ちでないですか?",
1774
1955
  signUpText: "新規登録",
1775
1956
  errors: {
@@ -1777,6 +1958,18 @@ const ja = {
1777
1958
  invalidCredentials: "メールアドレスまたはパスワードが正しくありません。再試行してください。",
1778
1959
  emailNotVerified: "サインインする前にメールアドレスを確認してください。",
1779
1960
  },
1961
+ // objectui#3546 slice three — phone/OTP sign-in. `{seconds}` is LoginForm's own
1962
+ // literal `.replace()` hole, not i18next interpolation: keep the single braces.
1963
+ emailOrPhoneLabel: "メールアドレスまたは電話番号",
1964
+ emailOrPhonePlaceholder: "name@example.com または +1 555 000 0000",
1965
+ phoneLabel: "電話番号",
1966
+ phonePlaceholder: "+1 555 000 0000",
1967
+ otpCodeLabel: "確認コード",
1968
+ otpCodePlaceholder: "6 桁のコード",
1969
+ sendOtpButton: "コードを取得",
1970
+ resendOtpCountdownText: "{seconds} 秒後に再送信",
1971
+ usePhoneOtpText: "確認コードでサインイン",
1972
+ usePasswordSignInText: "パスワードでサインインする",
1780
1973
  },
1781
1974
  register: {
1782
1975
  title: "アカウントを作成",
@@ -1792,7 +1985,7 @@ const ja = {
1792
1985
  passwordMismatchError: "パスワードが一致しません",
1793
1986
  passwordTooShortError: "パスワードは8文字以上必要です",
1794
1987
  submitButton: "アカウント作成",
1795
- submittingButton: "アカウント作成中...",
1988
+ submittingButton: "アカウント作成中…",
1796
1989
  hasAccountText: "すでにアカウントをお持ちですか?",
1797
1990
  signInText: "サインイン",
1798
1991
  errors: {
@@ -1813,12 +2006,26 @@ const ja = {
1813
2006
  emailLabel: "メールアドレス",
1814
2007
  emailPlaceholder: "name@example.com",
1815
2008
  submitButton: "リセットリンクを送信",
1816
- submittingButton: "送信中...",
2009
+ submittingButton: "送信中…",
1817
2010
  successTitle: "メールをご確認ください",
1818
2011
  successDescription: "{{email}} にパスワードリセットリンクを送信しました。受信箱をご確認ください。",
1819
2012
  backToSignInText: "サインインに戻る",
1820
2013
  rememberPasswordText: "パスワードを覚えていますか?",
1821
2014
  signInText: "サインイン",
2015
+ // objectui#3546 slice three — the SMS reset branch of the same form.
2016
+ phoneLabel: "電話番号",
2017
+ phonePlaceholder: "+1 555 000 0000",
2018
+ otpCodeLabel: "確認コード",
2019
+ otpCodePlaceholder: "6 桁のコード",
2020
+ sendOtpButton: "コードを取得",
2021
+ resendOtpCountdownText: "{seconds} 秒後に再送信",
2022
+ newPasswordLabel: "新しいパスワード",
2023
+ newPasswordPlaceholder: "新しいパスワードを入力",
2024
+ resetButton: "パスワードをリセット",
2025
+ usePhoneResetText: "SMS コードでリセット",
2026
+ useEmailResetText: "メールでリセットする",
2027
+ phoneSuccessTitle: "パスワードをリセットしました",
2028
+ phoneSuccessDescription: "パスワードをリセットしました。新しいパスワードでサインインできます。",
1822
2029
  },
1823
2030
  resetPassword: {
1824
2031
  title: "新しいパスワードを設定",
@@ -1857,6 +2064,8 @@ const ja = {
1857
2064
  backToLogin: "ログインに戻る",
1858
2065
  checkSpam: "メールが届きませんか?スパムフォルダーを確認するか、サポートに連絡してください。",
1859
2066
  or: "または",
2067
+ // objectui#3546 slice three.
2068
+ resendUnavailable: "この環境ではメール配信が設定されていない可能性があります。問題が続く場合はサポートに連絡してください。",
1860
2069
  },
1861
2070
  setup: {
1862
2071
  welcomeTitle: "ObjectStackへようこそ",
@@ -1895,6 +2104,9 @@ const ja = {
1895
2104
  invalidDescription: "URLにデバイスコードが指定されていません。",
1896
2105
  loading: "読み込み中…",
1897
2106
  cancel: "キャンセル",
2107
+ // objectui#3546 slice three — device-authorization plugin switched off.
2108
+ disabledTitle: "デバイス認証が有効になっていません",
2109
+ disabledDescription: "このデプロイメントではデバイス認証が有効になっていないため、ここでこのデバイスを承認できません。",
1898
2110
  },
1899
2111
  shell: {
1900
2112
  tenantHostHint: "このワークスペースにサインインしています",
@@ -1934,6 +2146,29 @@ const ja = {
1934
2146
  },
1935
2147
  },
1936
2148
  },
2149
+ // objectui#3546 slice three — the /oauth/consent screen.
2150
+ oauth: {
2151
+ consent: {
2152
+ title: "{{appName}} がアカウントへのアクセスを求めています",
2153
+ request: "{{appName}} が許可を求めています{{suffix}}。",
2154
+ unknownApp: "あるアプリケーション",
2155
+ willAllow: "このアプリは次のことができます:",
2156
+ scope: {
2157
+ openid: "本人確認を行う",
2158
+ profile: "基本プロフィール(名前、画像)を読み取る",
2159
+ email: "メールアドレスを読み取る",
2160
+ offlineAccess: "サインインしたままにする(アクセスの更新)",
2161
+ },
2162
+ deny: "拒否",
2163
+ authorize: "許可",
2164
+ submitting: "許可中…",
2165
+ granted: "アクセスを許可しました",
2166
+ denied: "アクセスが拒否されました",
2167
+ noRedirect: "サーバーからリダイレクト URL が返されませんでした。",
2168
+ failed: "同意に失敗しました",
2169
+ footer: "アクセス権はアカウント設定からいつでも取り消せます。",
2170
+ },
2171
+ },
1937
2172
  profile: {
1938
2173
  title: "プロフィール",
1939
2174
  subtitle: "アカウント設定を管理します",
@@ -1995,6 +2230,8 @@ const ja = {
1995
2230
  invite: "メンバーを招待",
1996
2231
  members: "メンバー",
1997
2232
  settings: "ワークスペース設定",
2233
+ multiOrgDisabled: "このインスタンスでは新しい組織の作成が無効です。",
2234
+ createFailed: 'ワークスペースの作成に失敗しました',
1998
2235
  },
1999
2236
  help: {
2000
2237
  onThisPage: "このページの内容",
@@ -2005,7 +2242,7 @@ const ja = {
2005
2242
  },
2006
2243
  sidebar: {
2007
2244
  packageManagement: "パッケージ管理",
2008
- searchNavigation: "ナビゲーションを検索...",
2245
+ searchNavigation: "ナビゲーションを検索…",
2009
2246
  settings: "設定",
2010
2247
  help: "ヘルプ",
2011
2248
  helpTooltip: "ヘルプとドキュメント",
@@ -2029,8 +2266,8 @@ const ja = {
2029
2266
  switchObject: "オブジェクトを切り替え",
2030
2267
  connection: {
2031
2268
  connected: "接続済み",
2032
- connecting: "接続中...",
2033
- reconnecting: "再接続中...",
2269
+ connecting: "接続中…",
2270
+ reconnecting: "再接続中…",
2034
2271
  disconnected: "切断されました",
2035
2272
  error: "接続エラー",
2036
2273
  },
@@ -2069,6 +2306,14 @@ const ja = {
2069
2306
  publishing: "公開しています…",
2070
2307
  published: "公開しました。変更が反映されています。",
2071
2308
  publishFailed: "公開に失敗しました",
2309
+ // objectui#3546 slice six — seedWarn は console.ai.seedWarn と同一の英文なので
2310
+ // 同じ訳を流用。capabilityWarn の「:」は全角:後続が日本語の文だから
2311
+ // (このパックの中間コロンは、値が単一トークンなら半角、文なら全角)。
2312
+ nothing: "公開するものはありません。",
2313
+ probeWarn: "公開しましたが、検証で問題が見つかりました。",
2314
+ seedWarn: "公開しましたが、一部のサンプルデータを読み込めませんでした。",
2315
+ publishedVerified: "公開して検証しました — サンプルデータ {{count}} 行が反映されています。",
2316
+ capabilityWarn: "作成時チェック:{{count}} 件のケイパビリティ参照が解決できません。",
2072
2317
  },
2073
2318
  title: "ホーム",
2074
2319
  subtitle: "ワークスペースのダッシュボード",
@@ -2082,7 +2327,7 @@ const ja = {
2082
2327
  title: "対応が必要な項目",
2083
2328
  empty: "すべて対応済みです",
2084
2329
  },
2085
- loading: "ワークスペースを読み込み中...",
2330
+ loading: "ワークスペースを読み込み中…",
2086
2331
  recent: "最近",
2087
2332
  starred: "スター付き",
2088
2333
  welcome: "ObjectUI へようこそ",
@@ -2143,6 +2388,9 @@ const ja = {
2143
2388
  roles: "ロール",
2144
2389
  configuration: "構成",
2145
2390
  createApp: "アプリを作成",
2391
+ administration: "管理",
2392
+ datasources: "データソース",
2393
+ documentation: "ドキュメント",
2146
2394
  },
2147
2395
  appSwitcher: {
2148
2396
  switchApplication: "アプリケーションを切り替え",
@@ -2182,7 +2430,7 @@ const ja = {
2182
2430
  search: {
2183
2431
  title: "検索",
2184
2432
  back: "戻る",
2185
- placeholder: "オブジェクト、ダッシュボード、ページ、レポートを検索...",
2433
+ placeholder: "オブジェクト、ダッシュボード、ページ、レポートを検索…",
2186
2434
  inputAriaLabel: "オブジェクト、ダッシュボード、ページ、レポートを検索",
2187
2435
  resultsCount: "\"{{query}}\" の結果 {{count}} 件",
2188
2436
  resultsCountPlural: "\"{{query}}\" の結果 {{count}} 件",
@@ -2201,6 +2449,7 @@ const ja = {
2201
2449
  empty: {
2202
2450
  objectNotFound: "オブジェクトが見つかりません",
2203
2451
  objectNotFoundDescription: "オブジェクト「{{name}}」の定義が見つかりません。設定を確認するか、有効なオブジェクトを選択してください。",
2452
+ interfacePageSourceMissing: "このインターフェースページは「{{name}}」を参照していますが、利用できません。",
2204
2453
  pageNotFound: "ページが見つかりません",
2205
2454
  pageNotFoundDescription: "ページ「{{name}}」が見つかりません。削除または名前変更された可能性があります。",
2206
2455
  dashboardNotFound: "ダッシュボードが見つかりません",
@@ -2209,6 +2458,11 @@ const ja = {
2209
2458
  reportNotFoundDescription: "レポート「{{name}}」が見つかりません。削除または名前変更された可能性があります。",
2210
2459
  noAppsConfigured: "アプリが設定されていません",
2211
2460
  noAppsConfiguredDescription: "登録されているアプリケーションがありません。最初のアプリを作成するか、システム設定を参照してください。",
2461
+ appNotAvailable: "アプリを利用できません",
2462
+ appNotAvailableDescription: "このアプリはまだ利用できません — まだ公開処理中の可能性があります。しばらくしてからもう一度お試しください。",
2463
+ appAccessDenied: "このアプリへのアクセス権限がありません",
2464
+ appAccessDeniedDescription: "このアプリは存在しますが、お使いのアカウントには開く権限がありません。管理者にアクセス権の付与を依頼してください。",
2465
+ appAccessDeniedHome: "ホームに戻る",
2212
2466
  createFirstApp: "最初のアプリを作成",
2213
2467
  systemSettings: "システム設定",
2214
2468
  back: "戻る",
@@ -2280,7 +2534,7 @@ const ja = {
2280
2534
  deleteFailed: "ビューの削除に失敗しました",
2281
2535
  },
2282
2536
  dashboardActions: {
2283
- pdfPreparing: "PDFエクスポートを準備中…",
2537
+ printDialogOpening: "ブラウザーの印刷ダイアログを開いています(PDF エクスポートではありません)",
2284
2538
  exportFailed: "エクスポートに失敗しました:{{message}}",
2285
2539
  forecastSoon: "予測ビューは近日公開予定",
2286
2540
  },
@@ -2324,111 +2578,7 @@ const ja = {
2324
2578
  first: "最初",
2325
2579
  },
2326
2580
  editor: {
2327
- breadcrumb: "設定",
2328
- basic: "基本",
2329
- title: "タイトル",
2330
- titlePlaceholder: "例:四半期別パイプライン",
2331
- description: "説明",
2332
- descriptionPlaceholder: "このレポートは何を示しますか?",
2333
- type: "レポートタイプ",
2334
- typeTabular: "テーブル — フラットなリスト",
2335
- typeSummary: "サマリー — 合計付きグループ化",
2336
- typeMatrix: "マトリックス — 行 × 列のピボット",
2337
- typeJoined: "結合 — 複数ブロック",
2338
- typeHelp: "表示したい内容に合うレイアウトを選択してください。",
2339
- data: "データ",
2340
- objectName: "データソース",
2341
- objectNamePlaceholder: "例:opportunity",
2342
- objectNameHelp: "このレポートはどのオブジェクトを照会しますか?",
2343
- limit: "行数の上限",
2344
- limitPlaceholder: "例:100",
2345
- columns: "列",
2346
- columnsHint: "列として表示するフィールドを選択します。サマリーやマトリックスでは集計(合計、件数…)を追加できます。",
2347
- filters: "フィルタ",
2348
- filtersHint: "このレポートに含める行を絞り込みます。",
2349
- filtersComplex: "このレポートには高度なフィルタが含まれており、ここでは編集できません。保存時は変更されません。",
2350
- groupBy: "グループ化",
2351
- groupByHint: "データをグループ化して小計を計算します。",
2352
- rows: "行",
2353
- rowsHint: "これらのフィールドで行をグループ化します。",
2354
- columnsAxis: "列",
2355
- columnsAxisHint: "これらのフィールドを上部でピボット表示します。",
2356
- values: "値",
2357
- valuesHint: "各セルに表示される数値です。1 つ以上のフィールドを選び、集計(合計、件数…)を指定してください。",
2358
- grouping: "グループ化項目",
2359
- addGrouping: "グループ化を追加",
2360
- dateGranularity: "日付の粒度",
2361
- dateGranularityNone: "(元の値を使用)",
2362
- day: "日",
2363
- week: "週",
2364
- month: "月",
2365
- quarter: "四半期",
2366
- year: "年",
2367
- sortAsc: "昇順",
2368
- sortDesc: "降順",
2369
- chart: "チャート",
2370
- chartHint: "テーブルの横に表示できる任意の可視化です。",
2371
- chartType: "チャートの種類",
2372
- chartTitle: "チャートのタイトル",
2373
- chartTitlePlaceholder: "未指定の場合はレポートのタイトル",
2374
- chartXAxis: "X 軸(カテゴリ)",
2375
- chartYAxis: "Y 軸(値)",
2376
- chartShowLegend: "凡例を表示",
2377
- chartShowDataLabels: "データラベルを表示",
2378
- chartNone: "(チャートなし)",
2379
- chartBar: "棒",
2380
- chartLine: "折れ線",
2381
- chartArea: "エリア",
2382
- chartPie: "円",
2383
- chartDonut: "ドーナツ",
2384
- chartFunnel: "ファネル",
2385
- validationNeedsObject: "列を追加する前にデータソースを選択してください。",
2386
- validationMatrixNeedsRowsCols: "マトリックスレポートには少なくとも 1 つの行と 1 つの列が必要です。",
2387
- validationSummaryNeedsRows: "サマリーレポートには少なくとも 1 つのグループ化フィールドが必要です。",
2388
- blocks: "ブロック",
2389
- blocksHint: "各ブロックは独立したテーブルまたはチャートです。ブロックのフィルタはレポートのフィルタと AND で結合されます。",
2390
- addBlock: "ブロックを追加",
2391
- removeBlock: "ブロックを削除",
2392
- blockName: "ブロック名",
2393
- blockNamePlaceholder: "一意のブロック名",
2394
- blockLabel: "表示ラベル",
2395
- blockLabelPlaceholder: "ブロックの上に表示されます",
2396
- blockDescription: "説明",
2397
- blockDescriptionPlaceholder: "このブロックの任意の補足説明",
2398
- validationJoinedNeedsBlocks: "結合レポートには少なくとも 1 つのブロックが必要です。",
2399
- validationBlockNameRequired: "各ブロックには空でない名前が必要です。",
2400
- validationBlockNameDuplicate: "ブロック名はレポート内で一意である必要があります。",
2401
- validationBlockNeedsColumns: "各ブロックには少なくとも 1 つの列が必要です。",
2402
- noneOption: "(なし)",
2403
- addCondition: "条件を追加",
2404
- combineLogic: "結合方法",
2405
- opContains: "含む",
2406
- opIsEmpty: "空である",
2407
- opIsNotEmpty: "空でない",
2408
- formatAuto: "自動",
2409
- formatCurrency: "通貨",
2410
- formatPercent: "パーセント",
2411
- formatInteger: "整数",
2412
- formatDate: "日付",
2413
- formatDatetime: "日付と時刻",
2414
- columnLabelPlaceholder: "ラベルを上書き",
2415
- aggregateColumn: "集計",
2416
- formatColumn: "フォーマット",
2417
- addColumns: "列を追加",
2418
- searchFields: "フィールドを検索…",
2419
- noMatchingFields: "検索条件に一致するフィールドはありません。",
2420
- noFieldsAvailable: "利用可能なフィールドがありません。",
2421
- columnsCount: "{n} 列選択中",
2422
- columnsEmpty: "列がまだ選択されていません。",
2423
- fieldPickerTitle: "フィールドを選択",
2424
- fieldPickerDescription: "追加するフィールドを1つ以上選択してください。検索ボックスでリストを絞り込めます。",
2425
- fieldPickerChangeTitle: "フィールドを変更",
2426
- fieldPickerAddGroupingTitle: "グループ化を追加",
2427
- fieldPickerEmpty: "(フィールドを選択)",
2428
- fieldPickerSelected: "{n} 件選択中",
2429
- fieldPickerClear: "選択を解除",
2430
- fieldPickerAdd: "追加",
2431
- fieldPickerAddN: "{n} 件追加",
2581
+ panelTitle: "レポートを編集",
2432
2582
  },
2433
2583
  },
2434
2584
  organizations: {
@@ -2445,6 +2595,140 @@ const ja = {
2445
2595
  emptyDescription: "最初の組織を作成して開始してください。",
2446
2596
  noMatches: "検索条件に一致する組織がありません。",
2447
2597
  },
2598
+ organization: {
2599
+ roles: {
2600
+ owner: 'オーナー',
2601
+ admin: '管理者',
2602
+ delegatedAdmin: '委任管理者',
2603
+ member: 'メンバー',
2604
+ },
2605
+ errors: {
2606
+ notAllowedToInvite: 'この組織にユーザーを招待する権限がありません。',
2607
+ notAllowedToInviteWithRole: 'このロールでユーザーを招待する権限がありません。',
2608
+ alreadyInvited: 'このユーザーはすでにこの組織に招待されています。',
2609
+ organizationExists: 'その組織はすでに存在します。',
2610
+ slugTaken: 'そのスラッグはすでに使用されています。',
2611
+ notAllowedToCreate: '新しい組織を作成する権限がありません。',
2612
+ notTheRecipient: 'この招待の宛先はあなたではありません。',
2613
+ invitationNotFound: 'この招待は存在しないか、有効期限が切れています。',
2614
+ unknown: '問題が発生しました。もう一度お試しください。',
2615
+ },
2616
+ backToList: "組織一覧に戻る",
2617
+ notFound: "組織が見つかりません",
2618
+ notFoundDescription: "この組織は存在しないか、アクセス権がありません。",
2619
+ tabs: {
2620
+ members: "メンバー",
2621
+ invitations: "招待",
2622
+ settings: "設定",
2623
+ },
2624
+ members: {
2625
+ title: "メンバー",
2626
+ inviteMember: "メンバーを招待",
2627
+ inviteRestrictedNote: "組織の管理者のみがメンバーを招待できます。",
2628
+ removeMember: "メンバーを削除",
2629
+ removeConfirmTitle: "メンバーを削除しますか?",
2630
+ removeConfirmDescription: "{{name}} を組織から削除します。アクセス権は直ちに失われます。",
2631
+ removeConfirmAction: "削除",
2632
+ memberRemoved: "メンバーを削除しました",
2633
+ removeFailed: "メンバーの削除に失敗しました",
2634
+ roleUpdated: "ロールを更新しました",
2635
+ roleUpdateFailed: "ロールの更新に失敗しました",
2636
+ memberActions: 'メンバーの操作',
2637
+ loadFailed: 'メンバーの読み込みに失敗しました',
2638
+ },
2639
+ invitations: {
2640
+ title: "招待",
2641
+ empty: "招待はありません。",
2642
+ expiresAt: "有効期限",
2643
+ linkCopied: "招待リンクをコピーしました",
2644
+ copyFailed: "リンクのコピーに失敗しました",
2645
+ canceled: "招待を取り消しました",
2646
+ cancelFailed: "招待の取り消しに失敗しました",
2647
+ cancelTitle: "招待を取り消しますか?",
2648
+ cancelDescription: "{{email}} 宛ての招待が無効になります。",
2649
+ cancelAction: "招待を取り消す",
2650
+ inviteTitle: "メンバーを招待",
2651
+ inviteDescription: "この組織への招待が相手に送信されます。",
2652
+ emailLabel: "メールアドレス",
2653
+ roleLabel: "ロール",
2654
+ placementLabel: "配属(任意)",
2655
+ placementDescription: "招待が承諾されたときに適用されます。委任できる事業単位と役職のみが表示されます。",
2656
+ businessUnitLabel: "事業単位",
2657
+ businessUnitPlaceholder: "配属なし",
2658
+ positionsLabel: "役職",
2659
+ sendInvite: "招待を送信",
2660
+ sentTitle: "招待を作成しました",
2661
+ sentDescription: "以下のリンクを招待相手に共有してください。承諾にはサインインが必要です。",
2662
+ linkLabel: "承諾リンク",
2663
+ invitedAs: "{{email}} を {{role}} として招待しました",
2664
+ copyLinkLabel: '招待リンクをコピー',
2665
+ loadFailed: '招待の読み込みに失敗しました',
2666
+ inviteFailed: 'メンバーの招待に失敗しました',
2667
+ status: {
2668
+ all: "すべて",
2669
+ pending: "待機中",
2670
+ accepted: "承諾済み",
2671
+ rejected: "辞退済み",
2672
+ canceled: "取消済み",
2673
+ },
2674
+ },
2675
+ settings: {
2676
+ generalTitle: "一般",
2677
+ generalDescription: "組織の情報を更新します。",
2678
+ readOnlyNote: "設定を変更できるのはオーナーのみです。",
2679
+ nameLabel: "組織名",
2680
+ slugLabel: "スラッグ",
2681
+ logoLabel: "ロゴ",
2682
+ logoUpload: "アップロード",
2683
+ logoReplace: "変更",
2684
+ logoClear: "削除",
2685
+ logoUploaded: "ロゴをアップロードしました。保存すると反映されます",
2686
+ logoUploadFailed: "ロゴのアップロードに失敗しました",
2687
+ save: "変更を保存",
2688
+ saved: "設定を保存しました",
2689
+ saveFailed: "設定の保存に失敗しました",
2690
+ leaveTitle: "組織から脱退",
2691
+ leaveDescription: "この組織へのアクセス権を失います。",
2692
+ leaveAction: "脱退",
2693
+ leaveConfirmTitle: "組織から脱退しますか?",
2694
+ leaveConfirmDescription: "{{name}} から脱退してもよろしいですか?アクセス権は直ちに失われます。",
2695
+ leaveConfirmAction: "脱退",
2696
+ leftOrg: "組織から脱退しました",
2697
+ leaveFailed: "組織からの脱退に失敗しました",
2698
+ dangerZone: "危険な操作",
2699
+ deleteTitle: "組織を削除",
2700
+ deleteDescription: "この組織とすべてのデータを完全に削除します。",
2701
+ deleteAction: "削除",
2702
+ deleteConfirmTitle: "組織を削除しますか?",
2703
+ deleteConfirmDescription: "この操作は取り消せません。すべてのデータが完全に削除されます。確認のため組織のスラッグを入力してください。",
2704
+ deleteConfirmSlugLabel: "確認のため「{{slug}}」と入力してください",
2705
+ deleteConfirmAction: "組織を削除",
2706
+ deleted: "組織を削除しました",
2707
+ deleteFailed: "組織の削除に失敗しました",
2708
+ },
2709
+ accept: {
2710
+ title: "招待が届いています",
2711
+ description: "{{orgName}} に {{role}} として招待されています。",
2712
+ errorTitle: "招待を利用できません",
2713
+ goToOrgs: "組織一覧へ",
2714
+ loading: "招待を読み込んでいます…",
2715
+ organization: "組織",
2716
+ role: "ロール",
2717
+ expiresAt: "有効期限",
2718
+ accept: "招待を承諾",
2719
+ accepted: "招待を承諾しました",
2720
+ acceptFailed: "招待の承諾に失敗しました",
2721
+ decline: "辞退",
2722
+ declined: "招待を辞退しました",
2723
+ declineFailed: "招待の辞退に失敗しました",
2724
+ },
2725
+ switcher: {
2726
+ label: "組織を切り替え",
2727
+ groupLabel: "作業中の組織",
2728
+ groupHint: "新しいレコードはここに作成されます。ビューにはすべての組織のデータが表示されます。",
2729
+ manageMembers: "メンバーを管理",
2730
+ },
2731
+ },
2448
2732
  notifications: {
2449
2733
  regionLabel: "通知",
2450
2734
  groupCount: "通知 {{count}} 件",
@@ -2458,6 +2742,9 @@ const ja = {
2458
2742
  viewApprovals: "承認を表示",
2459
2743
  noPendingApprovals: "承認待ちはありません",
2460
2744
  openApprovalsInbox: "承認ボックスを開く",
2745
+ badgeTotal: "合計 {{total}} 件",
2746
+ badgeNotifications: "通知 {{unread}} 件",
2747
+ badgeApprovals: "承認待ち {{approvals}} 件",
2461
2748
  emptyUnread: "既読にしました",
2462
2749
  filterUnread: "未読",
2463
2750
  filterAll: "すべて",
@@ -2744,6 +3031,7 @@ const ja = {
2744
3031
  dismiss: "閉じる",
2745
3032
  openOnCloud: "クラウドで開く",
2746
3033
  backHome: "ホームに戻る",
3034
+ updateTo: "更新",
2747
3035
  },
2748
3036
  install: {
2749
3037
  dialogTitle: "{{name}} をインストール",
@@ -2760,6 +3048,37 @@ const ja = {
2760
3048
  localManifestConflict: "{{message}}\nヒント:ローカルアプリがすでにこのmanifest_idを使用しています。最初にobjectstack.config.tsから削除してください。",
2761
3049
  localUnauthorized: "最初にこのランタイムにサインインしてから再試行してください。",
2762
3050
  localMarketplaceUnavailable: "このランタイムにはOS_CLOUD_URLが設定されていないため、マーケットプレイスカタログにアクセスできません。",
3051
+ updateTo: "更新 → v{{version}}",
3052
+ installedVersion: "インストール済み v{{version}}",
3053
+ },
3054
+ // objectui#3546 — the MarketplacePage "Your organization" strip.
3055
+ org: {
3056
+ heading: "組織",
3057
+ install: "インストール",
3058
+ installed: "{{name}} をインストールしました",
3059
+ installedBadge: "インストール済み",
3060
+ installing: "インストール中…",
3061
+ },
3062
+ // ADR-0025 PD4 §3.5/§3.11 — the pre-install consent panel
3063
+ // (PluginDisclosure.tsx). `runtime` is a CLOSED enum: spec
3064
+ // PluginRuntimeSchema = z.enum(['node', 'sandbox', 'worker']).
3065
+ disclosure: {
3066
+ containsCode: "このパッケージにはコードが含まれています",
3067
+ reviewed: "審査・承認済み",
3068
+ unreviewed: "未審査",
3069
+ signed: "署名済み",
3070
+ grantsIntro: "インストール時に、このパッケージには次の権限が付与されます:",
3071
+ services: "プラットフォームサービス",
3072
+ hooks: "ライフサイクルフック",
3073
+ network: "ネットワークアクセス",
3074
+ fs: "ファイルシステムアクセス",
3075
+ noPermissions: "特別な権限は要求しません。",
3076
+ acknowledge: "このパッケージがコードを実行し、上記の権限を取得することを理解しました。",
3077
+ runtime: {
3078
+ node: "プロセス内 · 完全信頼",
3079
+ sandbox: "サンドボックス",
3080
+ worker: "プロセス外",
3081
+ },
2763
3082
  },
2764
3083
  uninstall: {
2765
3084
  confirm: "このランタイムから {{manifestId}} v{{version}} をアンインストールしますか?\n\nキャッシュされたマニフェストが削除されます。アプリは次の再起動まで実行中のカーネルに読み込まれたままになります。",
@@ -3009,6 +3328,34 @@ const ja = {
3009
3328
  confirmNote: '公開すると、このパッケージの保留中ドラフト {{count}} 件がまとめて(アトミックに)公開されます。',
3010
3329
  publishConfirm: 'すべて公開',
3011
3330
  },
3331
+ // ADR-0045 — the materialized-but-unlisted app banner
3332
+ // (UnpublishedAppBar.tsx), sibling of draftBar above.
3333
+ unpublishedBar: {
3334
+ message: '未公開のアプリ — 機能はすべて使えますが、ビルダーにしか表示されません。公開するとユーザーに表示されます。',
3335
+ publish: '公開',
3336
+ publishing: '公開中…',
3337
+ published: '公開しました。アプリがユーザーに表示されます。',
3338
+ publishFailed: '公開に失敗しました',
3339
+ },
3340
+ // ADR-0067 — the append-only build/revert timeline (CommitTimeline.tsx);
3341
+ // `button` is the banner's entry point into it.
3342
+ history: {
3343
+ button: '履歴',
3344
+ title: 'ビルド履歴',
3345
+ description: 'このアプリのすべての変更を新しい順に表示します。任意のステップを取り消して元に戻せます — 公開の確認は不要です。',
3346
+ loadFailed: '履歴を読み込めませんでした:',
3347
+ loadFailedUnavailable: 'コミットストアに一時的に接続できません — この読み取りは実行されなかったため、履歴は表示されません。しばらくしてから再試行してください。',
3348
+ loading: '履歴を読み込み中…',
3349
+ empty: 'このアプリの履歴はまだありません。',
3350
+ revertLabel: '変更を取り消しました',
3351
+ applyLabel: 'ビルドによる変更',
3352
+ revert: '取り消し',
3353
+ items: '件',
3354
+ revertAction: '取り消す',
3355
+ reverted: '取り消しました — 変更を元に戻しました。',
3356
+ revertFailed: '取り消しに失敗しました',
3357
+ revertUnavailable: 'コミットストアに一時的に接続できません — この取り消しは適用されていない可能性があります。履歴を開き直して確認してから再試行してください。',
3358
+ },
3012
3359
  },
3013
3360
  filterBuilder: {
3014
3361
  where: "条件",
@@ -3087,5 +3434,57 @@ const ja = {
3087
3434
  statusIdle: "アイドル",
3088
3435
  statusAway: "離席中",
3089
3436
  },
3437
+ wizard: {
3438
+ missingRequired: "必須項目を入力してください: {{fields}}",
3439
+ },
3440
+ appManagement: {
3441
+ title: "アプリケーション",
3442
+ subtitle: "設定済みのアプリケーションをすべて管理します",
3443
+ newApp: "新しいアプリ",
3444
+ searchLabel: "アプリを検索",
3445
+ searchPlaceholder: "アプリを検索…",
3446
+ selectedCount: "{{n}} 件選択中",
3447
+ bulkEnable: "有効化",
3448
+ bulkDisable: "無効化",
3449
+ selectAll: "すべて選択({{n}})",
3450
+ empty: "アプリが見つかりません。",
3451
+ defaultBadge: "デフォルト",
3452
+ active: "有効",
3453
+ inactive: "無効",
3454
+ selectApp: "{{name}} を選択",
3455
+ openApp: "アプリを開く",
3456
+ openAppNamed: "{{name}} を開く",
3457
+ editApp: "アプリを編集",
3458
+ editAppNamed: "{{name}} を編集",
3459
+ editWithAi: "AI で編集",
3460
+ editWithAiNamed: "{{name}} を AI で編集",
3461
+ enableApp: "アプリを有効化",
3462
+ disableApp: "アプリを無効化",
3463
+ enableAppNamed: "{{name}} を有効化",
3464
+ disableAppNamed: "{{name}} を無効化",
3465
+ setDefault: "デフォルトに設定",
3466
+ setDefaultNamed: "{{name}} をデフォルトに設定",
3467
+ deleteApp: "アプリを削除",
3468
+ deleteAppNamed: "{{name}} を削除",
3469
+ confirmDelete: "もう一度クリックすると削除します",
3470
+ confirmDeleteNamed: "{{name}} の削除を確認",
3471
+ toast: {
3472
+ noClient: "メタデータサービスに接続できません",
3473
+ unknownError: "不明なエラー",
3474
+ appEnabled: "{{name}} を有効化しました",
3475
+ appDisabled: "{{name}} を無効化しました",
3476
+ toggleFailed: "アプリの状態の切り替えに失敗しました:{{reason}}",
3477
+ setDefaultDone: "{{name}} をデフォルトに設定しました",
3478
+ setDefaultFailed: "デフォルトアプリの設定に失敗しました:{{reason}}",
3479
+ appDeleted: "{{name}} を削除しました",
3480
+ deleteFailed: "アプリの削除に失敗しました:{{reason}}",
3481
+ bulkEnabled: "{{n}} 件のアプリを有効化しました",
3482
+ bulkDisabled: "{{n}} 件のアプリを無効化しました",
3483
+ bulkFailed: "{{n}} 件失敗しました:{{details}}",
3484
+ bulkFailureEntry: "{{name}}({{reason}})",
3485
+ bulkFailureJoiner: "、",
3486
+ bulkOperationFailed: "一括操作に失敗しました:{{reason}}",
3487
+ },
3488
+ },
3090
3489
  };
3091
3490
  export default ja;