@jjlmoya/utils-streaming 1.11.0 → 1.12.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 +1 -1
- package/src/pages/[locale]/[slug].astro +24 -15
- package/src/tests/locale_completeness.test.ts +3 -19
- 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 +2 -14
- 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 +2 -14
- 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 +2 -14
- 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 +2 -14
- package/src/tool/sorteo/i18n/pt.ts +2 -14
- package/src/tool/sorteo/i18n/ru.ts +2 -14
- 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 +2 -14
- package/src/tool/sorteo/index.ts +3 -0
- package/src/tool/sorteo/seo.astro +2 -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 +2 -14
- package/src/tool/tebasCheck/i18n/en.ts +2 -14
- package/src/tool/tebasCheck/i18n/es.ts +2 -14
- package/src/tool/tebasCheck/i18n/fr.ts +2 -14
- 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 +2 -14
- 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 +2 -14
- 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/types.ts +2 -3
|
@@ -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 { SorteoUI } from '../ui';
|
|
@@ -97,19 +98,8 @@ export const content: ToolLocaleContent<SorteoUI> = {
|
|
|
97
98
|
slug,
|
|
98
99
|
title,
|
|
99
100
|
description,
|
|
100
|
-
faqTitle: 'Часто задаваемые вопросы',
|
|
101
101
|
faq: faqData,
|
|
102
|
-
|
|
103
|
-
bibliography: [
|
|
104
|
-
{
|
|
105
|
-
name: 'Web Crypto API: getRandomValues()',
|
|
106
|
-
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues',
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: 'Алгоритм тасования Фишера — Йетса',
|
|
110
|
-
url: 'https://ru.wikipedia.org/wiki/%D0%A2%D0%B0%D1%81%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%A4%D0%B8%D1%88%D0%B5%D1%80%D0%B0_%E2%80%94_%D0%99%D0%B5%D1%82%D1%81%D0%B0',
|
|
111
|
-
},
|
|
112
|
-
],
|
|
102
|
+
bibliography,
|
|
113
103
|
howTo: howToData,
|
|
114
104
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
115
105
|
seo: [
|
|
@@ -222,8 +212,6 @@ export const content: ToolLocaleContent<SorteoUI> = {
|
|
|
222
212
|
},
|
|
223
213
|
],
|
|
224
214
|
ui: {
|
|
225
|
-
faqTitle: 'Часто задаваемые вопросы',
|
|
226
|
-
bibliographyTitle: 'Технические справки',
|
|
227
215
|
title: 'Случайный розыгрыш',
|
|
228
216
|
totalParticipants: 'Всего уникальных участников',
|
|
229
217
|
ready: 'ГОТОВО',
|
|
@@ -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 { SorteoUI } from '../ui';
|
|
@@ -97,19 +98,8 @@ export const content: ToolLocaleContent<SorteoUI> = {
|
|
|
97
98
|
slug,
|
|
98
99
|
title,
|
|
99
100
|
description,
|
|
100
|
-
faqTitle: 'Vanliga frågor',
|
|
101
101
|
faq: faqData,
|
|
102
|
-
|
|
103
|
-
bibliography: [
|
|
104
|
-
{
|
|
105
|
-
name: 'Web Crypto API: getRandomValues()',
|
|
106
|
-
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues',
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: 'Fisher-Yates Shuffle Algorithm',
|
|
110
|
-
url: 'https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle',
|
|
111
|
-
},
|
|
112
|
-
],
|
|
102
|
+
bibliography,
|
|
113
103
|
howTo: howToData,
|
|
114
104
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
115
105
|
seo: [
|
|
@@ -222,8 +212,6 @@ export const content: ToolLocaleContent<SorteoUI> = {
|
|
|
222
212
|
},
|
|
223
213
|
],
|
|
224
214
|
ui: {
|
|
225
|
-
faqTitle: 'Vanliga frågor',
|
|
226
|
-
bibliographyTitle: 'Tekniska referenser',
|
|
227
215
|
title: 'Slumpartad utlottning',
|
|
228
216
|
totalParticipants: 'Totalt antal unika deltagare',
|
|
229
217
|
ready: 'REDO',
|
|
@@ -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 { SorteoUI } from '../ui';
|
|
@@ -97,19 +98,8 @@ export const content: ToolLocaleContent<SorteoUI> = {
|
|
|
97
98
|
slug,
|
|
98
99
|
title,
|
|
99
100
|
description,
|
|
100
|
-
faqTitle: 'Sıkça Sorulan Sorular',
|
|
101
101
|
faq: faqData,
|
|
102
|
-
|
|
103
|
-
bibliography: [
|
|
104
|
-
{
|
|
105
|
-
name: 'Web Crypto API: getRandomValues()',
|
|
106
|
-
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues',
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: 'Fisher-Yates Karıştırma Algoritması',
|
|
110
|
-
url: 'https://tr.wikipedia.org/wiki/Fisher-Yates_kar%C4%B1%C5%9Ft%C4%B1rma_algoritmas%C4%B1',
|
|
111
|
-
},
|
|
112
|
-
],
|
|
102
|
+
bibliography,
|
|
113
103
|
howTo: howToData,
|
|
114
104
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
115
105
|
seo: [
|
|
@@ -222,8 +212,6 @@ export const content: ToolLocaleContent<SorteoUI> = {
|
|
|
222
212
|
},
|
|
223
213
|
],
|
|
224
214
|
ui: {
|
|
225
|
-
faqTitle: 'Sıkça Sorulan Sorular',
|
|
226
|
-
bibliographyTitle: 'Teknik Referanslar',
|
|
227
215
|
title: 'Rastgele Çekiliş',
|
|
228
216
|
totalParticipants: 'Toplam Benzersiz Katılımcı',
|
|
229
217
|
ready: 'HAZIR',
|
|
@@ -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 { SorteoUI } from '../ui';
|
|
@@ -97,19 +98,8 @@ export const content: ToolLocaleContent<SorteoUI> = {
|
|
|
97
98
|
slug,
|
|
98
99
|
title,
|
|
99
100
|
description,
|
|
100
|
-
faqTitle: '常见问题',
|
|
101
101
|
faq: faqData,
|
|
102
|
-
|
|
103
|
-
bibliography: [
|
|
104
|
-
{
|
|
105
|
-
name: 'Web Crypto API: getRandomValues()',
|
|
106
|
-
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues',
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: 'Fisher-Yates 洗牌算法',
|
|
110
|
-
url: 'https://zh.wikipedia.org/wiki/Fisher-Yates%E6%B4%97%E7%89%8C%E7%AE%97%E6%B3%95',
|
|
111
|
-
},
|
|
112
|
-
],
|
|
102
|
+
bibliography,
|
|
113
103
|
howTo: howToData,
|
|
114
104
|
schemas: [faqSchema as any, howToSchema as any, appSchema as any],
|
|
115
105
|
seo: [
|
|
@@ -222,8 +212,6 @@ export const content: ToolLocaleContent<SorteoUI> = {
|
|
|
222
212
|
},
|
|
223
213
|
],
|
|
224
214
|
ui: {
|
|
225
|
-
faqTitle: '常见问题',
|
|
226
|
-
bibliographyTitle: '技术参考',
|
|
227
215
|
title: '随机抽奖',
|
|
228
216
|
totalParticipants: '唯一参与者总数',
|
|
229
217
|
ready: '就绪',
|
package/src/tool/sorteo/index.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { sorteo } from './entry';
|
|
2
|
+
import type { ToolDefinition } from '../../types';
|
|
3
|
+
import giveawayCss from './giveaway.css?raw';
|
|
2
4
|
export * from './entry';
|
|
3
5
|
export const SORTEO_TOOL: ToolDefinition = {
|
|
4
6
|
entry: sorteo,
|
|
5
7
|
Component: () => import('./component.astro'),
|
|
6
8
|
SEOComponent: () => import('./seo.astro'),
|
|
7
9
|
BibliographyComponent: () => import('./bibliography.astro'),
|
|
10
|
+
css: giveawayCss,
|
|
8
11
|
};
|
|
@@ -9,6 +9,7 @@ interface Props {
|
|
|
9
9
|
|
|
10
10
|
const { locale = 'es' } = Astro.props;
|
|
11
11
|
const content = await SORTEO_TOOL.entry.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
12
13
|
---
|
|
13
14
|
|
|
14
|
-
{content && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
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';
|
|
@@ -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: [
|
|
@@ -214,8 +204,6 @@ 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...',
|
|
@@ -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...',
|
|
@@ -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: [
|
|
@@ -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...',
|
|
@@ -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';
|
|
@@ -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: 'Vanliga frågor',
|
|
86
86
|
faq: faqData,
|
|
87
|
-
|
|
88
|
-
bibliography: [
|
|
89
|
-
{
|
|
90
|
-
name: 'Cloudflare: Förstå IP-blockering',
|
|
91
|
-
url: 'https://www.cloudflare.com/learning/network-layer/what-is-ip-blocking/',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'Spanska regler för dynamisk blockering',
|
|
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: 'Vanliga frågor',
|
|
218
|
-
bibliographyTitle: 'Referenser och kontext',
|
|
219
207
|
scanning: 'Skannar matrisen...',
|
|
220
208
|
seekingBlocks: 'Letar efter betongblock i din fiber...',
|
|
221
209
|
blockedTitle: 'BLOCKERAR...',
|