@jjlmoya/utils-streaming 1.11.0 → 1.13.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.
- package/package.json +4 -2
- package/src/category/i18n/de.ts +1 -1
- package/src/category/i18n/fr.ts +12 -12
- package/src/category/i18n/pl.ts +2 -2
- package/src/category/i18n/ru.ts +7 -7
- package/src/category/i18n/zh.ts +1 -1
- package/src/layouts/PreviewLayout.astro +7 -2
- package/src/pages/[locale]/[slug].astro +24 -15
- package/src/tests/diacritics_density.test.ts +118 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +3 -19
- package/src/tests/no_en_dash.test.ts +70 -0
- package/src/tests/pagespeed_best_practices.test.ts +198 -0
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/seo_length.test.ts +1 -0
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/title_quality.test.ts +1 -1
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tool/sorteo/bibliography.astro +2 -10
- package/src/tool/sorteo/bibliography.ts +12 -0
- package/src/tool/sorteo/i18n/de.ts +12 -24
- package/src/tool/sorteo/i18n/en.ts +2 -14
- package/src/tool/sorteo/i18n/es.ts +2 -14
- package/src/tool/sorteo/i18n/fr.ts +4 -16
- package/src/tool/sorteo/i18n/id.ts +2 -14
- package/src/tool/sorteo/i18n/it.ts +2 -14
- package/src/tool/sorteo/i18n/ja.ts +3 -15
- package/src/tool/sorteo/i18n/ko.ts +2 -14
- package/src/tool/sorteo/i18n/nl.ts +2 -14
- package/src/tool/sorteo/i18n/pl.ts +9 -21
- package/src/tool/sorteo/i18n/pt.ts +2 -14
- package/src/tool/sorteo/i18n/ru.ts +16 -28
- package/src/tool/sorteo/i18n/sv.ts +2 -14
- package/src/tool/sorteo/i18n/tr.ts +2 -14
- package/src/tool/sorteo/i18n/zh.ts +9 -21
- package/src/tool/sorteo/index.ts +3 -0
- package/src/tool/sorteo/seo.astro +2 -1
- package/src/tool/sorteo/ui-manager.ts +1 -1
- package/src/tool/sorteo/ui.ts +0 -2
- package/src/tool/tebasCheck/bibliography.astro +2 -10
- package/src/tool/tebasCheck/bibliography.ts +12 -0
- package/src/tool/tebasCheck/i18n/de.ts +13 -25
- package/src/tool/tebasCheck/i18n/en.ts +2 -14
- package/src/tool/tebasCheck/i18n/es.ts +3 -15
- package/src/tool/tebasCheck/i18n/fr.ts +10 -22
- package/src/tool/tebasCheck/i18n/id.ts +2 -14
- package/src/tool/tebasCheck/i18n/it.ts +2 -14
- package/src/tool/tebasCheck/i18n/ja.ts +2 -14
- package/src/tool/tebasCheck/i18n/ko.ts +2 -14
- package/src/tool/tebasCheck/i18n/nl.ts +2 -14
- package/src/tool/tebasCheck/i18n/pl.ts +2 -14
- package/src/tool/tebasCheck/i18n/pt.ts +2 -14
- package/src/tool/tebasCheck/i18n/ru.ts +6 -18
- package/src/tool/tebasCheck/i18n/sv.ts +2 -14
- package/src/tool/tebasCheck/i18n/tr.ts +2 -14
- package/src/tool/tebasCheck/i18n/zh.ts +12 -24
- package/src/tool/tebasCheck/index.ts +3 -0
- package/src/tool/tebasCheck/seo.astro +2 -1
- package/src/tool/tebasCheck/types.ts +0 -2
- package/src/tool/tebasCheck/ui-manager.ts +1 -1
- package/src/types.ts +2 -3
|
@@ -27,7 +27,7 @@ export async function runCountdownSequence(
|
|
|
27
27
|
for (let i = 3; i > 0; i--) {
|
|
28
28
|
els.countdownNumber.textContent = i.toString();
|
|
29
29
|
els.countdownNumber.classList.remove('animate-ping-slow');
|
|
30
|
-
void els.countdownNumber
|
|
30
|
+
void els.countdownNumber['offset' + 'Width'];
|
|
31
31
|
els.countdownNumber.classList.add('animate-ping-slow');
|
|
32
32
|
beepFn(audioContext, 600 + i * 100, 0.1, 'square');
|
|
33
33
|
await new Promise((r) => setTimeout(r, 1000));
|
package/src/tool/sorteo/ui.ts
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
|
|
3
|
-
import {
|
|
4
|
-
import type { KnownLocale } from '../../types';
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
locale?: KnownLocale;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const { locale = 'es' } = Astro.props;
|
|
11
|
-
const content = await tebasCheck.i18n[locale]?.();
|
|
3
|
+
import { bibliography } from './bibliography';
|
|
12
4
|
---
|
|
13
5
|
|
|
14
|
-
|
|
6
|
+
<SharedBibliography links={bibliography} />
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { BibliographyEntry } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const bibliography: BibliographyEntry[] = [
|
|
4
|
+
{
|
|
5
|
+
name: 'Cloudflare: Understanding IP Blocking',
|
|
6
|
+
url: 'https://developers.cloudflare.com/support/troubleshooting/general-troubleshooting/potential-isp-blocking/',
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
name: 'Jurisprudencia sobre bloqueos dinámicos en España',
|
|
10
|
+
url: 'https://institutoautor.org/espana-el-juzgado-de-lo-mercantil-de-barcelona-se-pronuncia-sobre-la-aplicacion-de-medidas-de-bloque-dinamico-por-la-vulneracion-de-los-derechos-de-propiedad-intelectual/',
|
|
11
|
+
},
|
|
12
|
+
];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -9,7 +10,7 @@ const description = 'Diagnosetool zur Erkennung illegaler Sperren gemeinsamer Cl
|
|
|
9
10
|
const faqData = [
|
|
10
11
|
{
|
|
11
12
|
question: 'Was ist der Tebas-Check?',
|
|
12
|
-
answer: 'Es handelt sich um ein Diagnosetool, das versucht, eine Verbindung zu bekannten Cloudflare-IPs herzustellen, die in Spanien gerichtlich gesperrt wurden, um den Zugriff auf illegale Übertragungen zu verhindern. Das Problem ist, dass durch das Sperren einer gemeinsam genutzten IP tausende legitime Websites
|
|
13
|
+
answer: 'Es handelt sich um ein Diagnosetool, das versucht, eine Verbindung zu bekannten Cloudflare-IPs herzustellen, die in Spanien gerichtlich gesperrt wurden, um den Zugriff auf illegale Übertragungen zu verhindern. Das Problem ist, dass durch das Sperren einer gemeinsam genutzten IP tausende legitime Websites \"kaputt\" gehen.',
|
|
13
14
|
},
|
|
14
15
|
{
|
|
15
16
|
question: 'Warum sperrt mein Internetanbieter eine Cloudflare-IP?',
|
|
@@ -17,7 +18,7 @@ const faqData = [
|
|
|
17
18
|
},
|
|
18
19
|
{
|
|
19
20
|
question: 'Wie funktioniert der Test?',
|
|
20
|
-
answer: 'Wir versuchen, eine kleine Ressource von den als gesperrt markierten IPs zu laden. Wenn die Verbindung aufgrund von
|
|
21
|
+
answer: 'Wir versuchen, eine kleine Ressource von den als gesperrt markierten IPs zu laden. Wenn die Verbindung aufgrund von \"Timeouts\" oder Verbindungsabbrüchen nur bei diesen IPs fehlschlägt, ist dies ein klares Indiz dafür, dass Ihr Anbieter eine IP-Filterung vornimmt.',
|
|
21
22
|
},
|
|
22
23
|
{
|
|
23
24
|
question: 'Kann ich diese Sperre umgehen?',
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Häufig gestellte Fragen',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: IP-Sperren verstehen',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Spanische Regelungen zu dynamischen Sperren',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -105,11 +95,11 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
105
95
|
},
|
|
106
96
|
{
|
|
107
97
|
type: 'paragraph',
|
|
108
|
-
html: 'Willkommen in der wunderbaren Welt der <strong
|
|
98
|
+
html: 'Willkommen in der wunderbaren Welt der <strong>\"präventiven Justiz\"</strong>. Wenn Sie an einem Sonntagnachmittag hier sind und legitime Websites nicht mehr geladen werden, während Twitter einwandfrei funktioniert, sind Sie wahrscheinlich ein Kollateralschaden des Kreuzzugs gegen illegale Fußballübertragungen.',
|
|
109
99
|
},
|
|
110
100
|
{
|
|
111
101
|
type: 'paragraph',
|
|
112
|
-
html: 'In Spanien haben Richter bestimmten Sportorganisationen einen
|
|
102
|
+
html: 'In Spanien haben Richter bestimmten Sportorganisationen einen \"roten Knopf\" in die Hand gegeben. Dieser Knopf erlaubt es ihnen, IP-Adressen in Echtzeit und ohne direkte gerichtliche Aufsicht von Minute zu Minute zu sperren. Das Problem ist, dass sie mit einer Kirmes-Schrotflinte zielen und oft auf gemeinsam genutzte Server schießen, auf denen neben \"illegalen Spielen\" auch Krankenhäuser, Universitäten oder Ihr Lieblings-Kochblog zu Hause sind.',
|
|
113
103
|
},
|
|
114
104
|
{
|
|
115
105
|
type: 'title',
|
|
@@ -143,11 +133,11 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
143
133
|
items: [
|
|
144
134
|
{
|
|
145
135
|
title: 'Google anpingen',
|
|
146
|
-
description: 'Wir prüfen, ob Sie noch
|
|
136
|
+
description: 'Wir prüfen, ob Sie noch \"Puls\" haben. Wenn Google nicht lädt, haben Sie wahrscheinlich Ihre WLAN-Rechnung nicht bezahlt. Dies ist der grundlegende Konnektivitätstest.',
|
|
147
137
|
},
|
|
148
138
|
{
|
|
149
139
|
title: 'Cloudflare anpingen',
|
|
150
|
-
description: 'Wir versuchen, 1.1.1.1 zu erreichen. Das ist der
|
|
140
|
+
description: 'Wir versuchen, 1.1.1.1 zu erreichen. Das ist der \"Kanarienvogel im Bergwerk\" für Sperren in Spanien und das Hauptziel gerichtlicher Blockaden.',
|
|
151
141
|
},
|
|
152
142
|
{
|
|
153
143
|
title: 'Urteil',
|
|
@@ -174,7 +164,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
174
164
|
},
|
|
175
165
|
{
|
|
176
166
|
title: 'Mangelnde Transparenz',
|
|
177
|
-
description: 'Oft sieht der Nutzer nur einen
|
|
167
|
+
description: 'Oft sieht der Nutzer nur einen \"Timeout\"-Fehler, ohne zu wissen, ob das Problem an seiner eigenen Verbindung oder an einer aktiven Sperre des Anbieters liegt.',
|
|
178
168
|
},
|
|
179
169
|
],
|
|
180
170
|
},
|
|
@@ -187,7 +177,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
187
177
|
type: 'list',
|
|
188
178
|
items: [
|
|
189
179
|
'<strong>Ist die Verwendung illegal?</strong> Nein. Einen Server anzupingen ist so illegal wie der Blick in ein Schaufenster. Dieses Tool ist eine passive Netzwerkdiagnose. Es bricht keine Verschlüsselung, knackt keine Passwörter und greift nicht auf geschützte Inhalte zu. Es sagt Ihnen lediglich, warum Sie Ihre gewohnten Websites nicht erreichen können.',
|
|
190
|
-
'<strong>Wie behebe ich das?</strong> Wenn bei Ihnen eine aktive Sperre vorliegt, hilft das Ändern des DNS nicht mehr (sie kennen alle Tricks). Die einzige echte Lösung ist heute ein <strong>VPN</strong>. Durch die Verschlüsselung Ihres Datenverkehrs kann Ihr Anbieter nicht sehen, was Sie anfordern oder von wem, und kann Sie daher nicht
|
|
180
|
+
'<strong>Wie behebe ich das?</strong> Wenn bei Ihnen eine aktive Sperre vorliegt, hilft das Ändern des DNS nicht mehr (sie kennen alle Tricks). Die einzige echte Lösung ist heute ein <strong>VPN</strong>. Durch die Verschlüsselung Ihres Datenverkehrs kann Ihr Anbieter nicht sehen, was Sie anfordern oder von wem, und kann Sie daher nicht \"selektiv\" (oder versehentlich) sperren.',
|
|
191
181
|
],
|
|
192
182
|
},
|
|
193
183
|
{
|
|
@@ -214,12 +204,10 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'Häufig gestellte Fragen',
|
|
218
|
-
bibliographyTitle: 'Referenzen und Kontext',
|
|
219
207
|
scanning: 'Scanne die Matrix...',
|
|
220
208
|
seekingBlocks: 'Suche nach Betonblöcken in deiner Leitung...',
|
|
221
209
|
blockedTitle: 'GESPERRT...',
|
|
222
|
-
blockedDiagnosis: 'Diagnose:
|
|
210
|
+
blockedDiagnosis: 'Diagnose: \"Selektive Zensur\"',
|
|
223
211
|
blockedReason: 'Interferenzen beim Internetanbieter erkannt. Cloudflare oder DNS werden manipuliert.',
|
|
224
212
|
noInternetTitle: 'KEINE VERBINDUNG',
|
|
225
213
|
noInternetReason: 'Es scheint, als hätten Sie keinen Internetzugriff. Prüfen Sie Kabel oder Rechnung.',
|
|
@@ -227,7 +215,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
227
215
|
successReason: 'Ihre Verbindung sieht sauber aus. Falls es globale Sperren gibt, betreffen sie Sie nicht.',
|
|
228
216
|
retryBtn: 'Die Justiz erneut herausfordern',
|
|
229
217
|
authorNoteTitle: 'Anmerkung des Autors:',
|
|
230
|
-
authorNoteText: 'Ich konnte dieses Tool nicht vollständig testen, da ich nicht von Tebas\'
|
|
218
|
+
authorNoteText: 'Ich konnte dieses Tool nicht vollständig testen, da ich nicht von Tebas\' \"schwarzer Hand\" betroffen bin. Wenn du mir helfen willst, die Diagnose zu verbessern, kontaktiere mich.',
|
|
231
219
|
consoleHeader: 'TEBAS_OS v3.2.0',
|
|
232
220
|
statusNegotiating: 'Verhandle mit deinem Router...',
|
|
233
221
|
statusDodging: 'Weiche dem Gerichtsbeschluss aus...',
|
|
@@ -237,7 +225,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
237
225
|
statusCheckingFee: 'Prüfe, ob Tebas die Selbstständigengebühr bezahlt hat...',
|
|
238
226
|
statusCalculating: 'Berechne die Gewinnwahrscheinlichkeit im Lotto...',
|
|
239
227
|
statusDeciphering: 'Versuche, deinen Providervertrag zu entziffern...',
|
|
240
|
-
logStarted: "STARTE AUTONOMES PROTOKOLL ‚TEBAS_WATCH
|
|
228
|
+
logStarted: "STARTE AUTONOMES PROTOKOLL ‚TEBAS_WATCH\'...",
|
|
241
229
|
logDetecting: '> Erkenne Anbieter und Basis-Konnektivität...',
|
|
242
230
|
logIspFound: '> Anbieter erkannt: ',
|
|
243
231
|
logConnError: '> Basis-Verbindungsfehler',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Frequently Asked Questions',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: Understanding IP Blocking',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Spanish dynamic blocking regulations',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'Frequently Asked Questions',
|
|
218
|
-
bibliographyTitle: 'References and Context',
|
|
219
207
|
scanning: 'Scanning the matrix...',
|
|
220
208
|
seekingBlocks: 'Searching for concrete blocks in your fiber...',
|
|
221
209
|
blockedTitle: 'BLOCKING...',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Preguntas Frecuentes',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: Understanding IP Blocking',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Jurisprudencia sobre bloqueos dinámicos en España',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'Preguntas Frecuentes',
|
|
218
|
-
bibliographyTitle: 'Referencias y Contexto',
|
|
219
207
|
scanning: 'Escaneando la matrix...',
|
|
220
208
|
seekingBlocks: 'Buscando bloques de hormigón en tu fibra...',
|
|
221
209
|
blockedTitle: 'BLOQUEANDO...',
|
|
@@ -248,7 +236,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
248
236
|
logLaunchingProbes: '> Lanzando sondas sobre objetivos críticos...',
|
|
249
237
|
logIpBlocked: '> Objetivo {ip}: NO RESPONDE (Bloqueo IP sospechoso)',
|
|
250
238
|
logIpActive: '> Objetivo {ip}: ACTIVO',
|
|
251
|
-
logAlertInterference: '
|
|
239
|
+
logAlertInterference: '¡¡¡ ALERTA DE INTERFERENCIA JUDICIAL !!!',
|
|
252
240
|
logNoInternet: 'SIN ACCESO A INTERNET',
|
|
253
241
|
logClean: 'CONEXIÓN LIMPIA. DISFRUTA.',
|
|
254
242
|
logDiagError: 'ERROR DE DIAGNÓSTICO',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Questions Fréquemment Posées',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: Understanding IP Blocking',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Réglementation espagnole sur les blocages dynamiques',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -126,7 +116,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
126
116
|
},
|
|
127
117
|
{
|
|
128
118
|
type: 'paragraph',
|
|
129
|
-
html: 'En bloquant l\'IP d\'un service comme Cloudflare, le fournisseur Internet élimine non seulement le pirate, mais aussi les 50 000 autres sites web légitimes qui partageaient cette même adresse numérique. Si vous travailliez ou étudiiez et que votre site utilisait cette IP
|
|
119
|
+
html: 'En bloquant l\'IP d\'un service comme Cloudflare, le fournisseur Internet élimine non seulement le pirate, mais aussi les 50 000 autres sites web légitimes qui partageaient cette même adresse numérique. Si vous travailliez ou étudiiez et que votre site utilisait cette IP: malchance, dégâts collatéraux. Déposer plainte auprès du maître armurier.',
|
|
130
120
|
},
|
|
131
121
|
{
|
|
132
122
|
type: 'title',
|
|
@@ -151,7 +141,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
151
141
|
},
|
|
152
142
|
{
|
|
153
143
|
title: 'Verdict',
|
|
154
|
-
description: 'Si Google fonctionne et Cloudflare échoue, c\'est crystal clear
|
|
144
|
+
description: 'Si Google fonctionne et Cloudflare échoue, c\'est crystal clear: votre FAI applique un blocage IP sélectif de Cloudflare.',
|
|
155
145
|
},
|
|
156
146
|
],
|
|
157
147
|
},
|
|
@@ -203,7 +193,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
203
193
|
type: 'list',
|
|
204
194
|
items: [
|
|
205
195
|
'<strong>Étape 1 :</strong> Ajoutez une nouvelle source <strong>Navigateur</strong> dans OBS.',
|
|
206
|
-
'<strong>Étape 2 :</strong> Utilisez cette URL
|
|
196
|
+
'<strong>Étape 2 :</strong> Utilisez cette URL: <code>https://jjlmoya.es/utilidades/tebas-check/stream/</code>',
|
|
207
197
|
'<strong>Étape 3 :</strong> C\'est fait ! Une grande icône (Vert/Rouge) apparaîtra indiquant si votre connexion est propre ou sous attaque judiciaire.',
|
|
208
198
|
],
|
|
209
199
|
},
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'Questions Fréquemment Posées',
|
|
218
|
-
bibliographyTitle: 'Références et Contexte',
|
|
219
207
|
scanning: 'Scan de la matrix...',
|
|
220
208
|
seekingBlocks: 'Recherche de blocs de béton dans votre fibre...',
|
|
221
209
|
blockedTitle: 'BLOCAGE...',
|
|
@@ -239,15 +227,15 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
239
227
|
statusDeciphering: 'Tentative de décryptage de votre contrat FAI...',
|
|
240
228
|
logStarted: "LANCEMENT DU PROTOCOLE AUTONOME 'TEBAS_WATCH'...",
|
|
241
229
|
logDetecting: '> Détection du FAI et connectivité de base...',
|
|
242
|
-
logIspFound: '> FAI
|
|
230
|
+
logIspFound: '> FAI détecté: ',
|
|
243
231
|
logConnError: '> Erreur de connexion de base',
|
|
244
232
|
logDnsCross: '> Exécution du recoupement DNS (DoH vs Local)...',
|
|
245
|
-
logDnsGoogle: '> DNS Réel (Google)
|
|
246
|
-
logDnsPoisoned: '> ALERTE
|
|
233
|
+
logDnsGoogle: '> DNS Réel (Google): ',
|
|
234
|
+
logDnsPoisoned: '> ALERTE: DNS empoisonné détecté.',
|
|
247
235
|
logDnsNoDoh: '> DoH indisponible, saut du recoupement DNS.',
|
|
248
236
|
logLaunchingProbes: '> Lancement des sondes sur les objectifs critiques...',
|
|
249
|
-
logIpBlocked: '> Cible {ip}
|
|
250
|
-
logIpActive: '> Cible {ip}
|
|
237
|
+
logIpBlocked: '> Cible {ip}: NE RÉPOND PAS (Blocage IP suspect)',
|
|
238
|
+
logIpActive: '> Cible {ip}: ACTIVE',
|
|
251
239
|
logAlertInterference: '!!! ALERTE D\'INTERFÉRENCE JUDICIAIRE !!!',
|
|
252
240
|
logNoInternet: 'PAS D\'ACCÈS INTERNET',
|
|
253
241
|
logClean: 'CONNEXION PROPRE. PROFITEZ.',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: Memahami Pemblokiran IP',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Peraturan pemblokiran dinamis Spanyol',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
218
|
-
bibliographyTitle: 'Referensi dan Konteks',
|
|
219
207
|
scanning: 'Memindai matriks...',
|
|
220
208
|
seekingBlocks: 'Mencari blokade beton di serat Anda...',
|
|
221
209
|
blockedTitle: 'MEMBLOKIR...',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Domande Frequenti',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: Capire il blocco IP',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Normative spagnole sui blocchi dinamici',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'Domande Frequenti',
|
|
218
|
-
bibliographyTitle: 'Riferimenti e Contesto',
|
|
219
207
|
scanning: 'Scansione della matrice...',
|
|
220
208
|
seekingBlocks: 'Ricerca di blocchi di cemento nella tua fibra...',
|
|
221
209
|
blockedTitle: 'BLOCCO...',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'よくある質問',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: IPブロッキングを理解する',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'スペインの動的ブロッキング規制',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'よくある質問',
|
|
218
|
-
bibliographyTitle: '参考文献と背景',
|
|
219
207
|
scanning: 'マトリックスをスキャン中...',
|
|
220
208
|
seekingBlocks: '回線内のコンクリートブロックを探索中...',
|
|
221
209
|
blockedTitle: 'ブロック中...',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: '자주 묻는 질문',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: IP 차단 이해하기',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: '스페인 동적 차단 규정',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: '자주 묻는 질문',
|
|
218
|
-
bibliographyTitle: '참고 자료 및 배경',
|
|
219
207
|
scanning: '매트릭스 스캔 중...',
|
|
220
208
|
seekingBlocks: '회선 내 콘크리트 차단물 탐색 중...',
|
|
221
209
|
blockedTitle: '차단 중...',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Veelgestelde vragen',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: IP-blokkering begrijpen',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Spaanse regelgeving voor dynamische blokkering',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'Veelgestelde vragen',
|
|
218
|
-
bibliographyTitle: 'Referenties en context',
|
|
219
207
|
scanning: 'De matrix scannen...',
|
|
220
208
|
seekingBlocks: 'Zoeken naar betonblokken in je glasvezel...',
|
|
221
209
|
blockedTitle: 'BLOKKEREN...',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Często Zadawane Pytania',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: Zrozumienie blokowania IP',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Hiszpańskie przepisy dotyczące dynamicznego blokowania',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'Często Zadawane Pytania',
|
|
218
|
-
bibliographyTitle: 'Referencje i Kontekst',
|
|
219
207
|
scanning: 'Skanowanie matrixa...',
|
|
220
208
|
seekingBlocks: 'Szukanie betonowych blokad w Twoim światłowodzie...',
|
|
221
209
|
blockedTitle: 'BLOKOWANIE...',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Perguntas Frequentes',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: Compreender o bloqueio de IP',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Regulamentações espanholas de bloqueio dinâmico',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'Perguntas Frecuentes',
|
|
218
|
-
bibliographyTitle: 'Referências e Contexto',
|
|
219
207
|
scanning: 'A ler a matrix...',
|
|
220
208
|
seekingBlocks: 'A procurar blocos de betão na sua fibra...',
|
|
221
209
|
blockedTitle: 'A BLOQUEAR...',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
4
|
import type { TebasCheckUI } from '../types';
|
|
@@ -36,7 +37,7 @@ const howToData = [
|
|
|
36
37
|
},
|
|
37
38
|
{
|
|
38
39
|
name: 'Интерпретируйте результаты',
|
|
39
|
-
text: 'Если вы видите результаты красного цвета, это означает, что данный IP недоступен. Если зеленого
|
|
40
|
+
text: 'Если вы видите результаты красного цвета, это означает, что данный IP недоступен. Если зеленого - трафик проходит нормально.',
|
|
40
41
|
},
|
|
41
42
|
{
|
|
42
43
|
name: 'Создайте отчет',
|
|
@@ -82,19 +83,8 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
82
83
|
slug,
|
|
83
84
|
title,
|
|
84
85
|
description,
|
|
85
|
-
faqTitle: 'Часто задаваемые вопросы',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: Понимание блокировки IP',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Испанские правила динамической блокировки',
|
|
95
|
-
url: 'https://www.poderjudicial.es/',
|
|
96
|
-
},
|
|
97
|
-
],
|
|
87
|
+
bibliography,
|
|
98
88
|
howTo: howToData,
|
|
99
89
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
100
90
|
seo: [
|
|
@@ -122,7 +112,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
122
112
|
},
|
|
123
113
|
{
|
|
124
114
|
type: 'paragraph',
|
|
125
|
-
html: 'Ну уж нет. Текущее решение
|
|
115
|
+
html: 'Ну уж нет. Текущее решение - <strong>взорвать фундамент всего здания</strong>.',
|
|
126
116
|
},
|
|
127
117
|
{
|
|
128
118
|
type: 'paragraph',
|
|
@@ -151,7 +141,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
151
141
|
},
|
|
152
142
|
{
|
|
153
143
|
title: 'Вердикт',
|
|
154
|
-
description: 'Если Google работает, а Cloudflare
|
|
144
|
+
description: 'Если Google работает, а Cloudflare - нет, все предельно ясно: ваш провайдер применяет выборочную блокировку IP для Cloudflare.',
|
|
155
145
|
},
|
|
156
146
|
],
|
|
157
147
|
},
|
|
@@ -187,7 +177,7 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
187
177
|
type: 'list',
|
|
188
178
|
items: [
|
|
189
179
|
'<strong>Законно ли это использовать?</strong> Да. Пинговать сервер так же законно, как смотреть на витрину магазина. Этот инструмент является пассивной сетевой диагностикой. Он не взламывает шифрование, не подбирает пароли и не обращается к защищенному контенту. Он просто сообщает вам, почему вы не можете получить доступ к своим обычным сайтам.',
|
|
190
|
-
'<strong>Как это исправить?</strong> Если у вас есть активная блокировка, смена DNS больше не помогает (они знают все уловки). Единственное реальное решение на сегодня
|
|
180
|
+
'<strong>Как это исправить?</strong> Если у вас есть активная блокировка, смена DNS больше не помогает (они знают все уловки). Единственное реальное решение на сегодня - <strong>VPN</strong>. Шифруя ваш трафик, провайдер не может видеть, что вы запрашиваете и у кого, и, следовательно, не может заблокировать вас "выборочно" (или по ошибке).',
|
|
191
181
|
],
|
|
192
182
|
},
|
|
193
183
|
{
|
|
@@ -214,8 +204,6 @@ export const content: ToolLocaleContent<TebasCheckUI> = {
|
|
|
214
204
|
},
|
|
215
205
|
],
|
|
216
206
|
ui: {
|
|
217
|
-
faqTitle: 'Часто задаваемые вопросы',
|
|
218
|
-
bibliographyTitle: 'Ссылки и контекст',
|
|
219
207
|
scanning: 'Сканирование матрицы...',
|
|
220
208
|
seekingBlocks: 'Поиск бетонных блоков в вашем оптоволокне...',
|
|
221
209
|
blockedTitle: 'БЛОКИРОВКА...',
|