mirror of
https://github.com/maelgangloff/domain-watchdog.git
synced 2025-12-17 17:55:42 +00:00
feat: add ICANN-list tab
This commit is contained in:
parent
7c10f4bd3c
commit
ac264d9a13
@ -4,7 +4,7 @@ import TextPage from './pages/TextPage'
|
||||
import DomainSearchPage from './pages/search/DomainSearchPage'
|
||||
import EntitySearchPage from './pages/search/EntitySearchPage'
|
||||
import NameserverSearchPage from './pages/search/NameserverSearchPage'
|
||||
import TldPage from './pages/search/TldPage'
|
||||
import TldPage from './pages/infrastructure/TldPage'
|
||||
import StatisticsPage from './pages/StatisticsPage'
|
||||
import WatchlistPage from './pages/tracking/WatchlistPage'
|
||||
import UserPage from './pages/UserPage'
|
||||
@ -18,6 +18,7 @@ import {Sider} from './components/Sider'
|
||||
import {jt, t} from 'ttag'
|
||||
import {BugOutlined, InfoCircleOutlined, MergeOutlined} from '@ant-design/icons'
|
||||
import TrackedDomainPage from './pages/tracking/TrackedDomainPage'
|
||||
import IcannRegistrarPage from "./pages/infrastructure/IcannRegistrarPage";
|
||||
|
||||
const PROJECT_LINK = 'https://github.com/maelgangloff/domain-watchdog'
|
||||
const LICENSE_LINK = 'https://www.gnu.org/licenses/agpl-3.0.txt'
|
||||
@ -94,8 +95,9 @@ export default function App(): React.ReactElement {
|
||||
<Route path='/search/domain' element={<DomainSearchPage/>}/>
|
||||
<Route path='/search/domain/:query' element={<DomainSearchPage/>}/>
|
||||
<Route path='/search/entity' element={<EntitySearchPage/>}/>
|
||||
<Route path='/search/nameserver' element={<NameserverSearchPage/>}/>
|
||||
<Route path='/search/tld' element={<TldPage/>}/>
|
||||
|
||||
<Route path='/infrastructure/tld' element={<TldPage/>}/>
|
||||
<Route path='/infrastructure/icann' element={<IcannRegistrarPage/>}/>
|
||||
|
||||
<Route path='/tracking/watchlist' element={<WatchlistPage/>}/>
|
||||
<Route path='/tracking/domains' element={<TrackedDomainPage/>}/>
|
||||
|
||||
@ -4,14 +4,17 @@ import {
|
||||
AimOutlined,
|
||||
ApiOutlined,
|
||||
BankOutlined,
|
||||
ClusterOutlined,
|
||||
CompassOutlined,
|
||||
FileSearchOutlined,
|
||||
HomeOutlined,
|
||||
LineChartOutlined,
|
||||
LoginOutlined,
|
||||
LogoutOutlined,
|
||||
SafetyOutlined,
|
||||
SearchOutlined,
|
||||
TableOutlined,
|
||||
TeamOutlined,
|
||||
UserOutlined
|
||||
} from '@ant-design/icons'
|
||||
import {Menu} from 'antd'
|
||||
@ -44,22 +47,14 @@ export function Sider({isAuthenticated}: { isAuthenticated: boolean }) {
|
||||
onClick: () => navigate('/search/domain')
|
||||
},
|
||||
{
|
||||
key: '/search/tld',
|
||||
icon: <BankOutlined/>,
|
||||
label: t`TLD`,
|
||||
title: t`TLD list`,
|
||||
key: '/search/entity',
|
||||
icon: <TeamOutlined/>,
|
||||
label: t`Entity`,
|
||||
title: t`Entity Finder`,
|
||||
disabled: !isAuthenticated,
|
||||
onClick: () => navigate('/search/tld')
|
||||
}
|
||||
onClick: () => navigate('/search/entity')
|
||||
},
|
||||
/*
|
||||
{
|
||||
key: 'entity-finder',
|
||||
icon: <TeamOutlined/>,
|
||||
label: t`Entity`,
|
||||
title: t`Entity Finder`,
|
||||
disabled: true,
|
||||
onClick: () => navigate('/search/entity')
|
||||
},
|
||||
{
|
||||
key: 'ns-finder',
|
||||
icon: <CloudServerOutlined/>,
|
||||
@ -71,6 +66,31 @@ export function Sider({isAuthenticated}: { isAuthenticated: boolean }) {
|
||||
*/
|
||||
]
|
||||
},
|
||||
{
|
||||
key: 'infrastructure',
|
||||
icon: <ClusterOutlined/>,
|
||||
label: t`Infrastructure`,
|
||||
title: t`Infrastructure`,
|
||||
disabled: !isAuthenticated,
|
||||
children: [
|
||||
{
|
||||
key: '/infrastructure/tld',
|
||||
icon: <BankOutlined/>,
|
||||
label: t`TLD`,
|
||||
title: t`TLD list`,
|
||||
disabled: !isAuthenticated,
|
||||
onClick: () => navigate('/infrastructure/tld')
|
||||
},
|
||||
{
|
||||
key: '/infrastructure/icann',
|
||||
icon: <SafetyOutlined/>,
|
||||
label: t`ICANN list`,
|
||||
title: t`ICANN list`,
|
||||
disabled: !isAuthenticated,
|
||||
onClick: () => navigate('/infrastructure/icann')
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
key: 'tracking',
|
||||
label: t`Tracking`,
|
||||
@ -99,6 +119,21 @@ export function Sider({isAuthenticated}: { isAuthenticated: boolean }) {
|
||||
}
|
||||
]
|
||||
},
|
||||
/*
|
||||
{
|
||||
key: 'tools',
|
||||
label: t`Tools`,
|
||||
icon: <ToolOutlined/>,
|
||||
children: [
|
||||
{
|
||||
key: '/tools/idn',
|
||||
icon: <FieldStringOutlined/>,
|
||||
label: t`IDN Conversion`,
|
||||
onClick: () => navigate('/')
|
||||
}
|
||||
]
|
||||
},
|
||||
*/
|
||||
{
|
||||
key: '/stats',
|
||||
icon: <LineChartOutlined/>,
|
||||
@ -131,7 +166,7 @@ export function Sider({isAuthenticated}: { isAuthenticated: boolean }) {
|
||||
}
|
||||
|
||||
return <Menu
|
||||
defaultOpenKeys={['search', 'info', 'tracking', 'doc']}
|
||||
defaultOpenKeys={['search', 'info', 'tracking', 'doc', 'infrastructure']}
|
||||
selectedKeys={[location.pathname.includes('/search/domain') ? '/search/domain' : location.pathname]}
|
||||
mode='inline'
|
||||
theme='dark'
|
||||
|
||||
134
assets/pages/infrastructure/IcannRegistrarPage.tsx
Normal file
134
assets/pages/infrastructure/IcannRegistrarPage.tsx
Normal file
@ -0,0 +1,134 @@
|
||||
import React, {useEffect, useState} from 'react'
|
||||
import {Card, Divider, Table, Typography} from 'antd'
|
||||
import type {IcannAccreditation} from '../../utils/api'
|
||||
import {t} from 'ttag'
|
||||
import type {ColumnType} from 'antd/es/table'
|
||||
import {CheckCircleOutlined, SettingOutlined, CloseCircleOutlined} from "@ant-design/icons"
|
||||
import {getIcannAccreditations} from "../../utils/api/icann-accreditations";
|
||||
|
||||
const {Text, Paragraph} = Typography
|
||||
|
||||
interface FiltersType {
|
||||
'icannAccreditation.status': 'Accredited' | 'Reserved' | 'Terminated',
|
||||
}
|
||||
|
||||
function RegistrarListTable(filters: FiltersType) {
|
||||
interface TableRow {
|
||||
key: string
|
||||
handle: number
|
||||
name: string
|
||||
}
|
||||
|
||||
const [dataTable, setDataTable] = useState<TableRow[]>([])
|
||||
const [total, setTotal] = useState(0)
|
||||
|
||||
const fetchData = (params: FiltersType & { page: number, itemsPerPage: number }) => {
|
||||
getIcannAccreditations(params).then((data) => {
|
||||
setTotal(data['hydra:totalItems'])
|
||||
setDataTable(data['hydra:member'].map((accreditation: IcannAccreditation) => ({
|
||||
key: accreditation.handle,
|
||||
handle: parseInt(accreditation.handle),
|
||||
name: accreditation.icannAccreditation.registrarName
|
||||
})
|
||||
).sort((a, b) => a.handle - b.handle))
|
||||
})
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
fetchData({...filters, page: 1, itemsPerPage: 30})
|
||||
}, [])
|
||||
|
||||
let columns: Array<ColumnType<TableRow>> = [
|
||||
{
|
||||
title: t`ID`,
|
||||
dataIndex: 'handle',
|
||||
width: '10vh',
|
||||
align: 'center'
|
||||
},
|
||||
{
|
||||
title: t`Registrar`,
|
||||
dataIndex: 'name'
|
||||
}
|
||||
]
|
||||
|
||||
return (
|
||||
<Table
|
||||
columns={columns}
|
||||
dataSource={dataTable}
|
||||
pagination={{
|
||||
total,
|
||||
hideOnSinglePage: true,
|
||||
defaultPageSize: 30,
|
||||
onChange: (page, itemsPerPage) => {
|
||||
fetchData({...filters, page, itemsPerPage})
|
||||
}
|
||||
}}
|
||||
|
||||
scroll={{y: '50vh'}}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
export default function IcannRegistrarPage() {
|
||||
const [activeTabKey, setActiveTabKey] = useState<string>('Accredited')
|
||||
|
||||
const contentList: Record<string, React.ReactNode> = {
|
||||
Accredited: <>
|
||||
<Text>{t`An accredited number means that ICANN's contract with the registrar is ongoing.`}</Text>
|
||||
<Divider/>
|
||||
<RegistrarListTable {...{'icannAccreditation.status': 'Accredited'}} />
|
||||
</>,
|
||||
Reserved: <>
|
||||
<Text>{t`A reserved number can be used by TLD registries for specific operations.`}</Text>
|
||||
<Divider/>
|
||||
<RegistrarListTable {...{'icannAccreditation.status': 'Reserved'}} />
|
||||
</>,
|
||||
Terminated: <>
|
||||
<Text>{t`A terminated number means that ICANN's contract with the registrar has been terminated.`}</Text>
|
||||
<Divider/>
|
||||
<RegistrarListTable {...{'icannAccreditation.status': 'Terminated'}} />
|
||||
</>
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Paragraph>
|
||||
{t`This page lists ICANN-accredited registrars.`}
|
||||
</Paragraph>
|
||||
<Paragraph>
|
||||
{t`The list is officially published and maintained by the Internet Assigned Numbers Authority (IANA), the organization responsible for managing the Internet's unique identifiers (including numbers, IP addresses, and domain name extensions).`}
|
||||
</Paragraph>
|
||||
<Divider/>
|
||||
|
||||
<Card
|
||||
style={{width: '100%'}}
|
||||
tabProps={{
|
||||
size: 'middle',
|
||||
}}
|
||||
tabList={[
|
||||
{
|
||||
key: 'Accredited',
|
||||
label: t`Accredited`,
|
||||
icon: <CheckCircleOutlined/>
|
||||
},
|
||||
{
|
||||
key: 'Reserved',
|
||||
label: t`Reserved`,
|
||||
icon: <SettingOutlined/>
|
||||
},
|
||||
{
|
||||
key: 'Terminated',
|
||||
label: t`Terminated`,
|
||||
icon: <CloseCircleOutlined />
|
||||
}
|
||||
]}
|
||||
activeTabKey={activeTabKey}
|
||||
key={activeTabKey}
|
||||
onTabChange={(k: string) => setActiveTabKey(k)}
|
||||
>
|
||||
{contentList[activeTabKey]}
|
||||
|
||||
</Card>
|
||||
</>
|
||||
)
|
||||
}
|
||||
@ -10,6 +10,7 @@ import punycode from 'punycode/punycode'
|
||||
import {getCountryCode} from '../../utils/functions/getCountryCode'
|
||||
import {tldToEmoji} from '../../utils/functions/tldToEmoji'
|
||||
import {BankOutlined, FlagOutlined, GlobalOutlined, TrademarkOutlined} from "@ant-design/icons"
|
||||
import {Link} from "react-router-dom";
|
||||
|
||||
const {Text, Paragraph} = Typography
|
||||
|
||||
@ -38,7 +39,7 @@ function TldTable(filters: FiltersType) {
|
||||
setDataTable(data['hydra:member'].map((tld: Tld) => {
|
||||
const rowData = {
|
||||
key: tld.tld,
|
||||
TLD: <Typography.Text code>{punycode.toUnicode(tld.tld)}</Typography.Text>
|
||||
TLD: <Link to={'/search/domain/' + tld.tld}><Typography.Text code>{punycode.toUnicode(tld.tld)}</Typography.Text></Link>
|
||||
}
|
||||
const type = filters.type
|
||||
let countryName
|
||||
14
assets/utils/api/icann-accreditations.ts
Normal file
14
assets/utils/api/icann-accreditations.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import type {IcannAccreditation, Tld} from './index'
|
||||
import {request} from './index'
|
||||
|
||||
interface IcannAccreditationList {
|
||||
'hydra:totalItems': number
|
||||
'hydra:member': IcannAccreditation[]
|
||||
}
|
||||
|
||||
export async function getIcannAccreditations(params: object): Promise<IcannAccreditationList> {
|
||||
return (await request<IcannAccreditationList>({
|
||||
url: 'entities/icann-accreditations',
|
||||
params
|
||||
})).data
|
||||
}
|
||||
@ -124,6 +124,16 @@ export interface TrackedDomains {
|
||||
'hydra:member': Domain[]
|
||||
}
|
||||
|
||||
export interface IcannAccreditation {
|
||||
handle: string
|
||||
icannAccreditation: {
|
||||
registrarName: string
|
||||
status: string
|
||||
date?: string
|
||||
updated?: string
|
||||
}
|
||||
}
|
||||
|
||||
export async function request<T = object, R = AxiosResponse<T>, D = object>(config: AxiosRequestConfig): Promise<R> {
|
||||
const axiosConfig: AxiosRequestConfig = {
|
||||
...config,
|
||||
|
||||
@ -3,34 +3,34 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
||||
|
||||
#: assets/App.tsx:119
|
||||
#: assets/App.tsx:121
|
||||
msgid "TOS"
|
||||
msgstr ""
|
||||
|
||||
#: assets/App.tsx:120
|
||||
#: assets/App.tsx:122
|
||||
msgid "Privacy Policy"
|
||||
msgstr ""
|
||||
|
||||
#: assets/App.tsx:121
|
||||
#: assets/App.tsx:123
|
||||
msgid "FAQ"
|
||||
msgstr ""
|
||||
|
||||
#: assets/App.tsx:128
|
||||
#: assets/App.tsx:130
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
|
||||
#: assets/App.tsx:133
|
||||
#: assets/App.tsx:135
|
||||
#, javascript-format
|
||||
msgid ""
|
||||
"${ ProjectLink } is an open source project distributed under the ${ "
|
||||
"LicenseLink } license."
|
||||
msgstr ""
|
||||
|
||||
#: assets/App.tsx:146
|
||||
#: assets/App.tsx:148
|
||||
msgid "Official git repository"
|
||||
msgstr ""
|
||||
|
||||
#: assets/App.tsx:149
|
||||
#: assets/App.tsx:151
|
||||
msgid "Submit an issue"
|
||||
msgstr ""
|
||||
|
||||
@ -44,8 +44,8 @@ msgstr ""
|
||||
#: assets/components/RegisterForm.tsx:39
|
||||
#: assets/components/RegisterForm.tsx:47
|
||||
#: assets/components/search/DomainSearchBar.tsx:28
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:119
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:222
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:157
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:263
|
||||
#: assets/utils/providers/forms/AutoDnsConnectorForm.tsx:21
|
||||
#: assets/utils/providers/forms/AutoDnsConnectorForm.tsx:32
|
||||
#: assets/utils/providers/forms/AutoDnsConnectorForm.tsx:47
|
||||
@ -164,73 +164,107 @@ msgid "Entities"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/search/DomainSearchBar.tsx:31
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:122
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:160
|
||||
msgid "This domain name does not appear to be valid"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:29
|
||||
#: assets/components/Sider.tsx:32
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:35
|
||||
#: assets/components/Sider.tsx:38
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:41
|
||||
#: assets/components/Sider.tsx:44
|
||||
#: assets/components/tracking/watchlist/TrackedDomainTable.tsx:175
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:42
|
||||
#: assets/components/Sider.tsx:45
|
||||
msgid "Domain Finder"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:49
|
||||
#: assets/components/Sider.tsx:52
|
||||
msgid "Entity"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:53
|
||||
msgid "Entity Finder"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:72
|
||||
#: assets/components/Sider.tsx:73
|
||||
msgid "Infrastructure"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:79
|
||||
#: assets/pages/StatisticsPage.tsx:114
|
||||
#: assets/pages/search/TldPage.tsx:78
|
||||
#: assets/pages/infrastructure/TldPage.tsx:79
|
||||
msgid "TLD"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:50
|
||||
#: assets/components/Sider.tsx:80
|
||||
msgid "TLD list"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:76
|
||||
msgid "Tracking"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:82
|
||||
msgid "My Watchlists"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:89
|
||||
msgid "Tracking table"
|
||||
#: assets/components/Sider.tsx:87
|
||||
#: assets/components/Sider.tsx:88
|
||||
msgid "ICANN list"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:96
|
||||
msgid "Tracking"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:102
|
||||
msgid "My Watchlists"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:109
|
||||
msgid "Tracking table"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:116
|
||||
msgid "My Connectors"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:105
|
||||
#: assets/components/Sider.tsx:140
|
||||
#.
|
||||
#. {
|
||||
#. key: 'tools',
|
||||
#. label: t`Tools`,
|
||||
#. icon: <ToolOutlined/>,
|
||||
#. children: [
|
||||
#. {
|
||||
#. key: '/tools/idn',
|
||||
#. icon: <FieldStringOutlined/>,
|
||||
#. label: t`IDN Conversion`,
|
||||
#. onClick: () => navigate('/')
|
||||
#. }
|
||||
#. ]
|
||||
#. },
|
||||
#.
|
||||
msgid "Statistics"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:115
|
||||
#: assets/components/Sider.tsx:150
|
||||
#: assets/pages/UserPage.tsx:17
|
||||
msgid "My Account"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:120
|
||||
#: assets/components/Sider.tsx:155
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/Sider.tsx:128
|
||||
#: assets/components/Sider.tsx:163
|
||||
#: assets/pages/LoginPage.tsx:35
|
||||
#: assets/pages/LoginPage.tsx:45
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/connector/ConnectorForm.tsx:36
|
||||
#: assets/pages/infrastructure/IcannRegistrarPage.tsx:49
|
||||
#: assets/utils/functions/rdapTranslation.ts:12
|
||||
msgid "Registrar"
|
||||
msgstr ""
|
||||
@ -257,7 +291,7 @@ msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/connector/ConnectorForm.tsx:96
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:269
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:310
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
@ -437,77 +471,190 @@ msgstr ""
|
||||
msgid "Watchlist"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:75
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:113
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:87
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:125
|
||||
msgid "Watchlist Name"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:88
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:126
|
||||
msgid "Naming the Watchlist makes it easier to find in the list below."
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:99
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:137
|
||||
msgid "At least one domain name"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:110
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:148
|
||||
msgid "Domain names"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:128
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:166
|
||||
msgid "Domain name"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:147
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:185
|
||||
msgid "Add a Domain name"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:155
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:193
|
||||
msgid "Tracked events"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:157
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:195
|
||||
msgid "At least one trigger"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:181
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:196
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:222
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:237
|
||||
msgid "Connector"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:191
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:232
|
||||
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:213
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:254
|
||||
msgid "DSN"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:225
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:266
|
||||
msgid "This DSN does not appear to be valid"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:249
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:290
|
||||
msgid "Check out this link to the Symfony documentation to help you build the DSN"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:259
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:300
|
||||
msgid "Add a Webhook"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:269
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:310
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:272
|
||||
#: assets/components/tracking/watchlist/WatchlistForm.tsx:313
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/IcannRegistrarPage.tsx:43
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/IcannRegistrarPage.tsx:77
|
||||
msgid ""
|
||||
"An accredited number means that ICANN's contract with the registrar is "
|
||||
"ongoing."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/IcannRegistrarPage.tsx:82
|
||||
msgid "A reserved number can be used by TLD registries for specific operations."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/IcannRegistrarPage.tsx:87
|
||||
msgid ""
|
||||
"A terminated number means that ICANN's contract with the registrar has been "
|
||||
"terminated."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/IcannRegistrarPage.tsx:96
|
||||
msgid "This page lists ICANN-accredited registrars."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/IcannRegistrarPage.tsx:99
|
||||
msgid ""
|
||||
"The list is officially published and maintained by the Internet Assigned "
|
||||
"Numbers Authority (IANA), the organization responsible for managing the "
|
||||
"Internet's unique identifiers (including numbers, IP addresses, and domain "
|
||||
"name extensions)."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/IcannRegistrarPage.tsx:111
|
||||
msgid "Accredited"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/IcannRegistrarPage.tsx:116
|
||||
msgid "Reserved"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/IcannRegistrarPage.tsx:121
|
||||
msgid "Terminated"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:86
|
||||
msgid "Flag"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:89
|
||||
msgid "Country"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:96
|
||||
msgid "Registry Operator"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:124
|
||||
msgid ""
|
||||
"Top-level domains sponsored by specific organizations that set rules for "
|
||||
"registration and use, often related to particular interest groups or "
|
||||
"industries."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:129
|
||||
msgid ""
|
||||
"Generic top-level domains open to everyone, not restricted by specific "
|
||||
"criteria, representing various themes or industries."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:134
|
||||
msgid ""
|
||||
"Generic top-level domains associated with specific brands, allowing "
|
||||
"companies to use their own brand names as domains."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:139
|
||||
msgid ""
|
||||
"Top-level domains based on country codes, identifying websites according to "
|
||||
"their country of origin."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:148
|
||||
msgid "This page presents all active TLDs in the root zone database."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:151
|
||||
msgid ""
|
||||
"IANA provides the list of currently active TLDs, regardless of their type, "
|
||||
"and ICANN provides the list of gTLDs.\n"
|
||||
"In most cases, the two-letter ccTLD assigned to a country is made in "
|
||||
"accordance with the ISO 3166-1 standard.\n"
|
||||
"This data is updated every month. Three HTTP requests are needed for the "
|
||||
"complete update of TLDs in Domain Watchdog (two requests to IANA and one to "
|
||||
"ICANN).\n"
|
||||
"At the same time, the list of root RDAP servers is updated."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:166
|
||||
msgid "Generic Top-Level-Domains"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:171
|
||||
msgid "Country-Code Top-Level-Domains"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:176
|
||||
msgid "Brand Generic Top-Level-Domains"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/infrastructure/TldPage.tsx:181
|
||||
msgid "Sponsored Top-Level-Domains"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/LoginPage.tsx:45
|
||||
msgid "Create an account"
|
||||
msgstr ""
|
||||
@ -526,75 +673,6 @@ msgid ""
|
||||
"WHOIS by its registrar."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:85
|
||||
msgid "Flag"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:88
|
||||
msgid "Country"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:95
|
||||
msgid "Registry Operator"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:123
|
||||
msgid ""
|
||||
"Top-level domains sponsored by specific organizations that set rules for "
|
||||
"registration and use, often related to particular interest groups or "
|
||||
"industries."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:128
|
||||
msgid ""
|
||||
"Generic top-level domains open to everyone, not restricted by specific "
|
||||
"criteria, representing various themes or industries."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:133
|
||||
msgid ""
|
||||
"Generic top-level domains associated with specific brands, allowing "
|
||||
"companies to use their own brand names as domains."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:138
|
||||
msgid ""
|
||||
"Top-level domains based on country codes, identifying websites according to "
|
||||
"their country of origin."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:147
|
||||
msgid "This page presents all active TLDs in the root zone database."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:150
|
||||
msgid ""
|
||||
"IANA provides the list of currently active TLDs, regardless of their type, "
|
||||
"and ICANN provides the list of gTLDs.\n"
|
||||
"In most cases, the two-letter ccTLD assigned to a country is made in "
|
||||
"accordance with the ISO 3166-1 standard.\n"
|
||||
"This data is updated every month. Three HTTP requests are needed for the "
|
||||
"complete update of TLDs in Domain Watchdog (two requests to IANA and one to "
|
||||
"ICANN).\n"
|
||||
"At the same time, the list of root RDAP servers is updated."
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:165
|
||||
msgid "Generic Top-Level-Domains"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:170
|
||||
msgid "Country-Code Top-Level-Domains"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:175
|
||||
msgid "Brand Generic Top-Level-Domains"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/search/TldPage.tsx:180
|
||||
msgid "Sponsored Top-Level-Domains"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/StatisticsPage.tsx:35
|
||||
msgid "RDAP queries"
|
||||
msgstr ""
|
||||
@ -638,15 +716,15 @@ msgstr ""
|
||||
msgid "Create a Connector"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/tracking/WatchlistPage.tsx:51
|
||||
#: assets/pages/tracking/WatchlistPage.tsx:63
|
||||
msgid "Watchlist created !"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/tracking/WatchlistPage.tsx:63
|
||||
#: assets/pages/tracking/WatchlistPage.tsx:75
|
||||
msgid "Watchlist updated !"
|
||||
msgstr ""
|
||||
|
||||
#: assets/pages/tracking/WatchlistPage.tsx:87
|
||||
#: assets/pages/tracking/WatchlistPage.tsx:99
|
||||
msgid "Create a Watchlist"
|
||||
msgstr ""
|
||||
|
||||
@ -661,7 +739,7 @@ msgstr ""
|
||||
msgid "Roles"
|
||||
msgstr ""
|
||||
|
||||
#: assets/utils/functions/DomainToTag.tsx:19
|
||||
#: assets/utils/functions/DomainToTag.tsx:16
|
||||
msgid "The domain name was updated less than a week ago."
|
||||
msgstr ""
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user