remote-webview-debugger 0.0.0-stage → 0.2.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 (57) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/CHANGELOG.zh-CN.md +66 -0
  3. package/LICENSE +21 -0
  4. package/NOTICE +17 -0
  5. package/README.ar.md +185 -0
  6. package/README.de.md +169 -0
  7. package/README.es.md +169 -0
  8. package/README.fr.md +169 -0
  9. package/README.ja.md +169 -0
  10. package/README.ko.md +169 -0
  11. package/README.md +167 -2
  12. package/README.pt-BR.md +169 -0
  13. package/README.ru.md +169 -0
  14. package/README.zh-CN.md +169 -0
  15. package/README.zh-TW.md +169 -0
  16. package/dist/index.d.ts +368 -0
  17. package/dist/index.mjs +8319 -0
  18. package/dist/index.mjs.map +1 -0
  19. package/dist/locales/ar.d.ts +4 -0
  20. package/dist/locales/ar.js +2 -0
  21. package/dist/locales/ar.mjs +150 -0
  22. package/dist/locales/ar.mjs.map +1 -0
  23. package/dist/locales/de.d.ts +4 -0
  24. package/dist/locales/de.js +2 -0
  25. package/dist/locales/de.mjs +150 -0
  26. package/dist/locales/de.mjs.map +1 -0
  27. package/dist/locales/es.d.ts +4 -0
  28. package/dist/locales/es.js +2 -0
  29. package/dist/locales/es.mjs +150 -0
  30. package/dist/locales/es.mjs.map +1 -0
  31. package/dist/locales/fr.d.ts +4 -0
  32. package/dist/locales/fr.js +2 -0
  33. package/dist/locales/fr.mjs +150 -0
  34. package/dist/locales/fr.mjs.map +1 -0
  35. package/dist/locales/ja.d.ts +4 -0
  36. package/dist/locales/ja.js +2 -0
  37. package/dist/locales/ja.mjs +150 -0
  38. package/dist/locales/ja.mjs.map +1 -0
  39. package/dist/locales/ko.d.ts +4 -0
  40. package/dist/locales/ko.js +2 -0
  41. package/dist/locales/ko.mjs +156 -0
  42. package/dist/locales/ko.mjs.map +1 -0
  43. package/dist/locales/pt.d.ts +4 -0
  44. package/dist/locales/pt.js +2 -0
  45. package/dist/locales/pt.mjs +150 -0
  46. package/dist/locales/pt.mjs.map +1 -0
  47. package/dist/locales/ru.d.ts +4 -0
  48. package/dist/locales/ru.js +2 -0
  49. package/dist/locales/ru.mjs +150 -0
  50. package/dist/locales/ru.mjs.map +1 -0
  51. package/dist/locales/zh-TW.d.ts +4 -0
  52. package/dist/locales/zh-TW.js +2 -0
  53. package/dist/locales/zh-TW.mjs +150 -0
  54. package/dist/locales/zh-TW.mjs.map +1 -0
  55. package/dist/sdk.js +42 -0
  56. package/dist/sdk.js.map +1 -0
  57. package/package.json +76 -4
@@ -0,0 +1,2 @@
1
+ /*! remote-webview-debugger sdk v0.2.0 | locale fr */
2
+ (function(){let e={id:`fr`,name:`Français`,dir:`ltr`,ui:{levels:{observe:`Consultation seule`,interact:`Consultation et interaction`,advanced:`Avancé (exécuter des scripts, lire le stockage)`},attachLevels:{observe:`Consultation seule`,interact:`Consultation et interaction`,advanced:`Avancé (en plus\xA0: exécuter des scripts, lire le stockage)`},state:{none:`Inactif\xA0: aucune IA connectée`,observe:`L’IA consulte cette page`,agent:`L’IA a la main\xA0; vos actions sont suspendues`,user:`Vous avez repris la main\xA0; l’IA est en pause`},link:{connecting:`Connexion`,online:`En ligne`,offline:`Hors ligne`},connecting:`Connexion…`,helpPending:`En assistance`,copy:`Copier`,copied:`Copié`,noteHelp:`Assistance demandée. Le développeur vous retrouvera grâce à ce code d’appareil.`,noteAuto:`Autorisation automatique activée\xA0: l’IA se connecte sans vous demander. Vous pouvez reprendre la main ou terminer à tout moment.`,noteShare:`Communiquez ce code d’appareil au développeur. L’IA vous demandera avant de se connecter, et vous pourrez reprendre la main ou terminer à tout moment.`,help:`Demander une assistance`,cancelHelp:`Annuler la demande`,collapse:`Masquer`,deviceCode:`Code d’appareil`,barViewing:`L’IA consulte`,barAgent:`L’IA agit`,barUser:`À vous`,connectedFor:e=>`Connecté · ${e}`,takeover:`Reprendre`,handback:`Rendre`,end:`Terminer`,autoTitle:`Autoriser l’IA automatiquement`,autoOn:e=>`Connexion sans demande · ${e}`,autoOff:`Me demander chaque fois que l’IA veut se connecter`,lockTitle:`Verrouiller l’écran quand l’IA est connectée`,lockOn:`Vos touchers et balayages sont bloqués tant que l’IA est connectée`,lockOff:`Vous pouvez toujours toucher et faire défiler\xA0; évitez de gêner l’IA`,lockedToast:`Écran verrouillé quand l’IA est connectée`,unlockedToast:`Écran déverrouillé quand l’IA est connectée`,autoOffToast:`L’IA vous demandera avant de se connecter`,autoDialogTitle:`Activer l’autorisation automatique\xA0?`,autoDialogText:`Quand l’IA demande à se connecter à cet appareil, elle se connecte immédiatement avec l’accès choisi ci-dessous. Un avis s’affiche à chaque fois\xA0; vous pouvez reprendre la main ou terminer à tout moment, et désactiver cette option ici.`,turnOn:`Activer`,cancel:`Annuler`,autoOnToast:e=>`Autorisation auto · ${e}`,countdown:e=>`Refus automatique dans ${e} s`,agentName:`Assistant IA`,autoAllowedToast:(e,t)=>`Accès auto pour « ${e} » · ${t}`,attachTitle:`L’IA souhaite se connecter`,attachText:e=>`« ${e} » souhaite consulter cette page. Autoriser ?`,confirmTitle:`Confirmation requise`,confirmText:e=>`L’IA souhaite ${e}. Autoriser ?`,allow:`Autoriser`,deny:`Refuser`},action:{quote:e=>`« ${e} »`,click:e=>`cliquer sur ${e}`,enterActivate:e=>`appuyer sur Enter pour activer ${e}`,enterSubmit:e=>`appuyer sur Enter pour envoyer ${e}`},agent:{missingParam:e=>`Paramètre manquant : ${e}`,notString:e=>`Le paramètre ${e} doit être une chaîne`,unknownMethod:e=>`Méthode inconnue : ${e}`,needLevel:e=>`Nécessite le niveau ${e}`,takenOver:`L’utilisateur a repris la main\xA0; attendez qu’il vous la rende`,userDenied:`L’utilisateur a refusé cette action`,confirmBusy:`L’utilisateur n’a pas encore confirmé l’action précédente`,unknownModifier:e=>`Touche de modification inconnue : ${e}`,unknownKey:e=>`Touche inconnue : ${e}`,refNotInSnapshot:e=>`ref=${e} ne figure pas dans le dernier instantané ; prenez un nouvel instantané`,refDetached:e=>`L’élément de ref=${e} n’est plus sur la page ; prenez un nouvel instantané`,queryNeedsCriteria:`Au moins un critère parmi text, role ou name est requis`,noSuchRecord:e=>`Aucun enregistrement seq=${e} dans le journal de session (il a peut-être été supprimé)`,noSuchSession:e=>`Aucun journal de session ${e} sur cet appareil (seuls les 3 derniers lancements sont conservés)`,noSessionLog:`Aucun journal de session sur cet appareil pour l’instant (le projet a peut-être désactivé l’enregistrement, ou la page a passé run({ record: false }))`,sessionLogUnavailable:`IndexedDB n’est pas disponible sur cette page\xA0: pas de journal de session`,readOnly:e=>`${e} est en lecture seule`,isSelect:e=>`${e} est une liste déroulante ; utilisez rwd.select`,notFillable:e=>`${e} n’est pas un champ de texte et ne peut pas être rempli`,notSelect:e=>`${e} n’est pas une liste déroulante (select) ; utilisez click`,singleSelect:`Cette liste déroulante n’accepte qu’une seule option`,noSuchOption:(e,t)=>`La liste déroulante n’a pas d’option « ${e} » ; options disponibles : ${t.join(`, `)}`,optionDisabled:e=>`L’option « ${e} » est désactivée`,badUrl:e=>`URL non valide : ${e}`,httpOnly:`Seules les URL http(s) peuvent être ouvertes`,textAppearTimeout:e=>`Délai dépassé en attendant l’apparition du texte « ${e} »`,textGoneTimeout:e=>`Délai dépassé en attendant la disparition du texte « ${e} »`,badFunction:e=>`Impossible d’analyser function : ${e}`,notAFunction:`function doit être une expression de fonction, par exemple "() => document.title"`,elementDetached:e=>`L’élément ${e} n’est plus sur la page ; prenez un nouvel instantané`,notActionable:(e,t)=>`Impossible d’agir sur l’élément ${e} : ${t}`,notVisible:e=>`L’élément ${e} n’est pas visible`,reasonMoving:`sa position change sans cesse (il est peut-être animé)`,reasonOffscreen:`il est en dehors de la fenêtre d’affichage`,reasonObscured:(e,t)=>`le point de clic est recouvert par ${e} (ref=${t} ; cliquez directement dessus, par exemple sur le fond d’une fenêtre contextuelle pour la fermer)`,overlayHeader:`[Superpositions] Ces éléments recouvrent la page. Si un clic est bloqué, cliquez directement dessus (par exemple sur le fond pour fermer une fenêtre contextuelle)\xA0:`,overlayMask:(e,t,n)=>`- fond ${e}, couvre ${t} % de la fenêtre d’affichage [ref=${n}]`,overlayLayer:(e,t,n,r)=>`- calque ${e}${t?` « ${t} »`:``}, couvre ${n} % de la fenêtre d’affichage [ref=${r}]`,reasonHidden:`il n’est pas visible`,reasonDisabled:`il est désactivé`,storageUnavailable:e=>`${e}Storage n’est pas disponible`,badStorageArea:`Le paramètre area doit valoir 'local', 'session' ou 'cookie'`,requestFailed:`Échec de la requête`,noSuchRequest:e=>`Aucune requête avec id=${e} (elle a peut-être été supprimée)`,netFailed:(e,t)=>`${e} → échec (${t})`,wsFailed:e=>`WebSocket ${e} → échec`,tapped:(e,t)=>`Appui sur ${e} « ${t} »`,tappedTag:(e,t)=>`Appui sur ${e} ${t}`,roles:{button:`le bouton`,link:`le lien`,textbox:`le champ de texte`,searchbox:`le champ de recherche`,checkbox:`la case à cocher`,radio:`le bouton radio`,switch:`l’interrupteur`,combobox:`la liste déroulante`,listbox:`la liste`,option:`l’option`,tab:`l’onglet`,menuitem:`l’élément de menu`,img:`l’image`,heading:`le titre`,cell:`la cellule`,row:`la ligne`,listitem:`l’élément de liste`},element:`l’élément`}};var t=typeof window<`u`?window:{},n=t.RemoteWebviewDebugger;n&&n.registerLocale?n.registerLocale(e):(t.__RWD_LOCALES__=t.__RWD_LOCALES__||[]).push(e)})();
@@ -0,0 +1,150 @@
1
+ /*! remote-webview-debugger sdk v0.2.0 | includes chobitsu (MIT), Playwright (Apache-2.0), licia (MIT), modern-screenshot (MIT) */
2
+ // src/locales/fr.ts
3
+ var e = {
4
+ id: "fr",
5
+ name: "Français",
6
+ dir: "ltr",
7
+ ui: {
8
+ levels: {
9
+ observe: "Consultation seule",
10
+ interact: "Consultation et interaction",
11
+ advanced: "Avancé (exécuter des scripts, lire le stockage)"
12
+ },
13
+ attachLevels: {
14
+ observe: "Consultation seule",
15
+ interact: "Consultation et interaction",
16
+ advanced: "Avancé (en plus\xA0: exécuter des scripts, lire le stockage)"
17
+ },
18
+ state: {
19
+ none: "Inactif\xA0: aucune IA connectée",
20
+ observe: "L’IA consulte cette page",
21
+ agent: "L’IA a la main\xA0; vos actions sont suspendues",
22
+ user: "Vous avez repris la main\xA0; l’IA est en pause"
23
+ },
24
+ link: {
25
+ connecting: "Connexion",
26
+ online: "En ligne",
27
+ offline: "Hors ligne"
28
+ },
29
+ connecting: "Connexion…",
30
+ helpPending: "En assistance",
31
+ copy: "Copier",
32
+ copied: "Copié",
33
+ noteHelp: "Assistance demandée. Le développeur vous retrouvera grâce à ce code d’appareil.",
34
+ noteAuto: "Autorisation automatique activée\xA0: l’IA se connecte sans vous demander. Vous pouvez reprendre la main ou terminer à tout moment.",
35
+ noteShare: "Communiquez ce code d’appareil au développeur. L’IA vous demandera avant de se connecter, et vous pourrez reprendre la main ou terminer à tout moment.",
36
+ help: "Demander une assistance",
37
+ cancelHelp: "Annuler la demande",
38
+ collapse: "Masquer",
39
+ deviceCode: "Code d’appareil",
40
+ barViewing: "L’IA consulte",
41
+ barAgent: "L’IA agit",
42
+ barUser: "À vous",
43
+ connectedFor: (e) => `Connecté · ${e}`,
44
+ takeover: "Reprendre",
45
+ handback: "Rendre",
46
+ end: "Terminer",
47
+ autoTitle: "Autoriser l’IA automatiquement",
48
+ autoOn: (e) => `Connexion sans demande · ${e}`,
49
+ autoOff: "Me demander chaque fois que l’IA veut se connecter",
50
+ lockTitle: "Verrouiller l’écran quand l’IA est connectée",
51
+ lockOn: "Vos touchers et balayages sont bloqués tant que l’IA est connectée",
52
+ lockOff: "Vous pouvez toujours toucher et faire défiler\xA0; évitez de gêner l’IA",
53
+ lockedToast: "Écran verrouillé quand l’IA est connectée",
54
+ unlockedToast: "Écran déverrouillé quand l’IA est connectée",
55
+ autoOffToast: "L’IA vous demandera avant de se connecter",
56
+ autoDialogTitle: "Activer l’autorisation automatique\xA0?",
57
+ autoDialogText: "Quand l’IA demande à se connecter à cet appareil, elle se connecte immédiatement avec l’accès choisi ci-dessous. Un avis s’affiche à chaque fois\xA0; vous pouvez reprendre la main ou terminer à tout moment, et désactiver cette option ici.",
58
+ turnOn: "Activer",
59
+ cancel: "Annuler",
60
+ autoOnToast: (e) => `Autorisation auto · ${e}`,
61
+ countdown: (e) => `Refus automatique dans ${e} s`,
62
+ agentName: "Assistant IA",
63
+ autoAllowedToast: (e, t) => `Accès auto pour « ${e} » · ${t}`,
64
+ attachTitle: "L’IA souhaite se connecter",
65
+ attachText: (e) => `« ${e} » souhaite consulter cette page. Autoriser ?`,
66
+ confirmTitle: "Confirmation requise",
67
+ confirmText: (e) => `L’IA souhaite ${e}. Autoriser ?`,
68
+ allow: "Autoriser",
69
+ deny: "Refuser"
70
+ },
71
+ action: {
72
+ quote: (e) => `« ${e} »`,
73
+ click: (e) => `cliquer sur ${e}`,
74
+ enterActivate: (e) => `appuyer sur Enter pour activer ${e}`,
75
+ enterSubmit: (e) => `appuyer sur Enter pour envoyer ${e}`
76
+ },
77
+ agent: {
78
+ missingParam: (e) => `Paramètre manquant : ${e}`,
79
+ notString: (e) => `Le paramètre ${e} doit être une chaîne`,
80
+ unknownMethod: (e) => `Méthode inconnue : ${e}`,
81
+ needLevel: (e) => `Nécessite le niveau ${e}`,
82
+ takenOver: "L’utilisateur a repris la main\xA0; attendez qu’il vous la rende",
83
+ userDenied: "L’utilisateur a refusé cette action",
84
+ confirmBusy: "L’utilisateur n’a pas encore confirmé l’action précédente",
85
+ unknownModifier: (e) => `Touche de modification inconnue : ${e}`,
86
+ unknownKey: (e) => `Touche inconnue : ${e}`,
87
+ refNotInSnapshot: (e) => `ref=${e} ne figure pas dans le dernier instantané ; prenez un nouvel instantané`,
88
+ refDetached: (e) => `L’élément de ref=${e} n’est plus sur la page ; prenez un nouvel instantané`,
89
+ queryNeedsCriteria: "Au moins un critère parmi text, role ou name est requis",
90
+ noSuchRecord: (e) => `Aucun enregistrement seq=${e} dans le journal de session (il a peut-être été supprimé)`,
91
+ noSuchSession: (e) => `Aucun journal de session ${e} sur cet appareil (seuls les 3 derniers lancements sont conservés)`,
92
+ noSessionLog: "Aucun journal de session sur cet appareil pour l’instant (le projet a peut-être désactivé l’enregistrement, ou la page a passé run({ record: false }))",
93
+ sessionLogUnavailable: "IndexedDB n’est pas disponible sur cette page\xA0: pas de journal de session",
94
+ readOnly: (e) => `${e} est en lecture seule`,
95
+ isSelect: (e) => `${e} est une liste déroulante ; utilisez rwd.select`,
96
+ notFillable: (e) => `${e} n’est pas un champ de texte et ne peut pas être rempli`,
97
+ notSelect: (e) => `${e} n’est pas une liste déroulante (select) ; utilisez click`,
98
+ singleSelect: "Cette liste déroulante n’accepte qu’une seule option",
99
+ noSuchOption: (e, t) => `La liste déroulante n’a pas d’option « ${e} » ; options disponibles : ${t.join(", ")}`,
100
+ optionDisabled: (e) => `L’option « ${e} » est désactivée`,
101
+ badUrl: (e) => `URL non valide : ${e}`,
102
+ httpOnly: "Seules les URL http(s) peuvent être ouvertes",
103
+ textAppearTimeout: (e) => `Délai dépassé en attendant l’apparition du texte « ${e} »`,
104
+ textGoneTimeout: (e) => `Délai dépassé en attendant la disparition du texte « ${e} »`,
105
+ badFunction: (e) => `Impossible d’analyser function : ${e}`,
106
+ notAFunction: "function doit être une expression de fonction, par exemple \"() => document.title\"",
107
+ elementDetached: (e) => `L’élément ${e} n’est plus sur la page ; prenez un nouvel instantané`,
108
+ notActionable: (e, t) => `Impossible d’agir sur l’élément ${e} : ${t}`,
109
+ notVisible: (e) => `L’élément ${e} n’est pas visible`,
110
+ reasonMoving: "sa position change sans cesse (il est peut-être animé)",
111
+ reasonOffscreen: "il est en dehors de la fenêtre d’affichage",
112
+ reasonObscured: (e, t) => `le point de clic est recouvert par ${e} (ref=${t} ; cliquez directement dessus, par exemple sur le fond d’une fenêtre contextuelle pour la fermer)`,
113
+ overlayHeader: "[Superpositions] Ces éléments recouvrent la page. Si un clic est bloqué, cliquez directement dessus (par exemple sur le fond pour fermer une fenêtre contextuelle)\xA0:",
114
+ overlayMask: (e, t, n) => `- fond ${e}, couvre ${t} % de la fenêtre d’affichage [ref=${n}]`,
115
+ overlayLayer: (e, t, n, r) => `- calque ${e}${t ? ` « ${t} »` : ""}, couvre ${n} % de la fenêtre d’affichage [ref=${r}]`,
116
+ reasonHidden: "il n’est pas visible",
117
+ reasonDisabled: "il est désactivé",
118
+ storageUnavailable: (e) => `${e}Storage n’est pas disponible`,
119
+ badStorageArea: "Le paramètre area doit valoir 'local', 'session' ou 'cookie'",
120
+ requestFailed: "Échec de la requête",
121
+ noSuchRequest: (e) => `Aucune requête avec id=${e} (elle a peut-être été supprimée)`,
122
+ netFailed: (e, t) => `${e} → échec (${t})`,
123
+ wsFailed: (e) => `WebSocket ${e} → échec`,
124
+ tapped: (e, t) => `Appui sur ${e} « ${t} »`,
125
+ tappedTag: (e, t) => `Appui sur ${e} ${t}`,
126
+ roles: {
127
+ button: "le bouton",
128
+ link: "le lien",
129
+ textbox: "le champ de texte",
130
+ searchbox: "le champ de recherche",
131
+ checkbox: "la case à cocher",
132
+ radio: "le bouton radio",
133
+ switch: "l’interrupteur",
134
+ combobox: "la liste déroulante",
135
+ listbox: "la liste",
136
+ option: "l’option",
137
+ tab: "l’onglet",
138
+ menuitem: "l’élément de menu",
139
+ img: "l’image",
140
+ heading: "le titre",
141
+ cell: "la cellule",
142
+ row: "la ligne",
143
+ listitem: "l’élément de liste"
144
+ },
145
+ element: "l’élément"
146
+ }
147
+ };
148
+ export { e as default };
149
+
150
+ //# sourceMappingURL=fr.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fr.mjs","names":["fr","time","level","seconds","agent","action","name","target","method","m","key","ref","seq","id","tag","value","choices","url","text","message","reason","coverage","area","what","error","role"],"sources":["../../src/locales/fr.ts"],"sourcesContent":["import type { ActionMessages, AgentMessages, Locale, UiMessages } from '../i18n'\n\n// Français (vouvoiement).\n\nconst ui: UiMessages = {\n levels: {\n observe: 'Consultation seule',\n interact: 'Consultation et interaction',\n advanced: 'Avancé (exécuter des scripts, lire le stockage)',\n },\n attachLevels: {\n observe: 'Consultation seule',\n interact: 'Consultation et interaction',\n advanced: 'Avancé (en plus : exécuter des scripts, lire le stockage)',\n },\n state: {\n none: 'Inactif : aucune IA connectée',\n observe: 'L’IA consulte cette page',\n agent: 'L’IA a la main ; vos actions sont suspendues',\n user: 'Vous avez repris la main ; l’IA est en pause',\n },\n link: {\n connecting: 'Connexion',\n online: 'En ligne',\n offline: 'Hors ligne',\n },\n connecting: 'Connexion…',\n helpPending: 'En assistance',\n copy: 'Copier',\n copied: 'Copié',\n noteHelp: 'Assistance demandée. Le développeur vous retrouvera grâce à ce code d’appareil.',\n noteAuto:\n 'Autorisation automatique activée : l’IA se connecte sans vous demander. Vous pouvez reprendre la main ou terminer à tout moment.',\n noteShare:\n 'Communiquez ce code d’appareil au développeur. L’IA vous demandera avant de se connecter, et vous pourrez reprendre la main ou terminer à tout moment.',\n help: 'Demander une assistance',\n cancelHelp: 'Annuler la demande',\n collapse: 'Masquer',\n deviceCode: 'Code d’appareil',\n barViewing: 'L’IA consulte',\n barAgent: 'L’IA agit',\n barUser: 'À vous',\n connectedFor: time => `Connecté · ${time}`,\n takeover: 'Reprendre',\n handback: 'Rendre',\n end: 'Terminer',\n autoTitle: 'Autoriser l’IA automatiquement',\n autoOn: level => `Connexion sans demande · ${level}`,\n autoOff: 'Me demander chaque fois que l’IA veut se connecter',\n lockTitle: 'Verrouiller l’écran quand l’IA est connectée',\n lockOn: 'Vos touchers et balayages sont bloqués tant que l’IA est connectée',\n lockOff: 'Vous pouvez toujours toucher et faire défiler ; évitez de gêner l’IA',\n lockedToast: 'Écran verrouillé quand l’IA est connectée',\n unlockedToast: 'Écran déverrouillé quand l’IA est connectée',\n autoOffToast: 'L’IA vous demandera avant de se connecter',\n autoDialogTitle: 'Activer l’autorisation automatique ?',\n autoDialogText:\n 'Quand l’IA demande à se connecter à cet appareil, elle se connecte immédiatement avec l’accès choisi ci-dessous. Un avis s’affiche à chaque fois ; vous pouvez reprendre la main ou terminer à tout moment, et désactiver cette option ici.',\n turnOn: 'Activer',\n cancel: 'Annuler',\n autoOnToast: level => `Autorisation auto · ${level}`,\n countdown: seconds => `Refus automatique dans ${seconds} s`,\n\n agentName: 'Assistant IA',\n autoAllowedToast: (agent, level) => `Accès auto pour « ${agent} » · ${level}`,\n attachTitle: 'L’IA souhaite se connecter',\n attachText: agent => `« ${agent} » souhaite consulter cette page. Autoriser ?`,\n confirmTitle: 'Confirmation requise',\n confirmText: action => `L’IA souhaite ${action}. Autoriser ?`,\n allow: 'Autoriser',\n deny: 'Refuser',\n}\n\nconst agent: AgentMessages = {\n missingParam: name => `Paramètre manquant : ${name}`,\n notString: name => `Le paramètre ${name} doit être une chaîne`,\n unknownMethod: method => `Méthode inconnue : ${method}`,\n needLevel: level => `Nécessite le niveau ${level}`,\n takenOver: 'L’utilisateur a repris la main ; attendez qu’il vous la rende',\n userDenied: 'L’utilisateur a refusé cette action',\n confirmBusy: 'L’utilisateur n’a pas encore confirmé l’action précédente',\n\n unknownModifier: m => `Touche de modification inconnue : ${m}`,\n unknownKey: key => `Touche inconnue : ${key}`,\n\n refNotInSnapshot: ref => `ref=${ref} ne figure pas dans le dernier instantané ; prenez un nouvel instantané`,\n refDetached: ref => `L’élément de ref=${ref} n’est plus sur la page ; prenez un nouvel instantané`,\n queryNeedsCriteria: 'Au moins un critère parmi text, role ou name est requis',\n noSuchRecord: seq => `Aucun enregistrement seq=${seq} dans le journal de session (il a peut-être été supprimé)`,\n noSuchSession: id => `Aucun journal de session ${id} sur cet appareil (seuls les 3 derniers lancements sont conservés)`,\n noSessionLog:\n 'Aucun journal de session sur cet appareil pour l’instant (le projet a peut-être désactivé l’enregistrement, ou la page a passé run({ record: false }))',\n sessionLogUnavailable: 'IndexedDB n’est pas disponible sur cette page : pas de journal de session',\n\n readOnly: tag => `${tag} est en lecture seule`,\n isSelect: tag => `${tag} est une liste déroulante ; utilisez rwd.select`,\n notFillable: tag => `${tag} n’est pas un champ de texte et ne peut pas être rempli`,\n notSelect: tag => `${tag} n’est pas une liste déroulante (select) ; utilisez click`,\n singleSelect: 'Cette liste déroulante n’accepte qu’une seule option',\n noSuchOption: (value, choices) => `La liste déroulante n’a pas d’option « ${value} » ; options disponibles : ${choices.join(', ')}`,\n optionDisabled: value => `L’option « ${value} » est désactivée`,\n\n badUrl: url => `URL non valide : ${url}`,\n httpOnly: 'Seules les URL http(s) peuvent être ouvertes',\n textAppearTimeout: text => `Délai dépassé en attendant l’apparition du texte « ${text} »`,\n textGoneTimeout: text => `Délai dépassé en attendant la disparition du texte « ${text} »`,\n badFunction: message => `Impossible d’analyser function : ${message}`,\n notAFunction: 'function doit être une expression de fonction, par exemple \"() => document.title\"',\n\n elementDetached: tag => `L’élément ${tag} n’est plus sur la page ; prenez un nouvel instantané`,\n notActionable: (tag, reason) => `Impossible d’agir sur l’élément ${tag} : ${reason}`,\n notVisible: tag => `L’élément ${tag} n’est pas visible`,\n reasonMoving: 'sa position change sans cesse (il est peut-être animé)',\n reasonOffscreen: 'il est en dehors de la fenêtre d’affichage',\n reasonObscured: (tag, ref) =>\n `le point de clic est recouvert par ${tag} (ref=${ref} ; cliquez directement dessus, par exemple sur le fond d’une fenêtre contextuelle pour la fermer)`,\n\n overlayHeader:\n '[Superpositions] Ces éléments recouvrent la page. Si un clic est bloqué, cliquez directement dessus (par exemple sur le fond pour fermer une fenêtre contextuelle) :',\n overlayMask: (tag, coverage, ref) => `- fond ${tag}, couvre ${coverage} % de la fenêtre d’affichage [ref=${ref}]`,\n overlayLayer: (tag, text, coverage, ref) =>\n `- calque ${tag}${text ? ` « ${text} »` : ''}, couvre ${coverage} % de la fenêtre d’affichage [ref=${ref}]`,\n reasonHidden: 'il n’est pas visible',\n reasonDisabled: 'il est désactivé',\n\n storageUnavailable: area => `${area}Storage n’est pas disponible`,\n badStorageArea: \"Le paramètre area doit valoir 'local', 'session' ou 'cookie'\",\n\n requestFailed: 'Échec de la requête',\n noSuchRequest: id => `Aucune requête avec id=${id} (elle a peut-être été supprimée)`,\n netFailed: (what, error) => `${what} → échec (${error})`,\n wsFailed: url => `WebSocket ${url} → échec`,\n\n // The role names carry their article: \"Appui sur le bouton « Payer »\".\n tapped: (role, text) => `Appui sur ${role} « ${text} »`,\n tappedTag: (role, tag) => `Appui sur ${role} ${tag}`,\n roles: {\n button: 'le bouton',\n link: 'le lien',\n textbox: 'le champ de texte',\n searchbox: 'le champ de recherche',\n checkbox: 'la case à cocher',\n radio: 'le bouton radio',\n switch: 'l’interrupteur',\n combobox: 'la liste déroulante',\n listbox: 'la liste',\n option: 'l’option',\n tab: 'l’onglet',\n menuitem: 'l’élément de menu',\n img: 'l’image',\n heading: 'le titre',\n cell: 'la cellule',\n row: 'la ligne',\n listitem: 'l’élément de liste',\n },\n element: 'l’élément',\n}\n\nconst action: ActionMessages = {\n quote: name => `« ${name} »`,\n click: target => `cliquer sur ${target}`,\n enterActivate: target => `appuyer sur Enter pour activer ${target}`,\n enterSubmit: target => `appuyer sur Enter pour envoyer ${target}`,\n}\n\nconst fr: Locale = { id: 'fr', name: 'Français', dir: 'ltr', ui, action, agent }\n\nexport default fr\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Locale } from '../index.js'
2
+
3
+ declare const pack: Locale
4
+ export default pack
@@ -0,0 +1,2 @@
1
+ /*! remote-webview-debugger sdk v0.2.0 | locale ja */
2
+ (function(){let e=e=>/^[A-Za-z0-9<]/.test(e),t={levels:{observe:`閲覧のみ`,interact:`閲覧と操作`,advanced:`高度(スクリプト実行、ストレージ読み取り)`},attachLevels:{observe:`閲覧のみ`,interact:`閲覧と操作`,advanced:`高度(さらにスクリプト実行、ストレージ読み取り)`},state:{none:`待機中:AI は接続されていません`,observe:`AI がこのページを閲覧しています`,agent:`AI が操作中です。あなたの入力は一時停止しています`,user:`あなたが引き継ぎました。AI は一時停止中です`},link:{connecting:`接続中`,online:`オンライン`,offline:`オフライン`},connecting:`接続中…`,helpPending:`対応中`,copy:`コピー`,copied:`コピー済み`,noteHelp:`サポートを依頼しました。開発者がこのデバイスコードであなたを見つけます。`,noteAuto:`自動許可がオンです。AI は確認なしで接続します。いつでも引き継ぎや終了ができます。`,noteShare:`このデバイスコードを開発者に伝えてください。AI は接続する前に確認を求めます。接続後もいつでも引き継ぎや終了ができます。`,help:`サポートを依頼`,cancelHelp:`依頼を取り消す`,collapse:`閉じる`,deviceCode:`デバイスコード`,barViewing:`AI 閲覧中`,barAgent:`AI 操作中`,barUser:`手動操作中`,connectedFor:e=>`接続中 · ${e}`,takeover:`引き継ぐ`,handback:`AI に戻す`,end:`終了`,autoTitle:`AI の接続を自動許可`,autoOn:e=>`確認なしで接続 · ${e}`,autoOff:`AI が接続しようとするたびに確認します`,lockTitle:`AI の接続中は画面をロック`,lockOn:`AI の接続中は、タップやスワイプが無効になります`,lockOff:`タップやスクロールはできますが、AI の操作を妨げないようご注意ください`,lockedToast:`AI の接続中は画面をロックします`,unlockedToast:`AI の接続中も画面をロックしません`,autoOffToast:`自動許可をオフにしました。AI は接続前に確認します`,autoDialogTitle:`自動許可をオンにしますか?`,autoDialogText:`AI がこのデバイスへの接続を求めると、下で選んだ権限ですぐに接続します。接続のたびに通知が表示され、いつでも引き継ぎや終了ができます。この設定はここでオフにできます。`,turnOn:`オンにする`,cancel:`キャンセル`,autoOnToast:e=>`自動許可オン · ${e}`,countdown:e=>`${e} 秒後に自動で拒否`,agentName:`AI アシスタント`,autoAllowedToast:(e,t)=>`「${e}」を自動許可しました · ${t}`,attachTitle:`AI が接続を求めています`,attachText:e=>`「${e}」がこのページの閲覧を求めています。許可しますか?`,confirmTitle:`確認してください`,confirmText:t=>`AI が${e(t)?` `:``}${t}しようとしています。許可しますか?`,allow:`許可`,deny:`拒否`},n={missingParam:e=>`パラメータ ${e} がありません`,notString:e=>`パラメータ ${e} は文字列である必要があります`,unknownMethod:e=>`不明なメソッド:${e}`,needLevel:e=>`${e} レベルが必要です`,takenOver:`ユーザーが引き継ぎました。ユーザーが操作を戻すまで待ってください`,userDenied:`ユーザーがこの操作を拒否しました`,confirmBusy:`前の操作についてユーザーの確認を待っています`,unknownModifier:e=>`不明な修飾キー:${e}`,unknownKey:e=>`不明なキー:${e}`,refNotInSnapshot:e=>`ref=${e} は最新のスナップショットにありません。スナップショットを取り直してください`,refDetached:e=>`ref=${e} の要素はもうページ上にありません。スナップショットを取り直してください`,queryNeedsCriteria:`text、role、name のいずれか 1 つ以上が必要です`,noSuchRecord:e=>`セッションログに seq=${e} のレコードがありません(削除された可能性があります)`,noSuchSession:e=>`このデバイスにセッションログ ${e} はありません(保持されるのは直近 3 回の起動分のみです)`,noSessionLog:`このデバイスにはまだセッションログがありません(プロジェクトで記録がオフになっているか、ページが run({ record: false }) を指定している可能性があります)`,sessionLogUnavailable:`このページでは IndexedDB を使用できないため、セッションログはありません`,readOnly:e=>`${e} は読み取り専用です`,isSelect:e=>`${e} はドロップダウンです。rwd.select を使ってください`,notFillable:e=>`${e} はテキスト入力欄ではないため、入力できません`,notSelect:e=>`${e} はドロップダウン(select)ではありません。click を使ってください`,singleSelect:`このドロップダウンでは 1 つしか選択できません`,noSuchOption:(e,t)=>`ドロップダウンに選択肢「${e}」はありません。選択可能:${t.join(`、`)}`,optionDisabled:e=>`選択肢「${e}」は無効です`,badUrl:e=>`無効な URL:${e}`,httpOnly:`開けるのは http(s) の URL のみです`,textAppearTimeout:e=>`テキスト「${e}」の表示を待機中にタイムアウトしました`,textGoneTimeout:e=>`テキスト「${e}」の消失を待機中にタイムアウトしました`,badFunction:e=>`function を解析できません:${e}`,notAFunction:`function は関数式である必要があります(例:"() => document.title")`,elementDetached:e=>`要素 ${e} はもうページ上にありません。スナップショットを取り直してください`,notActionable:(e,t)=>`要素 ${e} を操作できません:${t}`,notVisible:e=>`要素 ${e} は表示されていません`,reasonMoving:`位置が変化し続けています(アニメーション中の可能性があります)`,reasonOffscreen:`ビューポートの外にあります`,reasonObscured:(e,t)=>`クリック位置が ${e} に覆われています(ref=${t}。この要素を直接 click できます。例:背景のオーバーレイをクリックしてポップアップを閉じる)`,overlayHeader:`[オーバーレイ] 以下の要素がページの上に重なっています。クリックが遮られる場合は、これらを直接クリックしてください(例:背景のオーバーレイをクリックしてポップアップを閉じる):`,overlayMask:(e,t,n)=>`- 背景オーバーレイ ${e}、ビューポートの ${t}% を覆う [ref=${n}]`,overlayLayer:(e,t,n,r)=>`- レイヤー ${e}${t?`「${t}」`:``}、ビューポートの ${n}% を覆う [ref=${r}]`,reasonHidden:`表示されていません`,reasonDisabled:`無効になっています`,storageUnavailable:e=>`${e}Storage は使用できません`,badStorageArea:`パラメータ area は 'local'、'session'、'cookie' のいずれかである必要があります`,requestFailed:`リクエストに失敗しました`,noSuchRequest:e=>`id=${e} のリクエストはありません(破棄された可能性があります)`,netFailed:(e,t)=>`${e} → 失敗(${t})`,wsFailed:e=>`WebSocket ${e} → 失敗`,tapped:(e,t)=>`${e}「${t}」をタップしました`,tappedTag:(e,t)=>`${e} ${t} をタップしました`,roles:{button:`ボタン`,link:`リンク`,textbox:`テキスト入力欄`,searchbox:`検索欄`,checkbox:`チェックボックス`,radio:`ラジオボタン`,switch:`スイッチ`,combobox:`ドロップダウン`,listbox:`リスト`,option:`選択肢`,tab:`タブ`,menuitem:`メニュー項目`,img:`画像`,heading:`見出し`,cell:`セル`,row:`行`,listitem:`リスト項目`},element:`要素`},r=t=>e(t)?` ${t} `:t,i={id:`ja`,name:`日本語`,dir:`ltr`,ui:t,action:{quote:e=>`「${e}」`,click:e=>`${r(e).trimStart()}をクリック`,enterActivate:e=>`${r(e).trimStart()}で Enter キーを押下`,enterSubmit:e=>`Enter キーで${r(e)}を送信`},agent:n};var a=typeof window<`u`?window:{},o=a.RemoteWebviewDebugger;o&&o.registerLocale?o.registerLocale(i):(a.__RWD_LOCALES__=a.__RWD_LOCALES__||[]).push(i)})();
@@ -0,0 +1,150 @@
1
+ /*! remote-webview-debugger sdk v0.2.0 | includes chobitsu (MIT), Playwright (Apache-2.0), licia (MIT), modern-screenshot (MIT) */
2
+ // src/locales/ja.ts
3
+ var e = (e) => /^[A-Za-z0-9<]/.test(e), t = {
4
+ levels: {
5
+ observe: "閲覧のみ",
6
+ interact: "閲覧と操作",
7
+ advanced: "高度(スクリプト実行、ストレージ読み取り)"
8
+ },
9
+ attachLevels: {
10
+ observe: "閲覧のみ",
11
+ interact: "閲覧と操作",
12
+ advanced: "高度(さらにスクリプト実行、ストレージ読み取り)"
13
+ },
14
+ state: {
15
+ none: "待機中:AI は接続されていません",
16
+ observe: "AI がこのページを閲覧しています",
17
+ agent: "AI が操作中です。あなたの入力は一時停止しています",
18
+ user: "あなたが引き継ぎました。AI は一時停止中です"
19
+ },
20
+ link: {
21
+ connecting: "接続中",
22
+ online: "オンライン",
23
+ offline: "オフライン"
24
+ },
25
+ connecting: "接続中…",
26
+ helpPending: "対応中",
27
+ copy: "コピー",
28
+ copied: "コピー済み",
29
+ noteHelp: "サポートを依頼しました。開発者がこのデバイスコードであなたを見つけます。",
30
+ noteAuto: "自動許可がオンです。AI は確認なしで接続します。いつでも引き継ぎや終了ができます。",
31
+ noteShare: "このデバイスコードを開発者に伝えてください。AI は接続する前に確認を求めます。接続後もいつでも引き継ぎや終了ができます。",
32
+ help: "サポートを依頼",
33
+ cancelHelp: "依頼を取り消す",
34
+ collapse: "閉じる",
35
+ deviceCode: "デバイスコード",
36
+ barViewing: "AI 閲覧中",
37
+ barAgent: "AI 操作中",
38
+ barUser: "手動操作中",
39
+ connectedFor: (e) => `接続中 · ${e}`,
40
+ takeover: "引き継ぐ",
41
+ handback: "AI に戻す",
42
+ end: "終了",
43
+ autoTitle: "AI の接続を自動許可",
44
+ autoOn: (e) => `確認なしで接続 · ${e}`,
45
+ autoOff: "AI が接続しようとするたびに確認します",
46
+ lockTitle: "AI の接続中は画面をロック",
47
+ lockOn: "AI の接続中は、タップやスワイプが無効になります",
48
+ lockOff: "タップやスクロールはできますが、AI の操作を妨げないようご注意ください",
49
+ lockedToast: "AI の接続中は画面をロックします",
50
+ unlockedToast: "AI の接続中も画面をロックしません",
51
+ autoOffToast: "自動許可をオフにしました。AI は接続前に確認します",
52
+ autoDialogTitle: "自動許可をオンにしますか?",
53
+ autoDialogText: "AI がこのデバイスへの接続を求めると、下で選んだ権限ですぐに接続します。接続のたびに通知が表示され、いつでも引き継ぎや終了ができます。この設定はここでオフにできます。",
54
+ turnOn: "オンにする",
55
+ cancel: "キャンセル",
56
+ autoOnToast: (e) => `自動許可オン · ${e}`,
57
+ countdown: (e) => `${e} 秒後に自動で拒否`,
58
+ agentName: "AI アシスタント",
59
+ autoAllowedToast: (e, t) => `「${e}」を自動許可しました · ${t}`,
60
+ attachTitle: "AI が接続を求めています",
61
+ attachText: (e) => `「${e}」がこのページの閲覧を求めています。許可しますか?`,
62
+ confirmTitle: "確認してください",
63
+ confirmText: (t) => `AI が${e(t) ? " " : ""}${t}しようとしています。許可しますか?`,
64
+ allow: "許可",
65
+ deny: "拒否"
66
+ }, n = {
67
+ missingParam: (e) => `パラメータ ${e} がありません`,
68
+ notString: (e) => `パラメータ ${e} は文字列である必要があります`,
69
+ unknownMethod: (e) => `不明なメソッド:${e}`,
70
+ needLevel: (e) => `${e} レベルが必要です`,
71
+ takenOver: "ユーザーが引き継ぎました。ユーザーが操作を戻すまで待ってください",
72
+ userDenied: "ユーザーがこの操作を拒否しました",
73
+ confirmBusy: "前の操作についてユーザーの確認を待っています",
74
+ unknownModifier: (e) => `不明な修飾キー:${e}`,
75
+ unknownKey: (e) => `不明なキー:${e}`,
76
+ refNotInSnapshot: (e) => `ref=${e} は最新のスナップショットにありません。スナップショットを取り直してください`,
77
+ refDetached: (e) => `ref=${e} の要素はもうページ上にありません。スナップショットを取り直してください`,
78
+ queryNeedsCriteria: "text、role、name のいずれか 1 つ以上が必要です",
79
+ noSuchRecord: (e) => `セッションログに seq=${e} のレコードがありません(削除された可能性があります)`,
80
+ noSuchSession: (e) => `このデバイスにセッションログ ${e} はありません(保持されるのは直近 3 回の起動分のみです)`,
81
+ noSessionLog: "このデバイスにはまだセッションログがありません(プロジェクトで記録がオフになっているか、ページが run({ record: false }) を指定している可能性があります)",
82
+ sessionLogUnavailable: "このページでは IndexedDB を使用できないため、セッションログはありません",
83
+ readOnly: (e) => `${e} は読み取り専用です`,
84
+ isSelect: (e) => `${e} はドロップダウンです。rwd.select を使ってください`,
85
+ notFillable: (e) => `${e} はテキスト入力欄ではないため、入力できません`,
86
+ notSelect: (e) => `${e} はドロップダウン(select)ではありません。click を使ってください`,
87
+ singleSelect: "このドロップダウンでは 1 つしか選択できません",
88
+ noSuchOption: (e, t) => `ドロップダウンに選択肢「${e}」はありません。選択可能:${t.join("、")}`,
89
+ optionDisabled: (e) => `選択肢「${e}」は無効です`,
90
+ badUrl: (e) => `無効な URL:${e}`,
91
+ httpOnly: "開けるのは http(s) の URL のみです",
92
+ textAppearTimeout: (e) => `テキスト「${e}」の表示を待機中にタイムアウトしました`,
93
+ textGoneTimeout: (e) => `テキスト「${e}」の消失を待機中にタイムアウトしました`,
94
+ badFunction: (e) => `function を解析できません:${e}`,
95
+ notAFunction: "function は関数式である必要があります(例:\"() => document.title\")",
96
+ elementDetached: (e) => `要素 ${e} はもうページ上にありません。スナップショットを取り直してください`,
97
+ notActionable: (e, t) => `要素 ${e} を操作できません:${t}`,
98
+ notVisible: (e) => `要素 ${e} は表示されていません`,
99
+ reasonMoving: "位置が変化し続けています(アニメーション中の可能性があります)",
100
+ reasonOffscreen: "ビューポートの外にあります",
101
+ reasonObscured: (e, t) => `クリック位置が ${e} に覆われています(ref=${t}。この要素を直接 click できます。例:背景のオーバーレイをクリックしてポップアップを閉じる)`,
102
+ overlayHeader: "[オーバーレイ] 以下の要素がページの上に重なっています。クリックが遮られる場合は、これらを直接クリックしてください(例:背景のオーバーレイをクリックしてポップアップを閉じる):",
103
+ overlayMask: (e, t, n) => `- 背景オーバーレイ ${e}、ビューポートの ${t}% を覆う [ref=${n}]`,
104
+ overlayLayer: (e, t, n, r) => `- レイヤー ${e}${t ? `「${t}」` : ""}、ビューポートの ${n}% を覆う [ref=${r}]`,
105
+ reasonHidden: "表示されていません",
106
+ reasonDisabled: "無効になっています",
107
+ storageUnavailable: (e) => `${e}Storage は使用できません`,
108
+ badStorageArea: "パラメータ area は 'local'、'session'、'cookie' のいずれかである必要があります",
109
+ requestFailed: "リクエストに失敗しました",
110
+ noSuchRequest: (e) => `id=${e} のリクエストはありません(破棄された可能性があります)`,
111
+ netFailed: (e, t) => `${e} → 失敗(${t})`,
112
+ wsFailed: (e) => `WebSocket ${e} → 失敗`,
113
+ tapped: (e, t) => `${e}「${t}」をタップしました`,
114
+ tappedTag: (e, t) => `${e} ${t} をタップしました`,
115
+ roles: {
116
+ button: "ボタン",
117
+ link: "リンク",
118
+ textbox: "テキスト入力欄",
119
+ searchbox: "検索欄",
120
+ checkbox: "チェックボックス",
121
+ radio: "ラジオボタン",
122
+ switch: "スイッチ",
123
+ combobox: "ドロップダウン",
124
+ listbox: "リスト",
125
+ option: "選択肢",
126
+ tab: "タブ",
127
+ menuitem: "メニュー項目",
128
+ img: "画像",
129
+ heading: "見出し",
130
+ cell: "セル",
131
+ row: "行",
132
+ listitem: "リスト項目"
133
+ },
134
+ element: "要素"
135
+ }, r = (t) => e(t) ? ` ${t} ` : t, i = {
136
+ id: "ja",
137
+ name: "日本語",
138
+ dir: "ltr",
139
+ ui: t,
140
+ action: {
141
+ quote: (e) => `「${e}」`,
142
+ click: (e) => `${r(e).trimStart()}をクリック`,
143
+ enterActivate: (e) => `${r(e).trimStart()}で Enter キーを押下`,
144
+ enterSubmit: (e) => `Enter キーで${r(e)}を送信`
145
+ },
146
+ agent: n
147
+ };
148
+ export { i as default };
149
+
150
+ //# sourceMappingURL=ja.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ja.mjs","names":["latin","text","ui","time","level","seconds","agent","action","name","method","m","key","ref","seq","id","tag","value","choices","url","message","reason","coverage","area","what","error","role","pad","target","ja"],"sources":["../../src/locales/ja.ts"],"sourcesContent":["import type { ActionMessages, AgentMessages, Locale, UiMessages } from '../i18n'\n\n// 日本語。\n\n/** Starts with a Latin letter or digit: put a space before it after Japanese text. */\nconst latin = (text: string) => /^[A-Za-z0-9<]/.test(text)\n\nconst ui: UiMessages = {\n levels: {\n observe: '閲覧のみ',\n interact: '閲覧と操作',\n advanced: '高度(スクリプト実行、ストレージ読み取り)',\n },\n attachLevels: {\n observe: '閲覧のみ',\n interact: '閲覧と操作',\n advanced: '高度(さらにスクリプト実行、ストレージ読み取り)',\n },\n state: {\n none: '待機中:AI は接続されていません',\n observe: 'AI がこのページを閲覧しています',\n agent: 'AI が操作中です。あなたの入力は一時停止しています',\n user: 'あなたが引き継ぎました。AI は一時停止中です',\n },\n link: {\n connecting: '接続中',\n online: 'オンライン',\n offline: 'オフライン',\n },\n connecting: '接続中…',\n helpPending: '対応中',\n copy: 'コピー',\n copied: 'コピー済み',\n noteHelp: 'サポートを依頼しました。開発者がこのデバイスコードであなたを見つけます。',\n noteAuto: '自動許可がオンです。AI は確認なしで接続します。いつでも引き継ぎや終了ができます。',\n noteShare: 'このデバイスコードを開発者に伝えてください。AI は接続する前に確認を求めます。接続後もいつでも引き継ぎや終了ができます。',\n help: 'サポートを依頼',\n cancelHelp: '依頼を取り消す',\n collapse: '閉じる',\n deviceCode: 'デバイスコード',\n barViewing: 'AI 閲覧中',\n barAgent: 'AI 操作中',\n barUser: '手動操作中',\n connectedFor: time => `接続中 · ${time}`,\n takeover: '引き継ぐ',\n handback: 'AI に戻す',\n end: '終了',\n autoTitle: 'AI の接続を自動許可',\n autoOn: level => `確認なしで接続 · ${level}`,\n autoOff: 'AI が接続しようとするたびに確認します',\n lockTitle: 'AI の接続中は画面をロック',\n lockOn: 'AI の接続中は、タップやスワイプが無効になります',\n lockOff: 'タップやスクロールはできますが、AI の操作を妨げないようご注意ください',\n lockedToast: 'AI の接続中は画面をロックします',\n unlockedToast: 'AI の接続中も画面をロックしません',\n autoOffToast: '自動許可をオフにしました。AI は接続前に確認します',\n autoDialogTitle: '自動許可をオンにしますか?',\n autoDialogText:\n 'AI がこのデバイスへの接続を求めると、下で選んだ権限ですぐに接続します。接続のたびに通知が表示され、いつでも引き継ぎや終了ができます。この設定はここでオフにできます。',\n turnOn: 'オンにする',\n cancel: 'キャンセル',\n autoOnToast: level => `自動許可オン · ${level}`,\n countdown: seconds => `${seconds} 秒後に自動で拒否`,\n\n agentName: 'AI アシスタント',\n autoAllowedToast: (agent, level) => `「${agent}」を自動許可しました · ${level}`,\n attachTitle: 'AI が接続を求めています',\n attachText: agent => `「${agent}」がこのページの閲覧を求めています。許可しますか?`,\n confirmTitle: '確認してください',\n confirmText: action => `AI が${latin(action) ? ' ' : ''}${action}しようとしています。許可しますか?`,\n allow: '許可',\n deny: '拒否',\n}\n\nconst agent: AgentMessages = {\n missingParam: name => `パラメータ ${name} がありません`,\n notString: name => `パラメータ ${name} は文字列である必要があります`,\n unknownMethod: method => `不明なメソッド:${method}`,\n needLevel: level => `${level} レベルが必要です`,\n takenOver: 'ユーザーが引き継ぎました。ユーザーが操作を戻すまで待ってください',\n userDenied: 'ユーザーがこの操作を拒否しました',\n confirmBusy: '前の操作についてユーザーの確認を待っています',\n\n unknownModifier: m => `不明な修飾キー:${m}`,\n unknownKey: key => `不明なキー:${key}`,\n\n refNotInSnapshot: ref => `ref=${ref} は最新のスナップショットにありません。スナップショットを取り直してください`,\n refDetached: ref => `ref=${ref} の要素はもうページ上にありません。スナップショットを取り直してください`,\n queryNeedsCriteria: 'text、role、name のいずれか 1 つ以上が必要です',\n noSuchRecord: seq => `セッションログに seq=${seq} のレコードがありません(削除された可能性があります)`,\n noSuchSession: id => `このデバイスにセッションログ ${id} はありません(保持されるのは直近 3 回の起動分のみです)`,\n noSessionLog:\n 'このデバイスにはまだセッションログがありません(プロジェクトで記録がオフになっているか、ページが run({ record: false }) を指定している可能性があります)',\n sessionLogUnavailable: 'このページでは IndexedDB を使用できないため、セッションログはありません',\n\n readOnly: tag => `${tag} は読み取り専用です`,\n isSelect: tag => `${tag} はドロップダウンです。rwd.select を使ってください`,\n notFillable: tag => `${tag} はテキスト入力欄ではないため、入力できません`,\n notSelect: tag => `${tag} はドロップダウン(select)ではありません。click を使ってください`,\n singleSelect: 'このドロップダウンでは 1 つしか選択できません',\n noSuchOption: (value, choices) => `ドロップダウンに選択肢「${value}」はありません。選択可能:${choices.join('、')}`,\n optionDisabled: value => `選択肢「${value}」は無効です`,\n\n badUrl: url => `無効な URL:${url}`,\n httpOnly: '開けるのは http(s) の URL のみです',\n textAppearTimeout: text => `テキスト「${text}」の表示を待機中にタイムアウトしました`,\n textGoneTimeout: text => `テキスト「${text}」の消失を待機中にタイムアウトしました`,\n badFunction: message => `function を解析できません:${message}`,\n notAFunction: 'function は関数式である必要があります(例:\"() => document.title\")',\n\n elementDetached: tag => `要素 ${tag} はもうページ上にありません。スナップショットを取り直してください`,\n notActionable: (tag, reason) => `要素 ${tag} を操作できません:${reason}`,\n notVisible: tag => `要素 ${tag} は表示されていません`,\n reasonMoving: '位置が変化し続けています(アニメーション中の可能性があります)',\n reasonOffscreen: 'ビューポートの外にあります',\n reasonObscured: (tag, ref) =>\n `クリック位置が ${tag} に覆われています(ref=${ref}。この要素を直接 click できます。例:背景のオーバーレイをクリックしてポップアップを閉じる)`,\n\n overlayHeader:\n '[オーバーレイ] 以下の要素がページの上に重なっています。クリックが遮られる場合は、これらを直接クリックしてください(例:背景のオーバーレイをクリックしてポップアップを閉じる):',\n overlayMask: (tag, coverage, ref) => `- 背景オーバーレイ ${tag}、ビューポートの ${coverage}% を覆う [ref=${ref}]`,\n overlayLayer: (tag, text, coverage, ref) =>\n `- レイヤー ${tag}${text ? `「${text}」` : ''}、ビューポートの ${coverage}% を覆う [ref=${ref}]`,\n reasonHidden: '表示されていません',\n reasonDisabled: '無効になっています',\n\n storageUnavailable: area => `${area}Storage は使用できません`,\n badStorageArea: \"パラメータ area は 'local'、'session'、'cookie' のいずれかである必要があります\",\n\n requestFailed: 'リクエストに失敗しました',\n noSuchRequest: id => `id=${id} のリクエストはありません(破棄された可能性があります)`,\n netFailed: (what, error) => `${what} → 失敗(${error})`,\n wsFailed: url => `WebSocket ${url} → 失敗`,\n\n tapped: (role, text) => `${role}「${text}」をタップしました`,\n tappedTag: (role, tag) => `${role} ${tag} をタップしました`,\n roles: {\n button: 'ボタン',\n link: 'リンク',\n textbox: 'テキスト入力欄',\n searchbox: '検索欄',\n checkbox: 'チェックボックス',\n radio: 'ラジオボタン',\n switch: 'スイッチ',\n combobox: 'ドロップダウン',\n listbox: 'リスト',\n option: '選択肢',\n tab: 'タブ',\n menuitem: 'メニュー項目',\n img: '画像',\n heading: '見出し',\n cell: 'セル',\n row: '行',\n listitem: 'リスト項目',\n },\n element: '要素',\n}\n\n// Completes 「AI が…しようとしています」 (ui.confirmText). The target is a\n// quoted name (「購入」) or, without one, a Latin tag that needs spaces around it.\nconst pad = (target: string) => (latin(target) ? ` ${target} ` : target)\nconst action: ActionMessages = {\n quote: name => `「${name}」`,\n click: target => `${pad(target).trimStart()}をクリック`,\n enterActivate: target => `${pad(target).trimStart()}で Enter キーを押下`,\n enterSubmit: target => `Enter キーで${pad(target)}を送信`,\n}\n\nconst ja: Locale = { id: 'ja', name: '日本語', dir: 'ltr', ui, action, agent }\n\nexport default ja\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Locale } from '../index.js'
2
+
3
+ declare const pack: Locale
4
+ export default pack
@@ -0,0 +1,2 @@
1
+ /*! remote-webview-debugger sdk v0.2.0 | locale ko */
2
+ (function(){function e(e,t,n){let r=e.replace(/[\s"'“”‘’)\]」』]+$/,``),i=r.charCodeAt(r.length-1);if(i>=44032&&i<=55203)return(i-44032)%28?t:n;let a=`0123456789`.indexOf(r.charAt(r.length-1));return a>=0?`0136780`.includes(String(a))?t:n:`${t}(${n})`}let t={id:`ko`,name:`한국어`,dir:`ltr`,ui:{levels:{observe:`보기 전용`,interact:`보기 및 조작`,advanced:`고급(스크립트 실행, 저장소 읽기)`},attachLevels:{observe:`보기 전용`,interact:`보기 및 조작`,advanced:`고급(스크립트 실행, 저장소 읽기도 가능)`},state:{none:`대기 중: 접속한 AI 없음`,observe:`AI가 이 페이지를 보고 있어요`,agent:`AI가 조작 중이에요. 그동안 입력이 멈춰요`,user:`직접 조작 중이에요. AI는 잠시 멈췄어요`},link:{connecting:`연결 중`,online:`온라인`,offline:`오프라인`},connecting:`연결 중…`,helpPending:`지원 중`,copy:`복사`,copied:`복사됨`,noteHelp:`지원을 요청했어요. 개발자가 이 기기 코드로 찾아올 거예요.`,noteAuto:`자동 허용이 켜져 있어요. AI가 묻지 않고 접속해요. 언제든 직접 조작하거나 종료할 수 있어요.`,noteShare:`이 기기 코드를 개발자에게 알려 주세요. AI는 접속하기 전에 먼저 물어보고, 언제든 직접 조작하거나 종료할 수 있어요.`,help:`지원 요청`,cancelHelp:`요청 취소`,collapse:`숨기기`,deviceCode:`기기 코드`,barViewing:`AI 보는 중`,barAgent:`AI 조작 중`,barUser:`직접 조작 중`,connectedFor:e=>`연결됨 · ${e}`,takeover:`직접 조작`,handback:`AI에 맡기기`,end:`종료`,autoTitle:`AI 자동 허용`,autoOn:e=>`묻지 않고 접속 · ${e}`,autoOff:`AI가 접속하려고 할 때마다 물어봐요`,lockTitle:`AI 접속 중 화면 잠금`,lockOn:`AI가 접속해 있는 동안 탭과 스와이프가 막혀요`,lockOff:`AI가 접속해 있어도 탭하고 스크롤할 수 있어요. AI 조작을 방해하지 않게 주의해 주세요`,lockedToast:`AI가 접속해 있는 동안 화면이 잠겨요`,unlockedToast:`AI가 접속해 있어도 화면을 잠그지 않아요`,autoOffToast:`자동 허용을 껐어요. AI가 접속 전에 물어봐요`,autoDialogTitle:`자동 허용을 켤까요?`,autoDialogText:`AI가 이 기기에 접속을 요청하면 묻지 않고 아래에서 고른 권한으로 바로 접속해요. 접속할 때마다 화면에 알림이 표시되고, 언제든 직접 조작하거나 종료할 수 있어요. 이 설정은 여기서 다시 끌 수 있어요.`,turnOn:`켜기`,cancel:`취소`,autoOnToast:e=>`자동 허용 켜짐 · ${e}`,countdown:e=>`${e}초 후 자동 거부`,agentName:`AI 어시스턴트`,autoAllowedToast:(e,t)=>`“${e}” 자동 허용됨 · ${t}`,attachTitle:`AI 접속 요청`,attachText:t=>`“${t}”${e(t,`이`,`가`)} 이 페이지를 보려고 해요. 허용할까요?`,confirmTitle:`확인이 필요해요`,confirmText:t=>`AI가 ${t}${e(t,`을`,`를`)} 요청했어요. 허용할까요?`,allow:`허용`,deny:`거부`},action:{quote:e=>`“${e}”`,click:e=>`${e} 클릭`,enterActivate:e=>`${e}에서 Enter 키 누르기`,enterSubmit:e=>`Enter 키로 ${e} 제출`},agent:{missingParam:e=>`매개변수가 없습니다: ${e}`,notString:e=>`${e} 매개변수는 문자열이어야 합니다`,unknownMethod:e=>`알 수 없는 메서드: ${e}`,needLevel:e=>`${e} 권한 수준이 필요합니다`,takenOver:`사용자가 직접 조작으로 전환했습니다. 사용자가 다시 맡길 때까지 기다리세요`,userDenied:`사용자가 이 작업을 거부했습니다`,confirmBusy:`이전 작업에 대한 사용자 확인을 아직 기다리는 중입니다`,unknownModifier:e=>`알 수 없는 보조 키: ${e}`,unknownKey:e=>`알 수 없는 키: ${e}`,refNotInSnapshot:e=>`ref=${e} 항목이 최근 스냅샷에 없습니다. 스냅샷을 다시 가져오세요`,refDetached:e=>`ref=${e}에 해당하는 요소가 더 이상 페이지에 없습니다. 스냅샷을 다시 가져오세요`,queryNeedsCriteria:`text, role, name 중 하나 이상이 필요합니다`,noSuchRecord:e=>`세션 로그에 seq=${e} 기록이 없습니다(이미 정리되었을 수 있습니다)`,noSuchSession:e=>`이 기기에는 세션 ${e}의 로그가 없습니다(최근 3회 실행분만 보관됩니다)`,noSessionLog:`이 기기에는 아직 세션 로그가 없습니다(프로젝트에서 기록을 껐거나, 페이지가 run({ record: false })로 기록을 껐을 수 있습니다)`,sessionLogUnavailable:`이 페이지에서는 IndexedDB를 사용할 수 없어 세션 로그가 없습니다`,readOnly:e=>`${e} 요소는 읽기 전용입니다`,isSelect:e=>`${e} 요소는 드롭다운입니다. rwd.select를 사용하세요`,notFillable:e=>`${e} 요소는 텍스트 입력란이 아니라서 값을 입력할 수 없습니다`,notSelect:e=>`${e} 요소는 드롭다운(select)이 아닙니다. click을 사용하세요`,singleSelect:`이 드롭다운은 옵션을 하나만 선택할 수 있습니다`,noSuchOption:(e,t)=>`드롭다운에 “${e}” 옵션이 없습니다. 선택 가능한 옵션: ${t.join(`, `)}`,optionDisabled:e=>`“${e}” 옵션은 비활성화되어 있습니다`,badUrl:e=>`잘못된 URL: ${e}`,httpOnly:`http(s) URL만 열 수 있습니다`,textAppearTimeout:e=>`“${e}” 텍스트가 나타나기를 기다리다 시간이 초과되었습니다`,textGoneTimeout:e=>`“${e}” 텍스트가 사라지기를 기다리다 시간이 초과되었습니다`,badFunction:e=>`function을 해석할 수 없습니다: ${e}`,notAFunction:`function은 함수 표현식이어야 합니다. 예: "() => document.title"`,elementDetached:e=>`${e} 요소가 더 이상 페이지에 없습니다. 스냅샷을 다시 가져오세요`,notActionable:(e,t)=>`${e} 요소를 조작할 수 없습니다: ${t}`,notVisible:e=>`${e} 요소가 보이지 않습니다`,reasonMoving:`위치가 계속 바뀌고 있습니다(애니메이션 중일 수 있습니다)`,reasonOffscreen:`뷰포트 밖에 있습니다`,reasonObscured:(e,t)=>`클릭 지점이 ${e} 요소에 가려져 있습니다(ref=${t}. 이 요소를 직접 클릭할 수 있습니다. 예: 팝업 배경을 클릭해 팝업 닫기)`,overlayHeader:`[오버레이] 아래 요소들이 페이지 위를 덮고 있습니다. 클릭이 막히면 이 요소들을 직접 클릭하세요(예: 배경을 클릭해 팝업 닫기):`,overlayMask:(e,t,n)=>`- 배경 ${e}, 뷰포트의 ${t}%를 덮음 [ref=${n}]`,overlayLayer:(e,t,n,r)=>`- 레이어 ${e}${t?` “${t}”`:``}, 뷰포트의 ${n}%를 덮음 [ref=${r}]`,reasonHidden:`보이지 않습니다`,reasonDisabled:`비활성화되어 있습니다`,storageUnavailable:e=>`${e}Storage를 사용할 수 없습니다`,badStorageArea:`area 매개변수는 'local', 'session', 'cookie' 중 하나여야 합니다`,requestFailed:`요청 실패`,noSuchRequest:e=>`id=${e} 요청이 없습니다(이미 버려졌을 수 있습니다)`,netFailed:(e,t)=>`${e} → 실패(${t})`,wsFailed:e=>`WebSocket ${e} → 실패`,tapped:(e,t)=>`${e} “${t}” 탭함`,tappedTag:(e,t)=>`${e} ${t} 탭함`,roles:{button:`버튼`,link:`링크`,textbox:`텍스트 입력란`,searchbox:`검색창`,checkbox:`체크박스`,radio:`라디오 버튼`,switch:`스위치`,combobox:`드롭다운`,listbox:`목록`,option:`옵션`,tab:`탭`,menuitem:`메뉴 항목`,img:`이미지`,heading:`제목`,cell:`셀`,row:`행`,listitem:`목록 항목`},element:`요소`}};var n=typeof window<`u`?window:{},r=n.RemoteWebviewDebugger;r&&r.registerLocale?r.registerLocale(t):(n.__RWD_LOCALES__=n.__RWD_LOCALES__||[]).push(t)})();
@@ -0,0 +1,156 @@
1
+ /*! remote-webview-debugger sdk v0.2.0 | includes chobitsu (MIT), Playwright (Apache-2.0), licia (MIT), modern-screenshot (MIT) */
2
+ // src/locales/ko.ts
3
+ function e(e, t, n) {
4
+ let r = e.replace(/[\s"'“”‘’)\]」』]+$/, ""), i = r.charCodeAt(r.length - 1);
5
+ if (i >= 44032 && i <= 55203) return (i - 44032) % 28 ? t : n;
6
+ let a = "0123456789".indexOf(r.charAt(r.length - 1));
7
+ return a >= 0 ? "0136780".includes(String(a)) ? t : n : `${t}(${n})`;
8
+ }
9
+ var t = {
10
+ id: "ko",
11
+ name: "한국어",
12
+ dir: "ltr",
13
+ ui: {
14
+ levels: {
15
+ observe: "보기 전용",
16
+ interact: "보기 및 조작",
17
+ advanced: "고급(스크립트 실행, 저장소 읽기)"
18
+ },
19
+ attachLevels: {
20
+ observe: "보기 전용",
21
+ interact: "보기 및 조작",
22
+ advanced: "고급(스크립트 실행, 저장소 읽기도 가능)"
23
+ },
24
+ state: {
25
+ none: "대기 중: 접속한 AI 없음",
26
+ observe: "AI가 이 페이지를 보고 있어요",
27
+ agent: "AI가 조작 중이에요. 그동안 입력이 멈춰요",
28
+ user: "직접 조작 중이에요. AI는 잠시 멈췄어요"
29
+ },
30
+ link: {
31
+ connecting: "연결 중",
32
+ online: "온라인",
33
+ offline: "오프라인"
34
+ },
35
+ connecting: "연결 중…",
36
+ helpPending: "지원 중",
37
+ copy: "복사",
38
+ copied: "복사됨",
39
+ noteHelp: "지원을 요청했어요. 개발자가 이 기기 코드로 찾아올 거예요.",
40
+ noteAuto: "자동 허용이 켜져 있어요. AI가 묻지 않고 접속해요. 언제든 직접 조작하거나 종료할 수 있어요.",
41
+ noteShare: "이 기기 코드를 개발자에게 알려 주세요. AI는 접속하기 전에 먼저 물어보고, 언제든 직접 조작하거나 종료할 수 있어요.",
42
+ help: "지원 요청",
43
+ cancelHelp: "요청 취소",
44
+ collapse: "숨기기",
45
+ deviceCode: "기기 코드",
46
+ barViewing: "AI 보는 중",
47
+ barAgent: "AI 조작 중",
48
+ barUser: "직접 조작 중",
49
+ connectedFor: (e) => `연결됨 · ${e}`,
50
+ takeover: "직접 조작",
51
+ handback: "AI에 맡기기",
52
+ end: "종료",
53
+ autoTitle: "AI 자동 허용",
54
+ autoOn: (e) => `묻지 않고 접속 · ${e}`,
55
+ autoOff: "AI가 접속하려고 할 때마다 물어봐요",
56
+ lockTitle: "AI 접속 중 화면 잠금",
57
+ lockOn: "AI가 접속해 있는 동안 탭과 스와이프가 막혀요",
58
+ lockOff: "AI가 접속해 있어도 탭하고 스크롤할 수 있어요. AI 조작을 방해하지 않게 주의해 주세요",
59
+ lockedToast: "AI가 접속해 있는 동안 화면이 잠겨요",
60
+ unlockedToast: "AI가 접속해 있어도 화면을 잠그지 않아요",
61
+ autoOffToast: "자동 허용을 껐어요. AI가 접속 전에 물어봐요",
62
+ autoDialogTitle: "자동 허용을 켤까요?",
63
+ autoDialogText: "AI가 이 기기에 접속을 요청하면 묻지 않고 아래에서 고른 권한으로 바로 접속해요. 접속할 때마다 화면에 알림이 표시되고, 언제든 직접 조작하거나 종료할 수 있어요. 이 설정은 여기서 다시 끌 수 있어요.",
64
+ turnOn: "켜기",
65
+ cancel: "취소",
66
+ autoOnToast: (e) => `자동 허용 켜짐 · ${e}`,
67
+ countdown: (e) => `${e}초 후 자동 거부`,
68
+ agentName: "AI 어시스턴트",
69
+ autoAllowedToast: (e, t) => `“${e}” 자동 허용됨 · ${t}`,
70
+ attachTitle: "AI 접속 요청",
71
+ attachText: (t) => `“${t}”${e(t, "이", "가")} 이 페이지를 보려고 해요. 허용할까요?`,
72
+ confirmTitle: "확인이 필요해요",
73
+ confirmText: (t) => `AI가 ${t}${e(t, "을", "를")} 요청했어요. 허용할까요?`,
74
+ allow: "허용",
75
+ deny: "거부"
76
+ },
77
+ action: {
78
+ quote: (e) => `“${e}”`,
79
+ click: (e) => `${e} 클릭`,
80
+ enterActivate: (e) => `${e}에서 Enter 키 누르기`,
81
+ enterSubmit: (e) => `Enter 키로 ${e} 제출`
82
+ },
83
+ agent: {
84
+ missingParam: (e) => `매개변수가 없습니다: ${e}`,
85
+ notString: (e) => `${e} 매개변수는 문자열이어야 합니다`,
86
+ unknownMethod: (e) => `알 수 없는 메서드: ${e}`,
87
+ needLevel: (e) => `${e} 권한 수준이 필요합니다`,
88
+ takenOver: "사용자가 직접 조작으로 전환했습니다. 사용자가 다시 맡길 때까지 기다리세요",
89
+ userDenied: "사용자가 이 작업을 거부했습니다",
90
+ confirmBusy: "이전 작업에 대한 사용자 확인을 아직 기다리는 중입니다",
91
+ unknownModifier: (e) => `알 수 없는 보조 키: ${e}`,
92
+ unknownKey: (e) => `알 수 없는 키: ${e}`,
93
+ refNotInSnapshot: (e) => `ref=${e} 항목이 최근 스냅샷에 없습니다. 스냅샷을 다시 가져오세요`,
94
+ refDetached: (e) => `ref=${e}에 해당하는 요소가 더 이상 페이지에 없습니다. 스냅샷을 다시 가져오세요`,
95
+ queryNeedsCriteria: "text, role, name 중 하나 이상이 필요합니다",
96
+ noSuchRecord: (e) => `세션 로그에 seq=${e} 기록이 없습니다(이미 정리되었을 수 있습니다)`,
97
+ noSuchSession: (e) => `이 기기에는 세션 ${e}의 로그가 없습니다(최근 3회 실행분만 보관됩니다)`,
98
+ noSessionLog: "이 기기에는 아직 세션 로그가 없습니다(프로젝트에서 기록을 껐거나, 페이지가 run({ record: false })로 기록을 껐을 수 있습니다)",
99
+ sessionLogUnavailable: "이 페이지에서는 IndexedDB를 사용할 수 없어 세션 로그가 없습니다",
100
+ readOnly: (e) => `${e} 요소는 읽기 전용입니다`,
101
+ isSelect: (e) => `${e} 요소는 드롭다운입니다. rwd.select를 사용하세요`,
102
+ notFillable: (e) => `${e} 요소는 텍스트 입력란이 아니라서 값을 입력할 수 없습니다`,
103
+ notSelect: (e) => `${e} 요소는 드롭다운(select)이 아닙니다. click을 사용하세요`,
104
+ singleSelect: "이 드롭다운은 옵션을 하나만 선택할 수 있습니다",
105
+ noSuchOption: (e, t) => `드롭다운에 “${e}” 옵션이 없습니다. 선택 가능한 옵션: ${t.join(", ")}`,
106
+ optionDisabled: (e) => `“${e}” 옵션은 비활성화되어 있습니다`,
107
+ badUrl: (e) => `잘못된 URL: ${e}`,
108
+ httpOnly: "http(s) URL만 열 수 있습니다",
109
+ textAppearTimeout: (e) => `“${e}” 텍스트가 나타나기를 기다리다 시간이 초과되었습니다`,
110
+ textGoneTimeout: (e) => `“${e}” 텍스트가 사라지기를 기다리다 시간이 초과되었습니다`,
111
+ badFunction: (e) => `function을 해석할 수 없습니다: ${e}`,
112
+ notAFunction: "function은 함수 표현식이어야 합니다. 예: \"() => document.title\"",
113
+ elementDetached: (e) => `${e} 요소가 더 이상 페이지에 없습니다. 스냅샷을 다시 가져오세요`,
114
+ notActionable: (e, t) => `${e} 요소를 조작할 수 없습니다: ${t}`,
115
+ notVisible: (e) => `${e} 요소가 보이지 않습니다`,
116
+ reasonMoving: "위치가 계속 바뀌고 있습니다(애니메이션 중일 수 있습니다)",
117
+ reasonOffscreen: "뷰포트 밖에 있습니다",
118
+ reasonObscured: (e, t) => `클릭 지점이 ${e} 요소에 가려져 있습니다(ref=${t}. 이 요소를 직접 클릭할 수 있습니다. 예: 팝업 배경을 클릭해 팝업 닫기)`,
119
+ overlayHeader: "[오버레이] 아래 요소들이 페이지 위를 덮고 있습니다. 클릭이 막히면 이 요소들을 직접 클릭하세요(예: 배경을 클릭해 팝업 닫기):",
120
+ overlayMask: (e, t, n) => `- 배경 ${e}, 뷰포트의 ${t}%를 덮음 [ref=${n}]`,
121
+ overlayLayer: (e, t, n, r) => `- 레이어 ${e}${t ? ` “${t}”` : ""}, 뷰포트의 ${n}%를 덮음 [ref=${r}]`,
122
+ reasonHidden: "보이지 않습니다",
123
+ reasonDisabled: "비활성화되어 있습니다",
124
+ storageUnavailable: (e) => `${e}Storage를 사용할 수 없습니다`,
125
+ badStorageArea: "area 매개변수는 'local', 'session', 'cookie' 중 하나여야 합니다",
126
+ requestFailed: "요청 실패",
127
+ noSuchRequest: (e) => `id=${e} 요청이 없습니다(이미 버려졌을 수 있습니다)`,
128
+ netFailed: (e, t) => `${e} → 실패(${t})`,
129
+ wsFailed: (e) => `WebSocket ${e} → 실패`,
130
+ tapped: (e, t) => `${e} “${t}” 탭함`,
131
+ tappedTag: (e, t) => `${e} ${t} 탭함`,
132
+ roles: {
133
+ button: "버튼",
134
+ link: "링크",
135
+ textbox: "텍스트 입력란",
136
+ searchbox: "검색창",
137
+ checkbox: "체크박스",
138
+ radio: "라디오 버튼",
139
+ switch: "스위치",
140
+ combobox: "드롭다운",
141
+ listbox: "목록",
142
+ option: "옵션",
143
+ tab: "탭",
144
+ menuitem: "메뉴 항목",
145
+ img: "이미지",
146
+ heading: "제목",
147
+ cell: "셀",
148
+ row: "행",
149
+ listitem: "목록 항목"
150
+ },
151
+ element: "요소"
152
+ }
153
+ };
154
+ export { t as default };
155
+
156
+ //# sourceMappingURL=ko.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ko.mjs","names":["josa","s","word","c","withFinal","withoutFinal","digit","ko","time","level","seconds","agent","action","name","target","method","m","key","ref","seq","id","tag","value","choices","url","text","message","reason","coverage","area","what","error","role"],"sources":["../../src/locales/ko.ts"],"sourcesContent":["import type { ActionMessages, AgentMessages, Locale, UiMessages } from '../i18n'\n\n// 한국어.\n\n/**\n * 앞말의 받침에 맞는 조사(을/를, 이/가…)를 고릅니다. 한글 음절이나 숫자로\n * 끝나면 받침으로 판단하고, 그 밖에는 “을(를)”처럼 두 형태를 함께 씁니다.\n */\nfunction josa(word: string, withFinal: string, withoutFinal: string) {\n const s = word.replace(/[\\s\"'“”‘’)\\]」』]+$/, '')\n const c = s.charCodeAt(s.length - 1)\n if (c >= 0xac00 && c <= 0xd7a3) return (c - 0xac00) % 28 ? withFinal : withoutFinal\n const digit = '0123456789'.indexOf(s.charAt(s.length - 1))\n if (digit >= 0) return '0136780'.includes(String(digit)) ? withFinal : withoutFinal\n return `${withFinal}(${withoutFinal})`\n}\n\nconst ui: UiMessages = {\n levels: {\n observe: '보기 전용',\n interact: '보기 및 조작',\n advanced: '고급(스크립트 실행, 저장소 읽기)',\n },\n attachLevels: {\n observe: '보기 전용',\n interact: '보기 및 조작',\n advanced: '고급(스크립트 실행, 저장소 읽기도 가능)',\n },\n state: {\n none: '대기 중: 접속한 AI 없음',\n observe: 'AI가 이 페이지를 보고 있어요',\n agent: 'AI가 조작 중이에요. 그동안 입력이 멈춰요',\n user: '직접 조작 중이에요. AI는 잠시 멈췄어요',\n },\n link: {\n connecting: '연결 중',\n online: '온라인',\n offline: '오프라인',\n },\n connecting: '연결 중…',\n helpPending: '지원 중',\n copy: '복사',\n copied: '복사됨',\n noteHelp: '지원을 요청했어요. 개발자가 이 기기 코드로 찾아올 거예요.',\n noteAuto: '자동 허용이 켜져 있어요. AI가 묻지 않고 접속해요. 언제든 직접 조작하거나 종료할 수 있어요.',\n noteShare: '이 기기 코드를 개발자에게 알려 주세요. AI는 접속하기 전에 먼저 물어보고, 언제든 직접 조작하거나 종료할 수 있어요.',\n help: '지원 요청',\n cancelHelp: '요청 취소',\n collapse: '숨기기',\n deviceCode: '기기 코드',\n barViewing: 'AI 보는 중',\n barAgent: 'AI 조작 중',\n barUser: '직접 조작 중',\n connectedFor: time => `연결됨 · ${time}`,\n takeover: '직접 조작',\n handback: 'AI에 맡기기',\n end: '종료',\n autoTitle: 'AI 자동 허용',\n autoOn: level => `묻지 않고 접속 · ${level}`,\n autoOff: 'AI가 접속하려고 할 때마다 물어봐요',\n lockTitle: 'AI 접속 중 화면 잠금',\n lockOn: 'AI가 접속해 있는 동안 탭과 스와이프가 막혀요',\n lockOff: 'AI가 접속해 있어도 탭하고 스크롤할 수 있어요. AI 조작을 방해하지 않게 주의해 주세요',\n lockedToast: 'AI가 접속해 있는 동안 화면이 잠겨요',\n unlockedToast: 'AI가 접속해 있어도 화면을 잠그지 않아요',\n autoOffToast: '자동 허용을 껐어요. AI가 접속 전에 물어봐요',\n autoDialogTitle: '자동 허용을 켤까요?',\n autoDialogText:\n 'AI가 이 기기에 접속을 요청하면 묻지 않고 아래에서 고른 권한으로 바로 접속해요. 접속할 때마다 화면에 알림이 표시되고, 언제든 직접 조작하거나 종료할 수 있어요. 이 설정은 여기서 다시 끌 수 있어요.',\n turnOn: '켜기',\n cancel: '취소',\n autoOnToast: level => `자동 허용 켜짐 · ${level}`,\n countdown: seconds => `${seconds}초 후 자동 거부`,\n\n agentName: 'AI 어시스턴트',\n autoAllowedToast: (agent, level) => `“${agent}” 자동 허용됨 · ${level}`,\n attachTitle: 'AI 접속 요청',\n attachText: agent => `“${agent}”${josa(agent, '이', '가')} 이 페이지를 보려고 해요. 허용할까요?`,\n confirmTitle: '확인이 필요해요',\n confirmText: action => `AI가 ${action}${josa(action, '을', '를')} 요청했어요. 허용할까요?`,\n allow: '허용',\n deny: '거부',\n}\n\nconst agent: AgentMessages = {\n missingParam: name => `매개변수가 없습니다: ${name}`,\n notString: name => `${name} 매개변수는 문자열이어야 합니다`,\n unknownMethod: method => `알 수 없는 메서드: ${method}`,\n needLevel: level => `${level} 권한 수준이 필요합니다`,\n takenOver: '사용자가 직접 조작으로 전환했습니다. 사용자가 다시 맡길 때까지 기다리세요',\n userDenied: '사용자가 이 작업을 거부했습니다',\n confirmBusy: '이전 작업에 대한 사용자 확인을 아직 기다리는 중입니다',\n\n unknownModifier: m => `알 수 없는 보조 키: ${m}`,\n unknownKey: key => `알 수 없는 키: ${key}`,\n\n refNotInSnapshot: ref => `ref=${ref} 항목이 최근 스냅샷에 없습니다. 스냅샷을 다시 가져오세요`,\n refDetached: ref => `ref=${ref}에 해당하는 요소가 더 이상 페이지에 없습니다. 스냅샷을 다시 가져오세요`,\n queryNeedsCriteria: 'text, role, name 중 하나 이상이 필요합니다',\n noSuchRecord: seq => `세션 로그에 seq=${seq} 기록이 없습니다(이미 정리되었을 수 있습니다)`,\n noSuchSession: id => `이 기기에는 세션 ${id}의 로그가 없습니다(최근 3회 실행분만 보관됩니다)`,\n noSessionLog:\n '이 기기에는 아직 세션 로그가 없습니다(프로젝트에서 기록을 껐거나, 페이지가 run({ record: false })로 기록을 껐을 수 있습니다)',\n sessionLogUnavailable: '이 페이지에서는 IndexedDB를 사용할 수 없어 세션 로그가 없습니다',\n\n readOnly: tag => `${tag} 요소는 읽기 전용입니다`,\n isSelect: tag => `${tag} 요소는 드롭다운입니다. rwd.select를 사용하세요`,\n notFillable: tag => `${tag} 요소는 텍스트 입력란이 아니라서 값을 입력할 수 없습니다`,\n notSelect: tag => `${tag} 요소는 드롭다운(select)이 아닙니다. click을 사용하세요`,\n singleSelect: '이 드롭다운은 옵션을 하나만 선택할 수 있습니다',\n noSuchOption: (value, choices) => `드롭다운에 “${value}” 옵션이 없습니다. 선택 가능한 옵션: ${choices.join(', ')}`,\n optionDisabled: value => `“${value}” 옵션은 비활성화되어 있습니다`,\n\n badUrl: url => `잘못된 URL: ${url}`,\n httpOnly: 'http(s) URL만 열 수 있습니다',\n textAppearTimeout: text => `“${text}” 텍스트가 나타나기를 기다리다 시간이 초과되었습니다`,\n textGoneTimeout: text => `“${text}” 텍스트가 사라지기를 기다리다 시간이 초과되었습니다`,\n badFunction: message => `function을 해석할 수 없습니다: ${message}`,\n notAFunction: 'function은 함수 표현식이어야 합니다. 예: \"() => document.title\"',\n\n elementDetached: tag => `${tag} 요소가 더 이상 페이지에 없습니다. 스냅샷을 다시 가져오세요`,\n notActionable: (tag, reason) => `${tag} 요소를 조작할 수 없습니다: ${reason}`,\n notVisible: tag => `${tag} 요소가 보이지 않습니다`,\n reasonMoving: '위치가 계속 바뀌고 있습니다(애니메이션 중일 수 있습니다)',\n reasonOffscreen: '뷰포트 밖에 있습니다',\n reasonObscured: (tag, ref) =>\n `클릭 지점이 ${tag} 요소에 가려져 있습니다(ref=${ref}. 이 요소를 직접 클릭할 수 있습니다. 예: 팝업 배경을 클릭해 팝업 닫기)`,\n\n overlayHeader: '[오버레이] 아래 요소들이 페이지 위를 덮고 있습니다. 클릭이 막히면 이 요소들을 직접 클릭하세요(예: 배경을 클릭해 팝업 닫기):',\n overlayMask: (tag, coverage, ref) => `- 배경 ${tag}, 뷰포트의 ${coverage}%를 덮음 [ref=${ref}]`,\n overlayLayer: (tag, text, coverage, ref) =>\n `- 레이어 ${tag}${text ? ` “${text}”` : ''}, 뷰포트의 ${coverage}%를 덮음 [ref=${ref}]`,\n reasonHidden: '보이지 않습니다',\n reasonDisabled: '비활성화되어 있습니다',\n\n storageUnavailable: area => `${area}Storage를 사용할 수 없습니다`,\n badStorageArea: \"area 매개변수는 'local', 'session', 'cookie' 중 하나여야 합니다\",\n\n requestFailed: '요청 실패',\n noSuchRequest: id => `id=${id} 요청이 없습니다(이미 버려졌을 수 있습니다)`,\n netFailed: (what, error) => `${what} → 실패(${error})`,\n wsFailed: url => `WebSocket ${url} → 실패`,\n\n tapped: (role, text) => `${role} “${text}” 탭함`,\n tappedTag: (role, tag) => `${role} ${tag} 탭함`,\n roles: {\n button: '버튼',\n link: '링크',\n textbox: '텍스트 입력란',\n searchbox: '검색창',\n checkbox: '체크박스',\n radio: '라디오 버튼',\n switch: '스위치',\n combobox: '드롭다운',\n listbox: '목록',\n option: '옵션',\n tab: '탭',\n menuitem: '메뉴 항목',\n img: '이미지',\n heading: '제목',\n cell: '셀',\n row: '행',\n listitem: '목록 항목',\n },\n element: '요소',\n}\n\nconst action: ActionMessages = {\n quote: name => `“${name}”`,\n click: target => `${target} 클릭`,\n enterActivate: target => `${target}에서 Enter 키 누르기`,\n enterSubmit: target => `Enter 키로 ${target} 제출`,\n}\n\nconst ko: Locale = { id: 'ko', name: '한국어', dir: 'ltr', ui, action, agent }\n\nexport default ko\n"],"mappings":"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"}