diff --git a/assets/components/search/DomainResult.tsx b/assets/components/search/DomainResult.tsx new file mode 100644 index 0000000..05d0874 --- /dev/null +++ b/assets/components/search/DomainResult.tsx @@ -0,0 +1,55 @@ +import {Badge, Card, Divider, Flex, Space, Tag, Tooltip, Typography} from "antd"; +import {t} from "ttag"; +import {EventTimeline} from "./EventTimeline"; +import {EntitiesList} from "./EntitiesList"; +import {DomainDiagram} from "./DomainDiagram"; +import React from "react"; +import {Domain} from "../../utils/api"; +import {rdapStatusCodeDetailTranslation} from "./rdapStatusCodeDetailTranslation"; + +export function DomainResult({domain}: { domain: Domain }) { + + const rdapStatusCodeDetailTranslated = rdapStatusCodeDetailTranslation() + + return + + + {domain.ldhName}{domain.handle && {domain.handle}} + } + size="small"> + {domain.status.length > 0 && + <> + {t`EPP Status Codes`} + + { + domain.status.map(s => + + {s} + + ) + } + + + } + {t`Timeline`} + + { + domain.entities.length > 0 && + <> + {t`Entities`} + + + } + + + + +} \ No newline at end of file diff --git a/assets/components/search/EntitiesList.tsx b/assets/components/search/EntitiesList.tsx index c9c885c..51768c1 100644 --- a/assets/components/search/EntitiesList.tsx +++ b/assets/components/search/EntitiesList.tsx @@ -1,5 +1,5 @@ import vCard from "vcf"; -import {Avatar, List} from "antd"; +import {Avatar, List, Tooltip} from "antd"; import {BankOutlined, IdcardOutlined, SignatureOutlined, ToolOutlined, UserOutlined} from "@ant-design/icons"; import React from "react"; import {Domain} from "../../utils/api"; diff --git a/assets/components/search/EventTimeline.tsx b/assets/components/search/EventTimeline.tsx index c2a07c6..f73b775 100644 --- a/assets/components/search/EventTimeline.tsx +++ b/assets/components/search/EventTimeline.tsx @@ -6,11 +6,11 @@ import { SignatureOutlined, SyncOutlined } from "@ant-design/icons"; -import {Timeline} from "antd"; +import {Timeline, Tooltip} from "antd"; import React from "react"; import {Domain, EventAction} from "../../utils/api"; -import {t} from "ttag"; import useBreakpoint from "../../hooks/useBreakpoint"; +import {rdapEventDetailTranslation, rdapEventNameTranslation} from "./rdapEventActionDetailTranslation"; export function actionToColor(a: EventAction) { return a === 'registration' ? 'green' : @@ -21,25 +21,13 @@ export function actionToColor(a: EventAction) { a === 'last changed' ? 'blue' : 'default' } -export const domainEvent = () => ({ - registration: t`Registration`, - reregistration: t`Reregistration`, - 'last changed': t`Changed`, - expiration: t`Expiration`, - deletion: t`Deletion`, - reinstantiation: t`Reinstantiation`, - transfer: t`Transfer`, - locked: t`Locked`, - unlocked: t`Unlocked`, - 'registrar expiration': t`Registrar expiration`, - 'enum validation expiration': t`ENUM validation expiration` -}) export function EventTimeline({domain}: { domain: Domain }) { const sm = useBreakpoint('sm') const locale = navigator.language.split('-')[0] - const domainEventTranslated = domainEvent() + const rdapEventNameTranslated = rdapEventNameTranslation() + const rdapEventDetailTranslated = rdapEventDetailTranslation() const domainEvents = domain.events.sort((e1, e2) => new Date(e2.date).getTime() - new Date(e1.date).getTime()) const expirationEvents = domainEvents.filter(e => e.action === 'expiration') @@ -62,14 +50,17 @@ export function EventTimeline({domain}: { domain: Domain }) { dot = } - const eventName = Object.keys(domainEventTranslated).includes(action) ? domainEventTranslated[action as keyof typeof domainEventTranslated] : action + const eventName = Object.keys(rdapEventNameTranslated).includes(action) ? rdapEventNameTranslated[action as keyof typeof rdapEventNameTranslated] : action const dateStr = new Date(date).toLocaleString(locale) + const eventDetail = action in rdapEventDetailTranslated ? rdapEventDetailTranslated[action as keyof typeof rdapEventDetailTranslated] : undefined const text = sm ? { - children: <>{eventName} {dateStr} + children: + {eventName} {dateStr} + } : { label: dateStr, - children: eventName, + children: {eventName}, } return { diff --git a/assets/components/search/rdapEventActionDetailTranslation.ts b/assets/components/search/rdapEventActionDetailTranslation.ts new file mode 100644 index 0000000..d03bcf7 --- /dev/null +++ b/assets/components/search/rdapEventActionDetailTranslation.ts @@ -0,0 +1,35 @@ +import {t} from "ttag"; + +/** + * @see https://www.iana.org/assignments/rdap-json-values/rdap-json-values.xhtml + */ +export const rdapEventNameTranslation = () => ({ + registration: t`Registration`, + reregistration: t`Reregistration`, + 'last changed': t`Changed`, + expiration: t`Expiration`, + deletion: t`Deletion`, + reinstantiation: t`Reinstantiation`, + transfer: t`Transfer`, + locked: t`Locked`, + unlocked: t`Unlocked`, + 'registrar expiration': t`Registrar expiration`, + 'enum validation expiration': t`ENUM validation expiration` +}) + +/** + * @see https://www.iana.org/assignments/rdap-json-values/rdap-json-values.xhtml + */ +export const rdapEventDetailTranslation = () => ({ + registration: t`The object instance was initially registered.`, + reregistration: t`The object instance was registered subsequently to initial registration.`, + 'last changed': t`An action noting when the information in the object instance was last changed.`, + expiration: t`The object instance has been removed or will be removed at a predetermined date and time from the registry.`, + deletion: t`The object instance was removed from the registry at a point in time that was not predetermined.`, + reinstantiation: t`The object instance was reregistered after having been removed from the registry.`, + transfer: t`The object instance was transferred from one registrar to another.`, + locked: t`The object instance was locked.`, + unlocked: t`The object instance was unlocked.`, + 'registrar expiration': t`An action noting the expiration date of the object in the registrar system.`, + 'enum validation expiration': t`Association of phone number represented by this ENUM domain to registrant has expired or will expire at a predetermined date and time.` +}) \ No newline at end of file diff --git a/assets/components/search/rdapStatusCodeDetailTranslation.ts b/assets/components/search/rdapStatusCodeDetailTranslation.ts new file mode 100644 index 0000000..34b0b7c --- /dev/null +++ b/assets/components/search/rdapStatusCodeDetailTranslation.ts @@ -0,0 +1,43 @@ +import {t} from "ttag"; + +/** + * @see https://www.iana.org/assignments/rdap-json-values/rdap-json-values.xhtml + */ +export const rdapStatusCodeDetailTranslation = () => ({ + validated: t`Signifies that the data of the object instance has been found to be accurate. This type of status is usually found on entity object instances to note the validity of identifying contact information.`, + 'renew prohibited': t`Renewal or reregistration of the object instance is forbidden.`, + 'update prohibited': t`Updates to the object instance are forbidden.`, + 'transfer prohibited': t`Transfers of the registration from one registrar to another are forbidden. This type of status normally applies to DNR domain names.`, + 'delete prohibited': t`Deletion of the registration of the object instance is forbidden. This type of status normally applies to DNR domain names.`, + 'proxy': t`The registration of the object instance has been performed by a third party. This is most commonly applied to entities.`, + 'private': t`The information of the object instance is not designated for public consumption. This is most commonly applied to entities.`, + 'removed': t`Some of the information of the object instance has not been made available and has been removed. This is most commonly applied to entities.`, + 'obscured': t`Some of the information of the object instance has been altered for the purposes of not readily revealing the actual information of the object instance. This is most commonly applied to entities.`, + 'associated': t`The object instance is associated with other object instances in the registry. This is most commonly used to signify that a nameserver is associated with a domain or that an entity is associated with a network resource or domain.`, + 'active': t`The object instance is in use. For domain names, it signifies that the domain name is published in DNS. For network and autnum registrations, it signifies that they are allocated or assigned for use in operational networks. This maps to the "OK" status of the Extensible Provisioning Protocol (EPP) [RFC5730].`, + 'inactive': t`The object instance is not in use.`, + 'locked': t`Changes to the object instance cannot be made, including the association of other object instances.`, + 'pending create': t`A request has been received for the creation of the object instance, but this action is not yet complete.`, + 'pending renew': t`A request has been received for the renewal of the object instance, but this action is not yet complete.`, + 'pending transfer': t`A request has been received for the transfer of the object instance, but this action is not yet complete.`, + 'pending update': t`A request has been received for the update or modification of the object instance, but this action is not yet complete.`, + 'pending delete': t`A request has been received for the deletion or removal of the object instance, but this action is not yet complete. For domains, this might mean that the name is no longer published in DNS but has not yet been purged from the registry database.`, + 'add period': t`This grace period is provided after the initial registration of the object. If the object is deleted by the client during this period, the server provides a credit to the client for the cost of the registration. This maps to the Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP) [RFC3915] 'addPeriod' status.`, + 'auto renew period': t`This grace period is provided after an object registration period expires and is extended (renewed) automatically by the server. If the object is deleted by the client during this period, the server provides a credit to the client for the cost of the auto renewal. This maps to the Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP) [RFC3915] 'autoRenewPeriod' status.`, + 'client delete prohibited': t`The client requested that requests to delete the object MUST be rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping [RFC5731], Extensible Provisioning Protocol (EPP) Host Mapping [RFC5732], and Extensible Provisioning Protocol (EPP) Contact Mapping [RFC5733] 'clientDeleteProhibited' status.`, + 'client hold': t`The client requested that the DNS delegation information MUST NOT be published for the object. This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping [RFC5731] 'clientHold' status.`, + 'client renew prohibited': t`The client requested that requests to renew the object MUST be rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping [RFC5731] 'clientRenewProhibited' status.`, + 'client transfer prohibited': t`The client requested that requests to transfer the object MUST be rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping [RFC5731] and Extensible Provisioning Protocol (EPP) Contact Mapping [RFC5733] 'clientTransferProhibited' status.`, + 'client update prohibited': t`The client requested that requests to update the object (other than to remove this status) MUST be rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping [RFC5731], Extensible Provisioning Protocol (EPP) Host Mapping [RFC5732], and Extensible Provisioning Protocol (EPP) Contact Mapping [RFC5733] 'clientUpdateProhibited' status.`, + 'pending restore': t`An object is in the process of being restored after being in the redemption period state. This maps to the Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP) [RFC3915] 'pendingRestore' status.`, + 'redemption period': t`A delete has been received, but the object has not yet been purged because an opportunity exists to restore the object and abort the deletion process. This maps to the Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP) [RFC3915] 'redemptionPeriod' status.`, + 'renew period': t`This grace period is provided after an object registration period is explicitly extended (renewed) by the client. If the object is deleted by the client during this period, the server provides a credit to the client for the cost of the renewal. This maps to the Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP) [RFC3915] 'renewPeriod' status.`, + 'server delete prohibited': t`The server set the status so that requests to delete the object MUST be rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping [RFC5731], Extensible Provisioning Protocol (EPP) Host Mapping [RFC5732], and Extensible Provisioning Protocol (EPP) Contact Mapping [RFC5733] 'serverDeleteProhibited' status.`, + 'server renew prohibited': t`The server set the status so that requests to renew the object MUST be rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping [RFC5731] 'serverRenewProhibited' status.`, + 'server transfer prohibited': t`The server set the status so that requests to transfer the object MUST be rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping [RFC5731] and Extensible Provisioning Protocol (EPP) Contact Mapping [RFC5733] 'serverTransferProhibited' status.`, + 'server update prohibited': t`The server set the status so that requests to update the object (other than to remove this status) MUST be rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping [RFC5731], Extensible Provisioning Protocol (EPP) Host Mapping [RFC5732], and Extensible Provisioning Protocol (EPP) Contact Mapping [RFC5733] 'serverUpdateProhibited' status.`, + 'server hold': t`The server set the status so that DNS delegation information MUST NOT be published for the object. This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping [RFC5731] 'serverHold' status.`, + 'transfer period': t`This grace period is provided after the successful transfer of object registration sponsorship from one client to another client. If the object is deleted by the client during this period, the server provides a credit to the client for the cost of the transfer. This maps to the Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP) [RFC3915] 'transferPeriod' status.`, + 'administrative': t`The object instance has been allocated administratively (i.e., not for use by the recipient in their own right in operational networks).`, + 'reserved': t`The object instance has been allocated to an IANA special-purpose address registry.`, +}) diff --git a/assets/components/tracking/watchlist/WatchlistCard.tsx b/assets/components/tracking/watchlist/WatchlistCard.tsx index 2ef9827..ec79718 100644 --- a/assets/components/tracking/watchlist/WatchlistCard.tsx +++ b/assets/components/tracking/watchlist/WatchlistCard.tsx @@ -1,16 +1,17 @@ -import {Card, Divider, Flex, Space, Table, Tag, Typography} from "antd"; +import {Card, Divider, Space, Table, Tag, Typography} from "antd"; import {DisconnectOutlined, LinkOutlined} from "@ant-design/icons"; import {t} from "ttag"; import {ViewDiagramWatchlistButton} from "./diagram/ViewDiagramWatchlistButton"; import {UpdateWatchlistButton} from "./UpdateWatchlistButton"; import {DeleteWatchlistButton} from "./DeleteWatchlistButton"; import punycode from "punycode/punycode"; -import {actionToColor, domainEvent} from "../../search/EventTimeline"; -import React, {useState} from "react"; +import {actionToColor} from "../../search/EventTimeline"; +import React from "react"; import {Watchlist} from "../../../pages/tracking/WatchlistPage"; import {Connector} from "../../../utils/api/connectors"; import useBreakpoint from "../../../hooks/useBreakpoint"; import {CalendarWatchlistButton} from "./CalendarWatchlistButton"; +import {rdapEventNameTranslation} from "../../search/rdapEventActionDetailTranslation"; export function WatchlistCard({watchlist, onUpdateWatchlist, connectors, onDelete}: { watchlist: Watchlist, @@ -19,7 +20,7 @@ export function WatchlistCard({watchlist, onUpdateWatchlist, connectors, onDelet onDelete: () => void }) { const sm = useBreakpoint('sm') - const domainEventTranslated = domainEvent() + const rdapEventNameTranslated = rdapEventNameTranslation() const columns = [ { @@ -75,7 +76,7 @@ export function WatchlistCard({watchlist, onUpdateWatchlist, connectors, onDelet domains: watchlist.domains.map(d => {punycode.toUnicode(d.ldhName)}), events: watchlist.triggers?.filter(t => t.action === 'email') .map(t => - {domainEventTranslated[t.event as keyof typeof domainEventTranslated]} + {rdapEventNameTranslated[t.event as keyof typeof rdapEventNameTranslated]} ) }]} diff --git a/assets/components/tracking/watchlist/WatchlistForm.tsx b/assets/components/tracking/watchlist/WatchlistForm.tsx index 87c428f..2582587 100644 --- a/assets/components/tracking/watchlist/WatchlistForm.tsx +++ b/assets/components/tracking/watchlist/WatchlistForm.tsx @@ -3,7 +3,8 @@ import {t} from "ttag"; import {ApiOutlined, MinusCircleOutlined, PlusOutlined} from "@ant-design/icons"; import React from "react"; import {Connector} from "../../../utils/api/connectors"; -import {actionToColor, domainEvent} from "../../search/EventTimeline"; +import {actionToColor} from "../../search/EventTimeline"; +import {rdapEventNameTranslation} from "../../search/rdapEventActionDetailTranslation"; type TagRender = SelectProps['tagRender']; @@ -31,7 +32,7 @@ export function WatchlistForm({form, connectors, onFinish, isCreation}: { onFinish: (values: { domains: string[], triggers: string[], token: string }) => void isCreation: boolean }) { - const domainEventTranslated = domainEvent() + const rdapEventNameTranslated = rdapEventNameTranslation() const triggerTagRenderer: TagRender = (props) => { const {value, closable, onClose} = props; @@ -47,7 +48,7 @@ export function WatchlistForm({form, connectors, onFinish, isCreation}: { onClose={onClose} style={{marginInlineEnd: 4}} > - {domainEventTranslated[value as keyof typeof domainEventTranslated]} + {rdapEventNameTranslated[value as keyof typeof rdapEventNameTranslated]} ) } @@ -156,9 +157,9 @@ export function WatchlistForm({form, connectors, onFinish, isCreation}: { mode="multiple" tagRender={triggerTagRenderer} style={{width: '100%'}} - options={Object.keys(domainEventTranslated).map(e => ({ + options={Object.keys(rdapEventNameTranslated).map(e => ({ value: e, - label: domainEventTranslated[e as keyof typeof domainEventTranslated] + label: rdapEventNameTranslated[e as keyof typeof rdapEventNameTranslated] }))} /> diff --git a/assets/pages/search/DomainSearchPage.tsx b/assets/pages/search/DomainSearchPage.tsx index e5380e8..5f50815 100644 --- a/assets/pages/search/DomainSearchPage.tsx +++ b/assets/pages/search/DomainSearchPage.tsx @@ -1,15 +1,11 @@ import React, {useState} from "react"; -import {Badge, Card, Divider, Empty, Flex, FormProps, message, Skeleton, Space, Tag, Typography} from "antd"; +import {Card, Empty, Flex, FormProps, message, Skeleton} from "antd"; import {Domain, getDomain} from "../../utils/api"; import {AxiosError} from "axios" import {t} from 'ttag' import {DomainSearchBar, FieldType} from "../../components/search/DomainSearchBar"; -import {EventTimeline} from "../../components/search/EventTimeline"; -import {EntitiesList} from "../../components/search/EntitiesList"; import {showErrorAPI} from "../../utils"; -import {DomainDiagram} from "../../components/search/DomainDiagram"; - -const {Text} = Typography; +import {DomainResult} from "../../components/search/DomainResult"; export default function DomainSearchPage() { const [domain, setDomain] = useState() @@ -34,43 +30,7 @@ export default function DomainSearchPage() { { domain && - (!domain.deleted ? - - - {domain.ldhName}{domain.handle && {domain.handle}} - } - size="small"> - {domain.status.length > 0 && - <> - {t`EPP Status Codes`} - - { - domain.status.map(s => - {s} - ) - } - - - } - {t`Timeline`} - - { - domain.entities.length > 0 && - <> - {t`Entities`} - - - } - - - - + (!domain.deleted ? : ) } diff --git a/translations/translations.pot b/translations/translations.pot index 072dd14..bc72430 100644 --- a/translations/translations.pot +++ b/translations/translations.pot @@ -22,8 +22,8 @@ msgstr "" #: assets/components/tracking/connector/ConnectorForm.tsx:142 #: assets/components/tracking/connector/ConnectorForm.tsx:156 #: assets/components/tracking/connector/ConnectorForm.tsx:165 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:109 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:205 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:110 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:206 msgid "Required" msgstr "" @@ -40,52 +40,377 @@ msgstr "" msgid "Log in with SSO" msgstr "" -#: assets/components/search/EventTimeline.tsx:25 +#: assets/components/search/rdapEventActionDetailTranslation.ts:7 msgid "Registration" msgstr "" -#: assets/components/search/EventTimeline.tsx:26 +#: assets/components/search/rdapEventActionDetailTranslation.ts:8 msgid "Reregistration" msgstr "" -#: assets/components/search/EventTimeline.tsx:27 +#: assets/components/search/rdapEventActionDetailTranslation.ts:9 msgid "Changed" msgstr "" -#: assets/components/search/EventTimeline.tsx:28 +#: assets/components/search/rdapEventActionDetailTranslation.ts:10 msgid "Expiration" msgstr "" -#: assets/components/search/EventTimeline.tsx:29 +#: assets/components/search/rdapEventActionDetailTranslation.ts:11 msgid "Deletion" msgstr "" -#: assets/components/search/EventTimeline.tsx:30 +#: assets/components/search/rdapEventActionDetailTranslation.ts:12 msgid "Reinstantiation" msgstr "" -#: assets/components/search/EventTimeline.tsx:31 +#: assets/components/search/rdapEventActionDetailTranslation.ts:13 msgid "Transfer" msgstr "" -#: assets/components/search/EventTimeline.tsx:32 +#: assets/components/search/rdapEventActionDetailTranslation.ts:14 msgid "Locked" msgstr "" -#: assets/components/search/EventTimeline.tsx:33 +#: assets/components/search/rdapEventActionDetailTranslation.ts:15 msgid "Unlocked" msgstr "" -#: assets/components/search/EventTimeline.tsx:34 +#: assets/components/search/rdapEventActionDetailTranslation.ts:16 msgid "Registrar expiration" msgstr "" -#: assets/components/search/EventTimeline.tsx:35 +#: assets/components/search/rdapEventActionDetailTranslation.ts:17 msgid "ENUM validation expiration" msgstr "" +#: assets/components/search/rdapEventActionDetailTranslation.ts:24 +msgid "The object instance was initially registered." +msgstr "" + +#: assets/components/search/rdapEventActionDetailTranslation.ts:25 +msgid "The object instance was registered subsequently to initial registration." +msgstr "" + +#: assets/components/search/rdapEventActionDetailTranslation.ts:26 +msgid "" +"An action noting when the information in the object instance was last " +"changed." +msgstr "" + +#: assets/components/search/rdapEventActionDetailTranslation.ts:27 +msgid "" +"The object instance has been removed or will be removed at a predetermined " +"date and time from the registry." +msgstr "" + +#: assets/components/search/rdapEventActionDetailTranslation.ts:28 +msgid "" +"The object instance was removed from the registry at a point in time that " +"was not predetermined." +msgstr "" + +#: assets/components/search/rdapEventActionDetailTranslation.ts:29 +msgid "" +"The object instance was reregistered after having been removed from the " +"registry." +msgstr "" + +#: assets/components/search/rdapEventActionDetailTranslation.ts:30 +msgid "The object instance was transferred from one registrar to another." +msgstr "" + +#: assets/components/search/rdapEventActionDetailTranslation.ts:31 +msgid "The object instance was locked." +msgstr "" + +#: assets/components/search/rdapEventActionDetailTranslation.ts:32 +msgid "The object instance was unlocked." +msgstr "" + +#: assets/components/search/rdapEventActionDetailTranslation.ts:33 +msgid "An action noting the expiration date of the object in the registrar system." +msgstr "" + +#: assets/components/search/rdapEventActionDetailTranslation.ts:34 +msgid "" +"Association of phone number represented by this ENUM domain to registrant " +"has expired or will expire at a predetermined date and time." +msgstr "" + +#: assets/components/search/DomainResult.tsx:28 +msgid "EPP Status Codes" +msgstr "" + +#: assets/components/search/DomainResult.tsx:42 +msgid "Timeline" +msgstr "" + +#: assets/components/search/DomainResult.tsx:47 +msgid "Entities" +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:7 +msgid "" +"Signifies that the data of the object instance has been found to be " +"accurate. This type of status is usually found on entity object instances " +"to note the validity of identifying contact information." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:8 +msgid "Renewal or reregistration of the object instance is forbidden." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:9 +msgid "Updates to the object instance are forbidden." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:10 +msgid "" +"Transfers of the registration from one registrar to another are forbidden. " +"This type of status normally applies to DNR domain names." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:11 +msgid "" +"Deletion of the registration of the object instance is forbidden. This type " +"of status normally applies to DNR domain names." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:12 +msgid "" +"The registration of the object instance has been performed by a third " +"party. This is most commonly applied to entities." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:13 +msgid "" +"The information of the object instance is not designated for public " +"consumption. This is most commonly applied to entities." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:14 +msgid "" +"Some of the information of the object instance has not been made available " +"and has been removed. This is most commonly applied to entities." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:15 +msgid "" +"Some of the information of the object instance has been altered for the " +"purposes of not readily revealing the actual information of the object " +"instance. This is most commonly applied to entities." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:16 +msgid "" +"The object instance is associated with other object instances in the " +"registry. This is most commonly used to signify that a nameserver is " +"associated with a domain or that an entity is associated with a network " +"resource or domain." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:17 +msgid "" +"The object instance is in use. For domain names, it signifies that the " +"domain name is published in DNS. For network and autnum registrations, it " +"signifies that they are allocated or assigned for use in operational " +"networks. This maps to the \"OK\" status of the Extensible Provisioning " +"Protocol (EPP) [RFC5730]." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:18 +msgid "The object instance is not in use." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:19 +msgid "" +"Changes to the object instance cannot be made, including the association of " +"other object instances." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:20 +msgid "" +"A request has been received for the creation of the object instance, but " +"this action is not yet complete." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:21 +msgid "" +"A request has been received for the renewal of the object instance, but " +"this action is not yet complete." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:22 +msgid "" +"A request has been received for the transfer of the object instance, but " +"this action is not yet complete." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:23 +msgid "" +"A request has been received for the update or modification of the object " +"instance, but this action is not yet complete." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:24 +msgid "" +"A request has been received for the deletion or removal of the object " +"instance, but this action is not yet complete. For domains, this might mean " +"that the name is no longer published in DNS but has not yet been purged " +"from the registry database." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:25 +msgid "" +"This grace period is provided after the initial registration of the object. " +"If the object is deleted by the client during this period, the server " +"provides a credit to the client for the cost of the registration. This maps " +"to the Domain Registry Grace Period Mapping for the Extensible Provisioning " +"Protocol (EPP) [RFC3915] 'addPeriod' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:26 +msgid "" +"This grace period is provided after an object registration period expires " +"and is extended (renewed) automatically by the server. If the object is " +"deleted by the client during this period, the server provides a credit to " +"the client for the cost of the auto renewal. This maps to the Domain " +"Registry Grace Period Mapping for the Extensible Provisioning Protocol " +"(EPP) [RFC3915] 'autoRenewPeriod' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:27 +msgid "" +"The client requested that requests to delete the object MUST be rejected. " +"This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping " +"[RFC5731], Extensible Provisioning Protocol (EPP) Host Mapping [RFC5732], " +"and Extensible Provisioning Protocol (EPP) Contact Mapping [RFC5733] " +"'clientDeleteProhibited' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:28 +msgid "" +"The client requested that the DNS delegation information MUST NOT be " +"published for the object. This maps to the Extensible Provisioning Protocol " +"(EPP) Domain Name Mapping [RFC5731] 'clientHold' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:29 +msgid "" +"The client requested that requests to renew the object MUST be rejected. " +"This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping " +"[RFC5731] 'clientRenewProhibited' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:30 +msgid "" +"The client requested that requests to transfer the object MUST be rejected. " +"This maps to the Extensible Provisioning Protocol (EPP) Domain Name Mapping " +"[RFC5731] and Extensible Provisioning Protocol (EPP) Contact Mapping " +"[RFC5733] 'clientTransferProhibited' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:31 +msgid "" +"The client requested that requests to update the object (other than to " +"remove this status) MUST be rejected. This maps to the Extensible " +"Provisioning Protocol (EPP) Domain Name Mapping [RFC5731], Extensible " +"Provisioning Protocol (EPP) Host Mapping [RFC5732], and Extensible " +"Provisioning Protocol (EPP) Contact Mapping [RFC5733] " +"'clientUpdateProhibited' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:32 +msgid "" +"An object is in the process of being restored after being in the redemption " +"period state. This maps to the Domain Registry Grace Period Mapping for the " +"Extensible Provisioning Protocol (EPP) [RFC3915] 'pendingRestore' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:33 +msgid "" +"A delete has been received, but the object has not yet been purged because " +"an opportunity exists to restore the object and abort the deletion process. " +"This maps to the Domain Registry Grace Period Mapping for the Extensible " +"Provisioning Protocol (EPP) [RFC3915] 'redemptionPeriod' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:34 +msgid "" +"This grace period is provided after an object registration period is " +"explicitly extended (renewed) by the client. If the object is deleted by " +"the client during this period, the server provides a credit to the client " +"for the cost of the renewal. This maps to the Domain Registry Grace Period " +"Mapping for the Extensible Provisioning Protocol (EPP) [RFC3915] " +"'renewPeriod' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:35 +msgid "" +"The server set the status so that requests to delete the object MUST be " +"rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain " +"Name Mapping [RFC5731], Extensible Provisioning Protocol (EPP) Host Mapping " +"[RFC5732], and Extensible Provisioning Protocol (EPP) Contact Mapping " +"[RFC5733] 'serverDeleteProhibited' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:36 +msgid "" +"The server set the status so that requests to renew the object MUST be " +"rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain " +"Name Mapping [RFC5731] 'serverRenewProhibited' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:37 +msgid "" +"The server set the status so that requests to transfer the object MUST be " +"rejected. This maps to the Extensible Provisioning Protocol (EPP) Domain " +"Name Mapping [RFC5731] and Extensible Provisioning Protocol (EPP) Contact " +"Mapping [RFC5733] 'serverTransferProhibited' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:38 +msgid "" +"The server set the status so that requests to update the object (other than " +"to remove this status) MUST be rejected. This maps to the Extensible " +"Provisioning Protocol (EPP) Domain Name Mapping [RFC5731], Extensible " +"Provisioning Protocol (EPP) Host Mapping [RFC5732], and Extensible " +"Provisioning Protocol (EPP) Contact Mapping [RFC5733] " +"'serverUpdateProhibited' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:39 +msgid "" +"The server set the status so that DNS delegation information MUST NOT be " +"published for the object. This maps to the Extensible Provisioning Protocol " +"(EPP) Domain Name Mapping [RFC5731] 'serverHold' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:40 +msgid "" +"This grace period is provided after the successful transfer of object " +"registration sponsorship from one client to another client. If the object " +"is deleted by the client during this period, the server provides a credit " +"to the client for the cost of the transfer. This maps to the Domain " +"Registry Grace Period Mapping for the Extensible Provisioning Protocol " +"(EPP) [RFC3915] 'transferPeriod' status." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:41 +msgid "" +"The object instance has been allocated administratively (i.e., not for use " +"by the recipient in their own right in operational networks)." +msgstr "" + +#: assets/components/search/rdapStatusCodeDetailTranslation.ts:42 +msgid "" +"The object instance has been allocated to an IANA special-purpose address " +"registry." +msgstr "" + #: assets/components/search/DomainSearchBar.tsx:26 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:112 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:113 msgid "This domain name does not appear to be valid" msgstr "" @@ -204,12 +529,12 @@ msgid "" msgstr "" #: assets/components/tracking/connector/ConnectorForm.tsx:176 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:245 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:246 msgid "Create" msgstr "" #: assets/components/tracking/connector/ConnectorForm.tsx:179 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:248 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:249 msgid "Reset" msgstr "" @@ -242,72 +567,72 @@ msgstr "" msgid "No" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:66 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:67 msgid "Name" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:77 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:78 msgid "Watchlist Name" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:78 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:79 msgid "Naming the Watchlist makes it easier to find in the list below." msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:89 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:90 msgid "At least one domain name" msgstr "" -#: assets/components/tracking/watchlist/WatchlistCard.tsx:26 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:100 +#: assets/components/tracking/watchlist/WatchlistCard.tsx:27 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:101 msgid "Domain names" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:118 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:119 msgid "Domain name" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:135 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:136 msgid "Add a Domain name" msgstr "" -#: assets/components/tracking/watchlist/WatchlistCard.tsx:30 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:142 +#: assets/components/tracking/watchlist/WatchlistCard.tsx:31 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:143 msgid "Tracked events" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:144 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:145 msgid "At least one trigger" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:166 -#: assets/components/tracking/watchlist/WatchlistForm.tsx:180 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:167 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:181 msgid "Connector" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:176 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:177 msgid "" "Please make sure the connector information is valid to purchase a domain " "that may be available soon." msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:196 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:197 msgid "DSN" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:208 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:209 msgid "This DSN does not appear to be valid" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:226 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:227 msgid "Check out this link to the Symfony documentation to help you build the DSN" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:235 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:236 msgid "Add a Webhook" msgstr "" -#: assets/components/tracking/watchlist/WatchlistForm.tsx:245 +#: assets/components/tracking/watchlist/WatchlistForm.tsx:246 msgid "Update" msgstr "" @@ -357,11 +682,11 @@ msgstr "" msgid "Are you sure to delete this Watchlist?" msgstr "" -#: assets/components/tracking/watchlist/WatchlistCard.tsx:43 +#: assets/components/tracking/watchlist/WatchlistCard.tsx:44 msgid "This Watchlist is not linked to a Connector." msgstr "" -#: assets/components/tracking/watchlist/WatchlistCard.tsx:46 +#: assets/components/tracking/watchlist/WatchlistCard.tsx:47 msgid "Watchlist" msgstr "" @@ -442,27 +767,15 @@ msgstr "" msgid "Register" msgstr "" -#: assets/pages/search/DomainSearchPage.tsx:22 +#: assets/pages/search/DomainSearchPage.tsx:18 msgid "Found !" msgstr "" -#: assets/pages/search/DomainSearchPage.tsx:30 +#: assets/pages/search/DomainSearchPage.tsx:26 msgid "Domain finder" msgstr "" -#: assets/pages/search/DomainSearchPage.tsx:51 -msgid "EPP Status Codes" -msgstr "" - -#: assets/pages/search/DomainSearchPage.tsx:61 -msgid "Timeline" -msgstr "" - -#: assets/pages/search/DomainSearchPage.tsx:66 -msgid "Entities" -msgstr "" - -#: assets/pages/search/DomainSearchPage.tsx:75 +#: assets/pages/search/DomainSearchPage.tsx:35 msgid "" "Although the domain exists in my database, it has been deleted from the " "WHOIS by its registrar."