@jjlmoya/utils-language 1.3.0 → 1.4.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/category/i18n/de.ts +7 -7
- package/src/category/i18n/ja.ts +1 -1
- package/src/category/i18n/ko.ts +1 -1
- package/src/category/i18n/zh.ts +1 -1
- package/src/tests/category_quality.test.ts +2 -2
- package/src/tests/category_slug_localization.test.ts +3 -3
- package/src/tool/language-learning-study-plan-planner/index.ts +8 -1
package/package.json
CHANGED
package/src/category/i18n/de.ts
CHANGED
|
@@ -3,14 +3,14 @@ import type { CategoryLocaleContent } from '../../types';
|
|
|
3
3
|
export const content: CategoryLocaleContent = {
|
|
4
4
|
slug: 'sprachen',
|
|
5
5
|
title: 'Werkzeuge zum Sprachenlernen',
|
|
6
|
-
description: 'Private Browser
|
|
6
|
+
description: 'Private Browser-Werkzeuge, die Sprachlernziele in praktische Lernpläne, Wochenroutinen und messbare Meilensteine verwandeln.',
|
|
7
7
|
seo: [
|
|
8
|
-
{ type: 'title', text: 'Werkzeuge
|
|
9
|
-
{ type: 'paragraph', html: 'Eine Sprache lernt sich leichter, wenn aus einem
|
|
10
|
-
{ type: 'title', text: 'Fortschritt planen ohne
|
|
11
|
-
{ type: 'paragraph', html: 'Der Planer nutzt breite Bereiche
|
|
12
|
-
{ type: 'title', text: 'Privat und auf jedem
|
|
8
|
+
{ type: 'title', text: 'Werkzeuge für eine praktische Sprachlernplanung', level: 2 },
|
|
9
|
+
{ type: 'paragraph', html: 'Eine Sprache lernt sich leichter, wenn aus einem großen Ziel eine sichtbare Routine wird. Diese Sammlung beginnt mit einem Lernplaner, der GER-Niveau, Zielniveau, Frist, Wochenzeit und bevorzugte Fertigkeiten verbindet.' },
|
|
10
|
+
{ type: 'title', text: 'Fortschritt planen ohne Sprachflüssigkeit zu versprechen', level: 2 },
|
|
11
|
+
{ type: 'paragraph', html: 'Der Planer nutzt breite Bereiche für angeleitetes Lernen, um den Arbeitsaufwand und die verfügbare Zeit bis zur Frist zu schätzen. Er ist eine Planungshilfe, kein Einstufungstest und keine Garantie.' },
|
|
12
|
+
{ type: 'title', text: 'Privat und auf jedem Gerät nützlich', level: 2 },
|
|
13
13
|
{ type: 'paragraph', html: 'Auswahl, Niveau, Frist und Zeitplan bleiben im Browser. Es ist kein Konto erforderlich und die Eingaben werden nicht an einen Server gesendet.' },
|
|
14
|
-
{ type: 'stats', items: [{ label: 'Werkzeug', value: '1', icon: 'mdi:tools' }, { label: 'Niveaus', value: 'A0 bis C2', icon: 'mdi:stairs-up' }, { label: 'Sprachen', value: '10', icon: 'mdi:translate' }, { label: '
|
|
14
|
+
{ type: 'stats', items: [{ label: 'Werkzeug', value: '1', icon: 'mdi:tools' }, { label: 'Niveaus', value: 'A0 bis C2', icon: 'mdi:stairs-up' }, { label: 'Sprachen', value: '10', icon: 'mdi:translate' }, { label: 'Privatsphäre', value: 'Lokal', icon: 'mdi:shield-check' }] },
|
|
15
15
|
],
|
|
16
16
|
};
|
package/src/category/i18n/ja.ts
CHANGED
package/src/category/i18n/ko.ts
CHANGED
package/src/category/i18n/zh.ts
CHANGED
|
@@ -6,8 +6,8 @@ import { languageCategory } from '../data';
|
|
|
6
6
|
const EXPECTED_LOCALES = ['de', 'en', 'es', 'fr', 'id', 'it', 'ja', 'ko', 'nl', 'pl', 'pt', 'ru', 'sv', 'tr', 'zh'] as const;
|
|
7
7
|
const EXPECTED_SLUGS = {
|
|
8
8
|
de: 'sprachen', en: 'language', es: 'idiomas', fr: 'langues', id: 'bahasa',
|
|
9
|
-
it: 'lingue', ja: '
|
|
10
|
-
ru: 'yazyki', sv: 'sprak', tr: 'diller', zh: '
|
|
9
|
+
it: 'lingue', ja: 'language', ko: 'language', nl: 'talen', pl: 'jezyki', pt: 'idiomas',
|
|
10
|
+
ru: 'yazyki', sv: 'sprak', tr: 'diller', zh: 'language',
|
|
11
11
|
} as const;
|
|
12
12
|
const CATEGORY_DIR = join(process.cwd(), 'src', 'category', 'i18n');
|
|
13
13
|
const SEO_TYPES = new Set(['title', 'paragraph', 'list', 'stats']);
|
|
@@ -8,15 +8,15 @@ const EXPECTED_SLUGS = {
|
|
|
8
8
|
fr: 'langues',
|
|
9
9
|
id: 'bahasa',
|
|
10
10
|
it: 'lingue',
|
|
11
|
-
ja: '
|
|
12
|
-
ko: '
|
|
11
|
+
ja: 'language',
|
|
12
|
+
ko: 'language',
|
|
13
13
|
nl: 'talen',
|
|
14
14
|
pl: 'jezyki',
|
|
15
15
|
pt: 'idiomas',
|
|
16
16
|
ru: 'yazyki',
|
|
17
17
|
sv: 'sprak',
|
|
18
18
|
tr: 'diller',
|
|
19
|
-
zh: '
|
|
19
|
+
zh: 'language',
|
|
20
20
|
} as const;
|
|
21
21
|
|
|
22
22
|
describe('Category slug localization', () => {
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ToolDefinition } from '../../types';
|
|
2
|
+
import {
|
|
3
|
+
LANGUAGE_LEARNING_STUDY_PLAN_PLANNER_TOOL as languageLearningStudyPlanPlannerDefinition,
|
|
4
|
+
} from './entry';
|
|
5
|
+
|
|
6
|
+
export { languageLearningStudyPlanPlanner } from './entry';
|
|
2
7
|
export type { LanguagePlannerUI, LanguageLearningStudyPlanPlannerLocaleContent } from './entry';
|
|
3
8
|
export { calculateStudyPlan, GUIDED_HOURS_FROM_BEGINNER, LEVEL_LABELS, PRIORITY_ALLOCATIONS, STUDY_LEVELS } from './logic';
|
|
4
9
|
export type { LanguagePlannerInputs, PlanStatus, SkillAllocation, StudyLevel, StudyMilestone, StudyPlan } from './types';
|
|
10
|
+
|
|
11
|
+
export const LANGUAGE_LEARNING_STUDY_PLAN_PLANNER_TOOL: ToolDefinition = languageLearningStudyPlanPlannerDefinition;
|