chore: ai, public course and other ui improvements

This commit is contained in:
Rotimi Best
2026-05-09 06:05:03 +01:00
parent 5717dd8004
commit c31ad63955
318 changed files with 20668 additions and 4788 deletions
@@ -30,12 +30,12 @@ export const PUBLIC_ROUTES = [
ROUTE.RESET,
`^${ROUTE.PAGES}/.*`,
`^${ROUTE.COURSE}/[^/]+(/enroll)?/?$`,
`^${ROUTE.COURSE}/[^/]+/lesson/.*`,
`^${ROUTE.COURSES}/?$`,
'/404',
`^${ROUTE.VERIFY_EMAIL_ERROR}$`,
ROUTE.AUTH_FAILED,
'^/csp-report$',
'^/sticky-debug$'
'^/csp-report$'
];
export const PUBLIC_API_ROUTES = ['/api/polar', '/api/lmz', '/api/verify'];
@@ -1,10 +1,10 @@
import { createQuizModal, deleteModal } from '$lib/utils/store/org';
export function onEdit(quiz) {}
export function onEdit(_quiz: unknown) {}
export function onShare(quiz) {}
export function onShare(_quiz: unknown) {}
export function onReport(quiz) {}
export function onReport(_quiz: unknown) {}
export function onRename(quiz) {
createQuizModal.update((m) => ({
@@ -15,7 +15,7 @@ export function onRename(quiz) {
}));
}
export function onMakeCopy(quiz) {}
export function onMakeCopy(_quiz: unknown) {}
export function onDelete(quiz) {
deleteModal.update((m) => ({
+186 -12
View File
@@ -391,6 +391,14 @@
"post_created": "Indlægget er oprettet",
"post_updated": "Opslaget blev opdateret"
}
},
"ai_credits": {
"purchase_success": "Token-pakke føjet til din saldo.",
"checkout_failed": "Kunne ikke starte kassen. Prøv venligst igen."
},
"public_course": {
"url_copied": "Kursus-URL kopieret",
"url_copy_failed": "Kunne ikke kopiere URL"
}
},
"explore": {
@@ -656,7 +664,30 @@
"popover_title": "Vælg tags",
"empty_groups": "Ingen tags tilgængelige endnu"
},
"compliance": "Overholdelse"
"compliance": "Overholdelse",
"public": "Offentlig",
"convert_to_public_blocked": "Dette kursus har spørgsmål, der ikke kan automatisk bedømmes, så det kan ikke gøres offentligt endnu.",
"fix_blocking_questions": "Ret blokerende spørgsmål",
"slug": {
"label": "URL-slug",
"description": "Det sidste segment af denne vares offentlige webadresse. Kun bogstaver, tal og bindestreger.",
"public_only": "Snegle kan kun redigeres på offentlige kurser.",
"in_use": "Den snegl bruges allerede af et andet element i dette kursus."
},
"callout": {
"legend": "Offentlig kursusopkald",
"description": "Vist i bunden af hver lektion og i stedet for låste genstande. Brug det til at lede elever til dit websted eller et betalt kursus.",
"title_label": "Titel",
"title_placeholder": "Vil du gå dybere ind i dette?",
"description_label": "Beskrivelse",
"description_placeholder": "Slut dig til hele kohorten for at sende et projekt i produktionsgrad om 4 uger.",
"button_label": "Knap etiket",
"button_label_placeholder": "Læs mere på min side",
"button_url_label": "Knap-URL",
"button_url_placeholder": "https://example.com",
"clear": "Ryd billedforklaring",
"public_only": "Infoforklaringer vises kun på offentlige kurser."
}
},
"analytics": {
"title": "Analytics"
@@ -1167,7 +1198,10 @@
"attempt_counter": "Forsøg {current} af {total}",
"previous_try": "Tidligere forsøg",
"next_try": "Næste forsøg",
"try_again": "Prøv igen"
"try_again": "Prøv igen",
"back": "Tilbage",
"begin_section": "Start sektion",
"complete_section": "Fuldfør afsnit"
},
"edit_mode": {
"delete_modal": "Slet øvelse",
@@ -1193,7 +1227,8 @@
"hotspot": "Hotspot",
"link": "Links",
"word_bank": "Ordbank",
"star": "Stjernebedømmelse"
"star": "Stjernebedømmelse",
"video_recording": "Videooptagelse"
},
"select_type": "Vælg type",
"question_type_auto_gradable": "Auto",
@@ -1204,7 +1239,9 @@
"title": "Slet spørgsmål",
"sure": "Er du sikker på, at du vil slette dette spørgsmål",
"no": "Nej, lad venligst være",
"yes": "Ja, slet"
"yes": "Ja, slet",
"section_title": "Slet afsnit",
"section_sure": "Dette afsnit vil blive slettet. Dens spørgsmål vil blive flyttet til den nærmeste sektion."
},
"description": {
"title": "Titel",
@@ -1464,12 +1501,76 @@
"correct_value_placeholder": "f.eks. 3",
"max_stars_placeholder": "f.eks. 5"
}
},
"video_recording": {
"submission": {
"no_video": "Ingen video indsendt.",
"unavailable": "Videoen er ikke tilgængelig.",
"duration": "Varighed",
"file_size": "Filstørrelse",
"recorded_at": "Optaget",
"uploaded_at": "Uploadet",
"retake_count": "Genoptager"
},
"preview": {
"max_duration_label": "Max varighed",
"manual_grading": "Eleverne optager et kort videosvar. Manuel klassificering påkrævet."
},
"take": {
"unsupported": "Videooptagelse er ikke understøttet i denne browser.",
"permission_prompt": "Giv kamera og mikrofon adgang til at optage dit svar.",
"permission_denied": "Adgang til kamera eller mikrofon blev blokeret. Tjek browsertilladelser.",
"start_camera": "Opsæt kamera",
"camera_label": "Kamera",
"camera_placeholder": "Vælg kamera",
"play_preview": "Afspil optagelseseksempel",
"pause_preview": "Sæt forhåndsvisning af optagelse på pause",
"start_recording": "Start optagelsen",
"stop_recording": "Stop optagelsen",
"elapsed": "Forløbet",
"remaining": "Tilbage",
"max_duration": "Maks",
"too_short": "Optag i mindst 1 sekund.",
"use_recording": "Brug optagelse",
"retake": "Gentag",
"delete": "Slet optagelse",
"retry_upload": "Prøv at uploade igen",
"uploading": "Uploader optagelse...",
"uploaded": "Optagelsen er uploadet",
"upload_failed": "Upload mislykkedes. Prøv igen.",
"replaces_previous": "Et nyt accepteret svar erstatter det tidligere svar efter upload."
},
"edit": {
"max_duration_label": "Max varighed",
"max_duration_helper": "Studerende optager i browseren og kan tage om, inden de afleverer. Maksimum er 2 minutter.",
"max_duration_placeholder": "60",
"manual_grading": "Kræver manuel klassificering"
}
}
},
"settings": "Indstillinger",
"settings_allow_multiple": "Tillad flere forsøg",
"settings_allow_multiple_helper": "Studerende kan indsende mere end én gang og gennemgå tidligere forsøg på resultatskærmen.",
"settings_save": "Gem indstillinger"
"settings_save": "Gem indstillinger",
"add": "Tilføj",
"add_section": "Tilføj sektion",
"reorder_done": "Færdig genbestilling",
"section": {
"fallback_title": "Sektion",
"questions": "spørgsmål",
"short_questions": "q",
"required": "påkrævet",
"add_question": "Tilføj spørgsmål",
"delete": "Slet afsnit",
"move_up": "Flyt afsnittet op",
"move_down": "Flyt sektionen ned",
"color": "Sektionsfarve",
"description_placeholder": "Beskriv dette afsnit",
"after_section": "Efter afsnit",
"continue": "Fortsæt til næste afsnit",
"go_to_section": "Gå til afsnittet",
"submit": "Indsend øvelse"
}
},
"new_exercise_modal": {
"heading": "Ny øvelse",
@@ -1657,7 +1758,12 @@
"content_locked_description": "Din instruktør har ikke låst dette indhold op endnu. Fuldfør tidligere indhold, eller tjek tilbage senere.",
"saving": "Gemmer...",
"saved": "Gemt",
"draft_recovery": "Der blev fundet et ikke-gemt udkast til denne lektion. Vil du gendanne den?"
"draft_recovery": "Der blev fundet et ikke-gemt udkast til denne lektion. Vil du gendanne den?",
"stats": {
"sections": "Afsnit",
"lessons": "Lektioner",
"exercises": "Øvelser"
}
},
"news_feed": {
"heading": "Nyhedsfeed",
@@ -1782,7 +1888,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "Synlig på dit offentlige kursussite"
},
"sidebar": {
"back_to_course": "Tilbage til kurset",
@@ -1841,6 +1948,26 @@
"blocker_final_misconfigured": "Certificeringsøvelsen \"{exerciseTitle}\" har ingen point konfigureret; bed din instruktør om at ordne det.",
"email_message_label": "E-mail besked",
"email_message_placeholder": "f.eks. Vi er stolte af dine fremskridt - fortsæt med at lære!"
},
"creator": {
"heading": "Hvilket kursus vil du lave?",
"placeholder": "Bed ClassroomIO om at oprette et kursus til dig...",
"type": {
"self_paced": "Selv tempo",
"live_class": "Live klasse"
},
"level": {
"beginner": "Begynder",
"intermediate": "Mellemliggende",
"advanced": "Avanceret"
},
"drafting": {
"heading": "Udarbejdelse af din kursusidé",
"subtext": "Vi forvandler din prompt til en kursustitel og et arbejdsområde.",
"step_reading": "Læser din prompt",
"step_naming": "Navngiv dit kursus",
"step_building": "Oprettelse af dit arbejdsområde"
}
}
},
"courses": {
@@ -1881,6 +2008,8 @@
"unpublished": "Upubliceret",
"continue_course": "Fortsæt",
"learn_more": "Få flere oplysninger",
"public_badge": "Offentlig",
"actions_menu_aria": "Kursehandlinger",
"tags_overflow_aria": "{count} flere tags",
"list_view": {
"title": "Titel",
@@ -1897,7 +2026,8 @@
"invite": "Inviter",
"delete": "Slet",
"open": "Åbn",
"open_course_site": "Åben kursusside"
"open_public_course": "Åbn offentligt kursus",
"copy_course_url": "Kopiér kursus-URL"
},
"due_date": "Forfalder",
"valid_until": "Gælder indtil kl"
@@ -2599,7 +2729,8 @@
"token_auth_tab": "Token Auth",
"customize_lms_tab": "Tilpas LMS",
"domains_tab": "Domæner",
"teams_tab": "Hold"
"teams_tab": "Hold",
"ai_credits_tab": "AI Credits"
},
"subheadings": {
"view_site": "Se webstedet"
@@ -2730,6 +2861,45 @@
},
"teams": {
"page_subtitle": "Invite teammates and control who helps run this organization."
},
"ai_credits": {
"sub_title": "AI-kreditter",
"page_subtitle": "Spor brug af AI-assistent, teamforbrug og køb af tokenpakker.",
"cost_note": "Kreditforbrug vægtes efter modelomkostninger. Gemini 2.5 Flash og GPT-5.4 Mini tæller som 1 kreditenhed pr. token. Claude Sonnet 4.6 tæller som 36× pr. token, hvilket afspejler dens højere API-omkostninger.",
"buy_tokens": {
"title": "Køb flere tokens",
"description": "Hver pakke tilføjer 5.000.000 kreditter for $5 USD. Vælg, hvor mange pakker du har brug for.",
"quantity_hint": "pakker",
"preview": "{quantity} pakke(r) · {tokens} tokens · ${dollars}",
"buy_button": "Køb for ${dollars}"
},
"leaderboard": {
"title": "Teambrug",
"this_month": "Nuværende måned",
"user": "Bruger",
"favorite_model": "Yndlingsmodel",
"tokens": "Poletter",
"empty": "Ingen på dit hold har brugt AI-assistenten denne måned."
},
"chart": {
"heading": "Brug",
"subheading": "Dagligt tokenforbrug denne måned.",
"tokens": "Poletter",
"total_tokens": "Samlede tokens",
"total_requests": "Samlet antal anmodninger",
"empty": "Der er ikke registreret noget forbrug i denne måned endnu."
},
"purchased": {
"title": "Købt brug",
"subtitle": "Ekstra poletter, du har købt, ruller over, indtil de bliver brugt.",
"lifetime": "{tokens} tokens købt · ${dollars} brugt",
"buy_more": "Køb mere"
},
"included": {
"title": "Dit inkluderede forbrug",
"subtitle": "Månedlige tokens inkluderet i din plan.",
"resets_on": "Nulstiller {dato}"
}
}
},
"profileMenu": {
@@ -2839,7 +3009,9 @@
"self_paced_label": "Selv tempo",
"self_paced_subtitle": "Bedst til kurser, hvor eleverne kan tage lektioner i deres eget tempo",
"compliance_label": "Overholdelse",
"compliance_subtitle": "Tilbagevendende træning med gentagninger, påmindelser og fornyelsessporing"
"compliance_subtitle": "Tilbagevendende træning med gentagninger, påmindelser og fornyelsessporing",
"public_label": "Offentlig",
"public_subtitle": "Gratis kursussider uden tilmelding, du kan dele offentligt – fantastisk til leadgener"
},
"delete_modal": {
"label": "Slet",
@@ -3224,7 +3396,8 @@
"input_placeholder": "Spørg AI-assistenten...",
"attach_document": "Vedhæft et dokument (PDF, DOCX, PPTX)",
"upgrade_to_upload": "Opgrader for at uploade dokumenter",
"tokens_exhausted": "Månedlig AI-token-grænse nået. Køb flere kreditter i Indstillinger > Fakturering, eller vent på nulstilling.",
"tokens_exhausted": "Månedlig AI-token-grænse nået.",
"tokens_exhausted_buy_more": "Køb mere",
"chat_history": "Chat historie",
"no_conversations": "Ingen samtaler endnu",
"untitled": "Uden titel",
@@ -3237,7 +3410,8 @@
"mention_exercise": "Motion",
"mention_section": "Sektion",
"mention_no_results": "Intet matchende indhold",
"uploading_document": "Uploader dokument..."
"uploading_document": "Uploader dokument...",
"agent_running_warning": "Ændringerne vises i kurset, når agenten er færdig. Genindlæs ikke siden."
},
"widgets": {
"heading": "Widgets",
+186 -12
View File
@@ -391,6 +391,14 @@
"post_created": "Beitrag erfolgreich erstellt",
"post_updated": "Beitrag erfolgreich aktualisiert"
}
},
"ai_credits": {
"purchase_success": "Das Token-Paket wurde Ihrem Guthaben hinzugefügt.",
"checkout_failed": "Der Checkout konnte nicht gestartet werden. Bitte versuchen Sie es erneut."
},
"public_course": {
"url_copied": "Kurs-URL kopiert",
"url_copy_failed": "URL konnte nicht kopiert werden"
}
},
"explore": {
@@ -656,7 +664,30 @@
"popover_title": "Wählen Sie Tags aus",
"empty_groups": "Noch keine Tags verfügbar"
},
"compliance": "Compliance"
"compliance": "Compliance",
"public": "Öffentlich",
"convert_to_public_blocked": "Dieser Kurs enthält Fragen, die nicht automatisch bewertet werden können, daher kann er noch nicht veröffentlicht werden.",
"fix_blocking_questions": "Blockierende Fragen beheben",
"slug": {
"label": "URL-Slug",
"description": "Das letzte Segment der öffentlichen URL dieses Artikels. Nur Buchstaben, Zahlen und Bindestriche.",
"public_only": "Slugs können nur in öffentlichen Kursen bearbeitet werden.",
"in_use": "Dieser Slug wird bereits von einem anderen Gegenstand in diesem Kurs verwendet."
},
"callout": {
"legend": "Hinweis zum öffentlichen Kurs",
"description": "Wird am Ende jeder Lektion und anstelle von gesperrten Gegenständen angezeigt. Nutzen Sie es, um Lernende auf Ihre Website oder einen kostenpflichtigen Kurs zu leiten.",
"title_label": "Titel",
"title_placeholder": "Möchten Sie näher darauf eingehen?",
"description_label": "Beschreibung",
"description_placeholder": "Schließen Sie sich der gesamten Kohorte an, um in 4 Wochen ein produktionstaugliches Projekt auszuliefern.",
"button_label": "Knopfbeschriftung",
"button_label_placeholder": "Lesen Sie mehr auf meiner Website",
"button_url_label": "Schaltflächen-URL",
"button_url_placeholder": "https://example.com",
"clear": "Klare Beschriftung",
"public_only": "Callouts erscheinen nur in öffentlichen Kursen."
}
},
"analytics": {
"title": "Analytik"
@@ -1167,7 +1198,10 @@
"attempt_counter": "Versuch {current} von {total}",
"previous_try": "Vorheriger Versuch",
"next_try": "Nächster Versuch",
"try_again": "Versuchen Sie es erneut"
"try_again": "Versuchen Sie es erneut",
"back": "Zurück",
"begin_section": "Startabschnitt",
"complete_section": "Vollständiger Abschnitt"
},
"edit_mode": {
"delete_modal": "Übung löschen",
@@ -1193,7 +1227,8 @@
"hotspot": "Hotspot",
"link": "Links",
"word_bank": "Wortbank",
"star": "Sternebewertung"
"star": "Sternebewertung",
"video_recording": "Videoaufzeichnung"
},
"select_type": "Typ auswählen",
"question_type_auto_gradable": "Auto",
@@ -1204,7 +1239,9 @@
"title": "Frage löschen",
"sure": "Sind Sie sicher, dass Sie diese Frage löschen möchten?",
"no": "Nein, bitte nicht",
"yes": "Ja, löschen"
"yes": "Ja, löschen",
"section_title": "Abschnitt löschen",
"section_sure": "Dieser Abschnitt wird gelöscht. Die Fragen werden in den nächstgelegenen Abschnitt verschoben."
},
"description": {
"title": "Titel",
@@ -1464,12 +1501,76 @@
"correct_value_placeholder": "z.B. 3",
"max_stars_placeholder": "z.B. 5"
}
},
"video_recording": {
"submission": {
"no_video": "Kein Video eingereicht.",
"unavailable": "Video nicht verfügbar.",
"duration": "Dauer",
"file_size": "Dateigröße",
"recorded_at": "Aufgezeichnet",
"uploaded_at": "Hochgeladen",
"retake_count": "Wiederholungen"
},
"preview": {
"max_duration_label": "Maximale Dauer",
"manual_grading": "Die Lernenden zeichnen eine kurze Videoantwort auf. Manuelle Bewertung erforderlich."
},
"take": {
"unsupported": "Die Videoaufzeichnung wird in diesem Browser nicht unterstützt.",
"permission_prompt": "Erlauben Sie den Zugriff auf Kamera und Mikrofon, um Ihre Antwort aufzuzeichnen.",
"permission_denied": "Der Kamera- oder Mikrofonzugriff wurde blockiert. Überprüfen Sie die Browserberechtigungen.",
"start_camera": "Kamera einrichten",
"camera_label": "Kamera",
"camera_placeholder": "Kamera auswählen",
"play_preview": "Aufnahmevorschau abspielen",
"pause_preview": "Aufnahmevorschau anhalten",
"start_recording": "Starten Sie die Aufnahme",
"stop_recording": "Stoppen Sie die Aufnahme",
"elapsed": "Vergangen",
"remaining": "Übrig",
"max_duration": "Max",
"too_short": "Nehmen Sie mindestens 1 Sekunde lang auf.",
"use_recording": "Verwenden Sie die Aufzeichnung",
"retake": "Wiederholen",
"delete": "Aufnahme löschen",
"retry_upload": "Versuchen Sie den Upload erneut",
"uploading": "Aufnahme wird hochgeladen...",
"uploaded": "Aufnahme hochgeladen",
"upload_failed": "Der Upload ist fehlgeschlagen. Versuchen Sie es erneut.",
"replaces_previous": "Eine neue akzeptierte Einstellung ersetzt die vorherige Antwort nach dem Hochladen."
},
"edit": {
"max_duration_label": "Maximale Dauer",
"max_duration_helper": "Die Schüler zeichnen im Browser auf und können sie vor dem Absenden wiederholen. Das Maximum beträgt 2 Minuten.",
"max_duration_placeholder": "60",
"manual_grading": "Erfordert eine manuelle Bewertung"
}
}
},
"settings": "Einstellungen",
"settings_allow_multiple": "Erlauben Sie mehrere Versuche",
"settings_allow_multiple_helper": "Studierende können mehr als einmal einreichen und frühere Versuche auf dem Ergebnisbildschirm überprüfen.",
"settings_save": "Einstellungen speichern"
"settings_save": "Einstellungen speichern",
"add": "Hinzufügen",
"add_section": "Abschnitt hinzufügen",
"reorder_done": "Nachbestellung abgeschlossen",
"section": {
"fallback_title": "Abschnitt",
"questions": "Fragen",
"short_questions": "q",
"required": "erforderlich",
"add_question": "Frage hinzufügen",
"delete": "Abschnitt löschen",
"move_up": "Abschnitt nach oben verschieben",
"move_down": "Abschnitt nach unten verschieben",
"color": "Abschnittsfarbe",
"description_placeholder": "Beschreiben Sie diesen Abschnitt",
"after_section": "Nach Abschnitt",
"continue": "Fahren Sie mit dem nächsten Abschnitt fort",
"go_to_section": "Gehen Sie zum Abschnitt",
"submit": "Übung einreichen"
}
},
"new_exercise_modal": {
"heading": "Neue Übung",
@@ -1657,7 +1758,12 @@
"content_locked_description": "Ihr Kursleiter hat diesen Inhalt noch nicht freigeschaltet. Vervollständigen Sie den vorherigen Inhalt oder schauen Sie später noch einmal vorbei.",
"saving": "Sparen…",
"saved": "Gespeichert",
"draft_recovery": "Für diese Lektion wurde ein nicht gespeicherter Entwurf gefunden. Möchten Sie es wiederherstellen?"
"draft_recovery": "Für diese Lektion wurde ein nicht gespeicherter Entwurf gefunden. Möchten Sie es wiederherstellen?",
"stats": {
"sections": "Abschnitte",
"lessons": "Lektionen",
"exercises": "Übungen"
}
},
"news_feed": {
"heading": "Newsfeed",
@@ -1782,7 +1888,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "Sichtbar auf Ihrer öffentlichen Kurswebsite"
},
"sidebar": {
"back_to_course": "Zurück zum Kurs",
@@ -1841,6 +1948,26 @@
"blocker_final_misconfigured": "Für die Zertifizierungsübung „{exerciseTitle}“ sind keine Punkte konfiguriert; Bitten Sie Ihren Lehrer, das Problem zu beheben.",
"email_message_label": "E-Mail-Nachricht",
"email_message_placeholder": "z.B. Wir sind stolz auf Ihre Fortschritte – lernen Sie weiter!"
},
"creator": {
"heading": "Welchen Kurs möchten Sie erstellen?",
"placeholder": "Bitten Sie ClassroomIO, einen Kurs für Sie zu erstellen ...",
"type": {
"self_paced": "Eigenständig",
"live_class": "Live-Klasse"
},
"level": {
"beginner": "Anfänger",
"intermediate": "Mittelstufe",
"advanced": "Fortgeschritten"
},
"drafting": {
"heading": "Ausarbeitung Ihrer Kursidee",
"subtext": "Wir verwandeln Ihre Eingabeaufforderung in einen Kurstitel und einen Arbeitsbereich.",
"step_reading": "Ich lese Ihre Aufforderung",
"step_naming": "Benennen Sie Ihren Kurs",
"step_building": "Erstellen Sie Ihren Arbeitsbereich"
}
}
},
"courses": {
@@ -1881,6 +2008,8 @@
"unpublished": "Unveröffentlicht",
"continue_course": "Weiter",
"learn_more": "Erfahren Sie mehr",
"public_badge": "Öffentlich",
"actions_menu_aria": "Kursaktionen",
"tags_overflow_aria": "{count} weitere Tags",
"list_view": {
"title": "Titel",
@@ -1897,7 +2026,8 @@
"invite": "Einladen",
"delete": "Löschen",
"open": "Offen",
"open_course_site": "Kursseite öffnen"
"open_public_course": "Öffentlichen Kurs öffnen",
"copy_course_url": "Kurs-URL kopieren"
},
"due_date": "Fällig",
"valid_until": "Gültig bis"
@@ -2599,7 +2729,8 @@
"token_auth_tab": "Token-Auth",
"customize_lms_tab": "LMS anpassen",
"domains_tab": "Domänen",
"teams_tab": "Mannschaften"
"teams_tab": "Mannschaften",
"ai_credits_tab": "KI-Credits"
},
"subheadings": {
"view_site": "Website ansehen"
@@ -2730,6 +2861,45 @@
},
"teams": {
"page_subtitle": "Invite teammates and control who helps run this organization."
},
"ai_credits": {
"sub_title": "KI-Credits",
"page_subtitle": "Verfolgen Sie die Nutzung von KI-Assistenten, den Teamverbrauch und den Kauf von Token-Paketen.",
"cost_note": "Die Credit-Nutzung wird nach Modellkosten gewichtet. Gemini 2.5 Flash und GPT-5.4 Mini zählen als 1 Krediteinheit pro Token. Claude Sonnet 4.6 zählt als 36× pro Token, was die höheren API-Kosten widerspiegelt.",
"buy_tokens": {
"title": "Kaufen Sie mehr Token",
"description": "Jedes Paket fügt 5.000.000 Credits für 5 USD hinzu. Wählen Sie, wie viele Packungen Sie benötigen.",
"quantity_hint": "Packungen",
"preview": "{quantity} Packung(en) · {tokens} Token · ${dollars}",
"buy_button": "Für ${dollars} kaufen"
},
"leaderboard": {
"title": "Teamnutzung",
"this_month": "Aktueller Monat",
"user": "Benutzer",
"favorite_model": "Lieblingsmodell",
"tokens": "Token",
"empty": "Niemand in Ihrem Team hat diesen Monat den KI-Assistenten verwendet."
},
"chart": {
"heading": "Nutzung",
"subheading": "Täglicher Tokenverbrauch in diesem Monat.",
"tokens": "Token",
"total_tokens": "Gesamtzahl der Token",
"total_requests": "Gesamtzahl der Anfragen",
"empty": "In diesem Monat wurde noch keine Nutzung registriert."
},
"purchased": {
"title": "Gekaufte Nutzung",
"subtitle": "Zusätzliche Token, die Sie gekauft haben, bleiben bestehen, bis sie verwendet werden.",
"lifetime": "{tokens} Token gekauft · ${dollars} ausgegeben",
"buy_more": "Kaufen Sie mehr"
},
"included": {
"title": "Ihr inbegriffener Verbrauch",
"subtitle": "Monatliche Token sind in Ihrem Plan enthalten.",
"resets_on": "Setzt {Datum} zurück"
}
}
},
"profileMenu": {
@@ -2839,7 +3009,9 @@
"self_paced_label": "Eigenständig",
"self_paced_subtitle": "Am besten für Kurse geeignet, bei denen die Schüler den Unterricht in ihrem eigenen Tempo absolvieren können",
"compliance_label": "Compliance",
"compliance_subtitle": "Wiederkehrende Schulungen mit Wiederholungen, Erinnerungen und Verlängerungsverfolgung"
"compliance_subtitle": "Wiederkehrende Schulungen mit Wiederholungen, Erinnerungen und Verlängerungsverfolgung",
"public_label": "Öffentlich",
"public_subtitle": "Kostenlose Kursseiten ohne Anmeldung, die Sie öffentlich teilen können – ideal für die Lead-Generierung"
},
"delete_modal": {
"label": "Löschen",
@@ -3224,7 +3396,8 @@
"input_placeholder": "Fragen Sie den KI-Assistenten...",
"attach_document": "Ein Dokument anhängen (PDF, DOCX, PPTX)",
"upgrade_to_upload": "Upgrade zum Hochladen von Dokumenten",
"tokens_exhausted": "Das monatliche AI-Token-Limit wurde erreicht. Kaufen Sie mehr Credits unter Einstellungen > Abrechnung oder warten Sie auf das Zurücksetzen.",
"tokens_exhausted": "Das monatliche AI-Token-Limit wurde erreicht.",
"tokens_exhausted_buy_more": "Mehr kaufen",
"chat_history": "Chat-Verlauf",
"no_conversations": "Noch keine Gespräche",
"untitled": "Ohne Titel",
@@ -3237,7 +3410,8 @@
"mention_exercise": "Übung",
"mention_section": "Abschnitt",
"mention_no_results": "Kein passender Inhalt",
"uploading_document": "Dokument wird hochgeladen..."
"uploading_document": "Dokument wird hochgeladen...",
"agent_running_warning": "Die Änderungen werden im Kurs angezeigt, sobald der Agent fertig ist. Laden Sie die Seite nicht neu."
},
"widgets": {
"heading": "Widgets",
+206 -11
View File
@@ -63,7 +63,32 @@
"self_paced_label": "Self Paced",
"self_paced_subtitle": "Best for courses where students can take lessons at their own pace",
"compliance_label": "Compliance",
"compliance_subtitle": "Recurring training with retakes, reminders, and renewal tracking"
"compliance_subtitle": "Recurring training with retakes, reminders, and renewal tracking",
"public_label": "Public",
"public_subtitle": "Free, no-signup course pages you can share publicly — great for lead gen"
},
"public_course": {
"header": {
"explore_courses": "Explore courses",
"sign_in": "Sign in"
},
"footer_nav": {
"previous": "Previous",
"next": "Next"
},
"powered_by": {
"label": "Powered by",
"brand": "ClassroomIO"
},
"exercise": {
"submit": "Check my answers",
"try_again": "Try again",
"practice_again": "Practice again",
"attempt_option": "Attempt {attemptNumber} - {correct}/{total}",
"attempts_select_aria": "Your attempts",
"privacy_hint": "Graded instantly in your browser — nothing is submitted.",
"summary_template": "You got [[correct]] / [[total]] correct."
}
},
"onboarding": {
"sell": "Sell courses online",
@@ -181,6 +206,7 @@
"organization_tab": "Organization",
"landing_page_tab": "Landing Page",
"billing_tab": "Billing",
"ai_credits_tab": "AI Credits",
"integrations_tab": "Integrations",
"language_tab": "Language",
"auth_tab": "Authentication",
@@ -579,10 +605,46 @@
"active": "You don't have any active billing",
"provider": "We use Polar to help manage your billing",
"open_billing": "Open billing",
"error": "An error occurred while opening billing",
"ai_credits": "AI Assistant Usage",
"ai_tokens_used": "tokens used this month",
"ai_bonus_credits": "bonus credits available"
"error": "An error occurred while opening billing"
},
"ai_credits": {
"sub_title": "AI credits",
"page_subtitle": "Track AI assistant usage, team consumption, and purchase token packs.",
"cost_note": "Credit usage is weighted by model cost. Gemini 2.5 Flash and GPT-5.4 Mini count as 1 credit unit per token. Claude Sonnet 4.6 counts as 36× per token, reflecting its higher API cost.",
"included": {
"title": "Your included usage",
"subtitle": "Monthly tokens included with your plan.",
"resets_on": "Resets {date}"
},
"purchased": {
"title": "Purchased usage",
"subtitle": "Extra tokens you bought roll over until used.",
"lifetime": "{tokens} tokens purchased · ${dollars} spent",
"buy_more": "Buy more"
},
"chart": {
"heading": "Usage",
"subheading": "Daily token consumption this month.",
"tokens": "Tokens",
"total_tokens": "Total tokens",
"total_requests": "Total requests",
"empty": "No usage recorded this month yet."
},
"leaderboard": {
"title": "Team usage",
"this_month": "Current month",
"user": "User",
"favorite_model": "Favorite model",
"tokens": "Tokens",
"empty": "Nobody on your team has used the AI assistant this month."
},
"buy_tokens": {
"title": "Buy more tokens",
"description": "Each pack adds 5,000,000 credits for $5 USD. Choose how many packs you need.",
"quantity_hint": "packs",
"preview": "{quantity} pack(s) · {tokens} tokens · ${dollars}",
"buy_button": "Buy for ${dollars}"
}
}
},
"media_manager": {
@@ -1416,7 +1478,8 @@
"share": "Share",
"invite": "Invite",
"delete": "Delete",
"open_course_site": "Open course site"
"open_public_course": "Open public course",
"copy_course_url": "Copy course URL"
},
"error_message": "An error occurred.",
"lessons_number": "lessons",
@@ -1426,6 +1489,8 @@
"unpublished": "Unpublished",
"continue_course": "Continue",
"learn_more": "Learn more",
"public_badge": "Public",
"actions_menu_aria": "Course actions",
"due_date": "Due",
"valid_until": "Valid until",
"tags_overflow_aria": "{count} more tags",
@@ -1464,6 +1529,26 @@
}
},
"course": {
"creator": {
"heading": "What course do you want to create?",
"placeholder": "Ask ClassroomIO to create a course for you...",
"drafting": {
"heading": "Drafting your course idea",
"subtext": "We're turning your prompt into a course title and workspace.",
"step_reading": "Reading your prompt",
"step_naming": "Naming your course",
"step_building": "Creating your workspace"
},
"level": {
"beginner": "Beginner",
"intermediate": "Intermediate",
"advanced": "Advanced"
},
"type": {
"self_paced": "Self Paced",
"live_class": "Live Class"
}
},
"navItems": {
"nav_news_feed": "News Feed",
"nav_content": "Content",
@@ -1528,7 +1613,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "Visible on your public course site"
},
"navItem": {
"news_feed": {
@@ -1575,6 +1661,11 @@
"lessons": {
"heading": "Lessons",
"heading_v2": "Content",
"stats": {
"sections": "Sections",
"lessons": "Lessons",
"exercises": "Exercises"
},
"drag": "drag a card to reorder",
"no_lesson": "No lessons yet",
"content_locked_title": "This content is locked",
@@ -1604,6 +1695,7 @@
"save": "Save",
"edit": "Edit",
"delete": "Delete",
"delete_tooltip": "Delete this lesson",
"cancel": "Cancel"
},
"add_content": "Add content",
@@ -1812,8 +1904,11 @@
"submissions": "Submissions",
"save": "Save",
"preview": "Preview",
"add": "Add",
"add_question": "Add a question",
"add_section": "Add section",
"reorder": "Reorder Questions",
"reorder_done": "Done reordering",
"delete_exercise": "Delete Exercise",
"order_questions": "Order questions",
"write_your_answer": "Write your answer",
@@ -1848,9 +1943,27 @@
"delete_confirmation": {
"title": "Delete question",
"sure": "Are you sure you want to delete this question",
"section_title": "Delete section",
"section_sure": "This section will be deleted. Its questions will be moved to the nearest section.",
"no": "No, please don't",
"yes": "Yes, delete"
},
"section": {
"fallback_title": "Section",
"questions": "questions",
"short_questions": "q",
"required": "required",
"add_question": "Add question",
"delete": "Delete section",
"move_up": "Move section up",
"move_down": "Move section down",
"color": "Section color",
"description_placeholder": "Describe this section",
"after_section": "After section",
"continue": "Continue to next section",
"go_to_section": "Go to section",
"submit": "Submit exercise"
},
"edit_mode": {
"delete_modal": "Delete Exercise",
"sure": "Are you sure you want to delete this exercise?",
@@ -1879,7 +1992,8 @@
"hotspot": "Hotspot",
"link": "Links",
"word_bank": "Word bank",
"star": "Star rating"
"star": "Star rating",
"video_recording": "Video recording"
}
},
"view_mode": {
@@ -1908,7 +2022,10 @@
"status_graded": "Status: Review Completed",
"status_submitted": "Status: Submitted",
"checking_submission": "Checking your submission...",
"instructor_feedback": "Instructor feedback"
"instructor_feedback": "Instructor feedback",
"back": "Back",
"begin_section": "Start section",
"complete_section": "Complete section"
},
"analytics": {
"summary": {
@@ -2107,6 +2224,51 @@
"max_size_label": "Max size (MB)"
}
},
"video_recording": {
"edit": {
"max_duration_label": "Max duration",
"max_duration_helper": "Students record in the browser and can retake before submitting. Maximum is 2 minutes.",
"max_duration_placeholder": "60",
"manual_grading": "Requires manual grading"
},
"take": {
"unsupported": "Video recording is not supported in this browser.",
"permission_prompt": "Allow camera and microphone access to record your answer.",
"permission_denied": "Camera or microphone access was blocked. Check browser permissions.",
"start_camera": "Set up camera",
"camera_label": "Camera",
"camera_placeholder": "Select camera",
"play_preview": "Play recording preview",
"pause_preview": "Pause recording preview",
"start_recording": "Start recording",
"stop_recording": "Stop recording",
"elapsed": "Elapsed",
"remaining": "Remaining",
"max_duration": "Max",
"too_short": "Record for at least 1 second.",
"use_recording": "Use recording",
"retake": "Retake",
"delete": "Delete recording",
"retry_upload": "Retry upload",
"uploading": "Uploading recording...",
"uploaded": "Recording uploaded",
"upload_failed": "Upload failed. Try again.",
"replaces_previous": "A new accepted take replaces the previous answer after upload."
},
"preview": {
"max_duration_label": "Max duration",
"manual_grading": "Learners record a short video response. Manual grading required."
},
"submission": {
"no_video": "No video submitted.",
"unavailable": "Video unavailable.",
"duration": "Duration",
"file_size": "File size",
"recorded_at": "Recorded",
"uploaded_at": "Uploaded",
"retake_count": "Retakes"
}
},
"link": {
"edit": {
"instructions_placeholder": "Optional instructions for learners",
@@ -2686,6 +2848,29 @@
"live_class": "Live class",
"self_paced": "Self paced",
"compliance": "Compliance",
"public": "Public",
"convert_to_public_blocked": "This course has questions that can’t be auto-graded, so it can’t be made Public yet.",
"fix_blocking_questions": "Fix blocking questions",
"callout": {
"legend": "Public course callout",
"description": "Shown at the bottom of each lesson and in place of locked items. Use it to drive learners to your site or a paid course.",
"title_label": "Title",
"title_placeholder": "Want to go deeper on this?",
"description_label": "Description",
"description_placeholder": "Join the full cohort to ship a production-grade project in 4 weeks.",
"button_label": "Button label",
"button_label_placeholder": "Read more on my site",
"button_url_label": "Button URL",
"button_url_placeholder": "https://example.com",
"clear": "Clear callout",
"public_only": "Callouts only appear on Public courses."
},
"slug": {
"label": "URL slug",
"description": "The last segment of this item’s public URL. Only letters, numbers, and dashes.",
"public_only": "Slugs are only editable on Public courses.",
"in_use": "That slug is already used by another item in this course."
},
"tags": {
"title": "Tags",
"description": "Assign tags so learners can discover this course with filters.",
@@ -3027,6 +3212,14 @@
"activated": "Token auth enabled.",
"deactivated": "Token auth disabled."
},
"ai_credits": {
"purchase_success": "Token pack added to your balance.",
"checkout_failed": "Could not start checkout. Please try again."
},
"public_course": {
"url_copied": "Course URL copied",
"url_copy_failed": "Could not copy URL"
},
"something": "Something went wrong - Please try later",
"update": "Update",
"update_failed": "Update failed",
@@ -3423,7 +3616,8 @@
"input_placeholder": "Ask the AI assistant...",
"attach_document": "Attach a document (PDF, DOCX, PPTX)",
"upgrade_to_upload": "Upgrade to upload documents",
"tokens_exhausted": "Monthly AI token limit reached. Buy more credits in Settings > Billing or wait for reset.",
"tokens_exhausted": "Monthly AI token limit reached.",
"tokens_exhausted_buy_more": "Buy more",
"chat_history": "Chat History",
"no_conversations": "No conversations yet",
"untitled": "Untitled",
@@ -3436,6 +3630,7 @@
"mention_exercise": "Exercise",
"mention_section": "Section",
"mention_no_results": "No matching content",
"uploading_document": "Uploading document..."
"uploading_document": "Uploading document...",
"agent_running_warning": "The changes will appear in the course once the agent is done. Don't reload the page."
}
}
+186 -12
View File
@@ -391,6 +391,14 @@
"post_created": "Publicación creada exitosamente",
"post_updated": "Publicación actualizada exitosamente"
}
},
"ai_credits": {
"purchase_success": "Paquete de tokens agregado a su saldo.",
"checkout_failed": "No se pudo iniciar el pago. Por favor inténtalo de nuevo."
},
"public_course": {
"url_copied": "URL del curso copiada",
"url_copy_failed": "No se pudo copiar la URL"
}
},
"explore": {
@@ -656,7 +664,30 @@
"popover_title": "Seleccionar etiquetas",
"empty_groups": "Aún no hay etiquetas disponibles"
},
"compliance": "Cumplimiento"
"compliance": "Cumplimiento",
"public": "Público",
"convert_to_public_blocked": "Este curso tiene preguntas que no se pueden calificar automáticamente, por lo que aún no se puede hacer público.",
"fix_blocking_questions": "Corregir preguntas de bloqueo",
"slug": {
"label": "barra de URL",
"description": "El último segmento de la URL pública de este elemento. Sólo letras, números y guiones.",
"public_only": "Los slugs solo se pueden editar en cursos públicos.",
"in_use": "Ese slug ya lo utiliza otro elemento de este curso."
},
"callout": {
"legend": "Llamada del curso público",
"description": "Se muestra al final de cada lección y en lugar de los elementos bloqueados. Úselo para llevar a los estudiantes a su sitio o a un curso pago.",
"title_label": "Título",
"title_placeholder": "¿Quieres profundizar en esto?",
"description_label": "Descripción",
"description_placeholder": "Únase al grupo completo para enviar un proyecto de nivel de producción en 4 semanas.",
"button_label": "Etiqueta del botón",
"button_label_placeholder": "Leer más en mi sitio",
"button_url_label": "URL del botón",
"button_url_placeholder": "https://ejemplo.com",
"clear": "Borrar llamada",
"public_only": "Las notas solo aparecen en los cursos públicos."
}
},
"analytics": {
"title": "Analítica"
@@ -1167,7 +1198,10 @@
"attempt_counter": "Intento {actual} de {total}",
"previous_try": "Intento anterior",
"next_try": "Próximo intento",
"try_again": "Inténtalo de nuevo"
"try_again": "Inténtalo de nuevo",
"back": "Atrás",
"begin_section": "Sección de inicio",
"complete_section": "Sección completa"
},
"edit_mode": {
"delete_modal": "Eliminar ejercicio",
@@ -1193,7 +1227,8 @@
"hotspot": "Punto de acceso",
"link": "Enlaces",
"word_bank": "banco de palabras",
"star": "Calificación de estrellas"
"star": "Calificación de estrellas",
"video_recording": "Grabación de vídeo"
},
"select_type": "Seleccionar tipo",
"question_type_auto_gradable": "Auto",
@@ -1204,7 +1239,9 @@
"title": "Eliminar pregunta",
"sure": "¿Estás seguro de que quieres eliminar esta pregunta?",
"no": "No, por favor no",
"yes": "Si, borrar"
"yes": "Si, borrar",
"section_title": "Eliminar sección",
"section_sure": "Esta sección será eliminada. Sus preguntas se trasladarán a la sección más cercana."
},
"description": {
"title": "Título",
@@ -1464,12 +1501,76 @@
"correct_value_placeholder": "por ej. 3",
"max_stars_placeholder": "por ej. 5"
}
},
"video_recording": {
"submission": {
"no_video": "No se envió ningún vídeo.",
"unavailable": "Vídeo no disponible.",
"duration": "Duración",
"file_size": "Tamaño del archivo",
"recorded_at": "grabado",
"uploaded_at": "subido",
"retake_count": "Repeticiones"
},
"preview": {
"max_duration_label": "Duración máxima",
"manual_grading": "Los alumnos graban una breve respuesta en vídeo. Se requiere calificación manual."
},
"take": {
"unsupported": "La grabación de vídeo no es compatible con este navegador.",
"permission_prompt": "Permita el acceso a la cámara y al micrófono para grabar su respuesta.",
"permission_denied": "Se bloqueó el acceso a la cámara o al micrófono. Verifique los permisos del navegador.",
"start_camera": "Configurar la cámara",
"camera_label": "cámara",
"camera_placeholder": "Seleccionar cámara",
"play_preview": "Reproducir vista previa de grabación",
"pause_preview": "Pausar la vista previa de la grabación",
"start_recording": "Empezar a grabar",
"stop_recording": "dejar de grabar",
"elapsed": "Transcurrido",
"remaining": "restante",
"max_duration": "máx.",
"too_short": "Grabe durante al menos 1 segundo.",
"use_recording": "Usar grabación",
"retake": "Retomar",
"delete": "Eliminar grabación",
"retry_upload": "Reintentar subir",
"uploading": "Subiendo grabación...",
"uploaded": "Grabación cargada",
"upload_failed": "La carga falló. Intentar otra vez.",
"replaces_previous": "Una nueva toma aceptada reemplaza la respuesta anterior después de la carga."
},
"edit": {
"max_duration_label": "Duración máxima",
"max_duration_helper": "Los estudiantes registran en el navegador y pueden volver a tomarlo antes de enviarlo. El máximo es 2 minutos.",
"max_duration_placeholder": "60",
"manual_grading": "Requiere calificación manual"
}
}
},
"settings": "Configuración",
"settings_allow_multiple": "Permitir múltiples intentos",
"settings_allow_multiple_helper": "Los estudiantes pueden enviar más de una vez y revisar intentos anteriores en la pantalla de resultados.",
"settings_save": "Guardar configuración"
"settings_save": "Guardar configuración",
"add": "Añadir",
"add_section": "Agregar sección",
"reorder_done": "Hecho de reordenar",
"section": {
"fallback_title": "Sección",
"questions": "preguntas",
"short_questions": "q",
"required": "requerido",
"add_question": "Agregar pregunta",
"delete": "Eliminar sección",
"move_up": "Mover sección hacia arriba",
"move_down": "Mover sección hacia abajo",
"color": "Color de sección",
"description_placeholder": "Describe esta sección",
"after_section": "Después de la sección",
"continue": "Continuar a la siguiente sección",
"go_to_section": "Ir a la sección",
"submit": "Enviar ejercicio"
}
},
"new_exercise_modal": {
"heading": "Nuevo ejercicio",
@@ -1657,7 +1758,12 @@
"content_locked_description": "Su instructor aún no ha desbloqueado este contenido. Complete el contenido anterior o vuelva a consultarlo más tarde.",
"saving": "Guardando…",
"saved": "Guardado",
"draft_recovery": "Se encontró un borrador no guardado para esta lección. ¿Quieres restaurarlo?"
"draft_recovery": "Se encontró un borrador no guardado para esta lección. ¿Quieres restaurarlo?",
"stats": {
"sections": "Secciones",
"lessons": "Lecciones",
"exercises": "Ejercicios"
}
},
"news_feed": {
"heading": "Noticias",
@@ -1782,7 +1888,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "Visible en el sitio público de tu curso"
},
"sidebar": {
"back_to_course": "volver al curso",
@@ -1841,6 +1948,26 @@
"blocker_final_misconfigured": "El ejercicio de certificación \"{exerciseTitle}\" no tiene puntos configurados; Pídele a tu instructor que lo arregle.",
"email_message_label": "Mensaje de correo electrónico",
"email_message_placeholder": "por ej. Estamos orgullosos de tu progreso: ¡sigue aprendiendo!"
},
"creator": {
"heading": "¿Qué curso quieres crear?",
"placeholder": "Pídele a ClassroomIO que cree un curso para ti...",
"type": {
"self_paced": "a tu propio ritmo",
"live_class": "Clase en vivo"
},
"level": {
"beginner": "principiante",
"intermediate": "Intermedio",
"advanced": "Avanzado"
},
"drafting": {
"heading": "Redactando tu idea de curso",
"subtext": "Estamos convirtiendo su mensaje en un título de curso y un espacio de trabajo.",
"step_reading": "Leyendo tu mensaje",
"step_naming": "Nombrando tu curso",
"step_building": "Creando tu espacio de trabajo"
}
}
},
"courses": {
@@ -1881,6 +2008,8 @@
"unpublished": "Inédito",
"continue_course": "Continuar",
"learn_more": "Más información",
"public_badge": "Público",
"actions_menu_aria": "Acciones del curso",
"tags_overflow_aria": "{count} etiquetas más",
"list_view": {
"title": "Título",
@@ -1897,7 +2026,8 @@
"invite": "invitar",
"delete": "Eliminar",
"open": "Abierto",
"open_course_site": "Abrir sitio del curso"
"open_public_course": "Abrir curso público",
"copy_course_url": "Copiar URL del curso"
},
"due_date": "debido",
"valid_until": "Válido hasta"
@@ -2599,7 +2729,8 @@
"token_auth_tab": "Autenticación de token",
"customize_lms_tab": "Personalizar LMS",
"domains_tab": "Dominios",
"teams_tab": "equipos"
"teams_tab": "equipos",
"ai_credits_tab": "Créditos de IA"
},
"subheadings": {
"view_site": "Ver sitio"
@@ -2730,6 +2861,45 @@
},
"teams": {
"page_subtitle": "Invite teammates and control who helps run this organization."
},
"ai_credits": {
"sub_title": "créditos de IA",
"page_subtitle": "Realice un seguimiento del uso del asistente de IA, el consumo del equipo y compre paquetes de tokens.",
"cost_note": "El uso del crédito está ponderado por el costo del modelo. Gemini 2.5 Flash y GPT-5.4 Mini cuentan como 1 unidad de crédito por token. Claude Sonnet 4.6 cuenta como 36 veces por token, lo que refleja su mayor costo de API.",
"buy_tokens": {
"title": "Compra más fichas",
"description": "Cada paquete agrega 5.000.000 de créditos por $5 USD. Elige cuántos paquetes necesitas.",
"quantity_hint": "paquetes",
"preview": "{cantidad} paquete(s) · {tokens} tokens · ${dollars}",
"buy_button": "Compra por ${dolares}"
},
"leaderboard": {
"title": "Uso del equipo",
"this_month": "Mes actual",
"user": "Usuario",
"favorite_model": "modelo favorito",
"tokens": "Fichas",
"empty": "Nadie de tu equipo ha utilizado el asistente de IA este mes."
},
"chart": {
"heading": "Uso",
"subheading": "Consumo diario de tokens este mes.",
"tokens": "Fichas",
"total_tokens": "fichas totales",
"total_requests": "Solicitudes totales",
"empty": "Aún no se ha registrado ningún uso este mes."
},
"purchased": {
"title": "Uso comprado",
"subtitle": "Las fichas adicionales que compraste se acumulan hasta que se usan.",
"lifetime": "{tokens} tokens comprados · ${dollars} gastados",
"buy_more": "comprar más"
},
"included": {
"title": "Su uso incluido",
"subtitle": "Fichas mensuales incluidas en tu plan.",
"resets_on": "Restablece {fecha}"
}
}
},
"profileMenu": {
@@ -2839,7 +3009,9 @@
"self_paced_label": "a tu propio ritmo",
"self_paced_subtitle": "Lo mejor para cursos donde los estudiantes pueden tomar lecciones a su propio ritmo",
"compliance_label": "Cumplimiento",
"compliance_subtitle": "Capacitación recurrente con repeticiones, recordatorios y seguimiento de renovaciones."
"compliance_subtitle": "Capacitación recurrente con repeticiones, recordatorios y seguimiento de renovaciones.",
"public_label": "Público",
"public_subtitle": "Páginas de cursos gratuitas y sin registro que puedes compartir públicamente: ideales para la generación de leads"
},
"delete_modal": {
"label": "Eliminar",
@@ -3224,7 +3396,8 @@
"input_placeholder": "Pregúntale al asistente de IA...",
"attach_document": "Adjunte un documento (PDF, DOCX, PPTX)",
"upgrade_to_upload": "Actualizar para cargar documentos",
"tokens_exhausted": "Se alcanzó el límite mensual de tokens de IA. Compre más créditos en Configuración > Facturación o espere a que se restablezcan.",
"tokens_exhausted": "Se alcanzó el límite mensual de tokens de IA.",
"tokens_exhausted_buy_more": "Comprar más",
"chat_history": "Historial de chat",
"no_conversations": "Aún no hay conversaciones",
"untitled": "Sin título",
@@ -3237,7 +3410,8 @@
"mention_exercise": "ejercicio",
"mention_section": "Sección",
"mention_no_results": "No hay contenido coincidente",
"uploading_document": "Subiendo documento..."
"uploading_document": "Subiendo documento...",
"agent_running_warning": "Los cambios aparecerán en el curso una vez que el agente haya terminado. No recargues la página."
},
"widgets": {
"heading": "widgets",
+186 -12
View File
@@ -391,6 +391,14 @@
"post_created": "Message créé avec succès",
"post_updated": "Message mis à jour avec succès"
}
},
"ai_credits": {
"purchase_success": "Pack de jetons ajouté à votre solde.",
"checkout_failed": "Impossible de démarrer le paiement. Veuillez réessayer."
},
"public_course": {
"url_copied": "URL du cours copiée",
"url_copy_failed": "Impossible de copier l’URL"
}
},
"explore": {
@@ -656,7 +664,30 @@
"popover_title": "Sélectionnez les balises",
"empty_groups": "Aucun tag disponible pour l'instant"
},
"compliance": "Conformité"
"compliance": "Conformité",
"public": "Publique",
"convert_to_public_blocked": "Ce cours comporte des questions qui ne peuvent pas être notées automatiquement et ne peut donc pas encore être rendu public.",
"fix_blocking_questions": "Corriger les questions bloquantes",
"slug": {
"label": "Limace d'URL",
"description": "Le dernier segment de l’URL publique de cet élément. Uniquement des lettres, des chiffres et des tirets.",
"public_only": "Les Slugs ne sont modifiables que sur les cours publics.",
"in_use": "Ce slug est déjà utilisé par un autre élément de ce cours."
},
"callout": {
"legend": "Appel du cours public",
"description": "Affiché au bas de chaque leçon et à la place des éléments verrouillés. Utilisez-le pour diriger les apprenants vers votre site ou vers un cours payant.",
"title_label": "Titre",
"title_placeholder": "Vous voulez approfondir ce sujet ?",
"description_label": "Descriptif",
"description_placeholder": "Rejoignez la cohorte complète pour expédier un projet de qualité production en 4 semaines.",
"button_label": "Etiquette du bouton",
"button_label_placeholder": "En savoir plus sur mon site",
"button_url_label": "URL du bouton",
"button_url_placeholder": "https://exemple.com",
"clear": "Effacer la légende",
"public_only": "Les légendes n'apparaissent que dans les cours publics."
}
},
"analytics": {
"title": "Analyse"
@@ -1167,7 +1198,10 @@
"attempt_counter": "Tentative {actuelle} de {total}",
"previous_try": "Tentative précédente",
"next_try": "Prochaine tentative",
"try_again": "Réessayez"
"try_again": "Réessayez",
"back": "Retour",
"begin_section": "Section de démarrage",
"complete_section": "Rubrique complète"
},
"edit_mode": {
"delete_modal": "Supprimer l'exercice",
@@ -1193,7 +1227,8 @@
"hotspot": "Point d'accès",
"link": "Liens",
"word_bank": "Banque de mots",
"star": "Nombre d'étoiles"
"star": "Nombre d'étoiles",
"video_recording": "Enregistrement vidéo"
},
"select_type": "Sélectionnez le type",
"question_type_auto_gradable": "Auto",
@@ -1204,7 +1239,9 @@
"title": "Supprimer la question",
"sure": "Êtes-vous sûr de vouloir supprimer cette question",
"no": "Non, s'il te plaît, ne le fais pas",
"yes": "Oui, supprimer"
"yes": "Oui, supprimer",
"section_title": "Supprimer la rubrique",
"section_sure": "Cette rubrique sera supprimée. Ses questions seront déplacées vers la section la plus proche."
},
"description": {
"title": "Titre",
@@ -1464,12 +1501,76 @@
"correct_value_placeholder": "par ex. 3",
"max_stars_placeholder": "par ex. 5"
}
},
"video_recording": {
"submission": {
"no_video": "Aucune vidéo soumise.",
"unavailable": "Vidéo indisponible.",
"duration": "Durée",
"file_size": "Taille du fichier",
"recorded_at": "Enregistré",
"uploaded_at": "Téléchargé",
"retake_count": "Reprises"
},
"preview": {
"max_duration_label": "Durée maximale",
"manual_grading": "Les apprenants enregistrent une courte réponse vidéo. Classement manuel requis."
},
"take": {
"unsupported": "L'enregistrement vidéo n'est pas pris en charge dans ce navigateur.",
"permission_prompt": "Autorisez l’accès à la caméra et au microphone pour enregistrer votre réponse.",
"permission_denied": "L'accès à la caméra ou au microphone a été bloqué. Vérifiez les autorisations du navigateur.",
"start_camera": "Configurer la caméra",
"camera_label": "Appareil photo",
"camera_placeholder": "Sélectionnez la caméra",
"play_preview": "Lire l'aperçu de l'enregistrement",
"pause_preview": "Suspendre l'aperçu de l'enregistrement",
"start_recording": "Commencer l'enregistrement",
"stop_recording": "Arrêter l'enregistrement",
"elapsed": "Écoulé",
"remaining": "Restant",
"max_duration": "Max.",
"too_short": "Enregistrez pendant au moins 1 seconde.",
"use_recording": "Utiliser l'enregistrement",
"retake": "Reprendre",
"delete": "Supprimer l'enregistrement",
"retry_upload": "Réessayez de télécharger",
"uploading": "Téléchargement de l'enregistrement...",
"uploaded": "Enregistrement téléchargé",
"upload_failed": "Le téléchargement a échoué. Essayer à nouveau.",
"replaces_previous": "Une nouvelle prise acceptée remplace la réponse précédente après le téléchargement."
},
"edit": {
"max_duration_label": "Durée maximale",
"max_duration_helper": "Les étudiants enregistrent dans le navigateur et peuvent reprendre avant de soumettre. Le maximum est de 2 minutes.",
"max_duration_placeholder": "60",
"manual_grading": "Nécessite une notation manuelle"
}
}
},
"settings": "Paramètres",
"settings_allow_multiple": "Autoriser plusieurs tentatives",
"settings_allow_multiple_helper": "Les étudiants peuvent soumettre plus d'une fois et revoir leurs tentatives antérieures sur l'écran des résultats.",
"settings_save": "Enregistrer les paramètres"
"settings_save": "Enregistrer les paramètres",
"add": "Ajouter",
"add_section": "Ajouter une rubrique",
"reorder_done": "Réorganisation terminée",
"section": {
"fallback_title": "Section",
"questions": "des questions",
"short_questions": "q",
"required": "requis",
"add_question": "Ajouter une question",
"delete": "Supprimer la rubrique",
"move_up": "Déplacer la section vers le haut",
"move_down": "Déplacer la section vers le bas",
"color": "Couleur des sections",
"description_placeholder": "Décrivez cette rubrique",
"after_section": "Après la section",
"continue": "Passer à la section suivante",
"go_to_section": "Aller à la rubrique",
"submit": "Soumettre l'exercice"
}
},
"new_exercise_modal": {
"heading": "Nouvel exercice",
@@ -1657,7 +1758,12 @@
"content_locked_description": "Votre instructeur n'a pas encore débloqué ce contenu. Complétez le contenu précédent ou revenez plus tard.",
"saving": "Sauvegarde…",
"saved": "Enregistré",
"draft_recovery": "Un brouillon non enregistré a été trouvé pour cette leçon. Souhaitez-vous le restaurer ?"
"draft_recovery": "Un brouillon non enregistré a été trouvé pour cette leçon. Souhaitez-vous le restaurer ?",
"stats": {
"sections": "Sections",
"lessons": "Leçons",
"exercises": "Exercices"
}
},
"news_feed": {
"heading": "Fil d'actualité",
@@ -1782,7 +1888,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "Visible sur votre site public de cours"
},
"sidebar": {
"back_to_course": "Retour au cours",
@@ -1841,6 +1948,26 @@
"blocker_final_misconfigured": "L'exercice de certification « {exerciseTitle} » n'a aucun point configuré ; demandez à votre instructeur de le réparer.",
"email_message_label": "Message électronique",
"email_message_placeholder": "par ex. Nous sommes fiers de vos progrès – continuez à apprendre !"
},
"creator": {
"heading": "Quel cours souhaitez-vous créer ?",
"placeholder": "Demandez à ClassroomIO de créer un cours pour vous...",
"type": {
"self_paced": "À votre rythme",
"live_class": "Cours en direct"
},
"level": {
"beginner": "Débutant",
"intermediate": "Intermédiaire",
"advanced": "Avancé"
},
"drafting": {
"heading": "Rédiger votre idée de cours",
"subtext": "Nous transformons votre invite en titre de cours et en espace de travail.",
"step_reading": "Lire votre invite",
"step_naming": "Nommer votre cours",
"step_building": "Création de votre espace de travail"
}
}
},
"courses": {
@@ -1881,6 +2008,8 @@
"unpublished": "Inédit",
"continue_course": "Continuer",
"learn_more": "En savoir plus",
"public_badge": "Public",
"actions_menu_aria": "Actions du cours",
"tags_overflow_aria": "{count} autres tags",
"list_view": {
"title": "Titre",
@@ -1897,7 +2026,8 @@
"invite": "Inviter",
"delete": "Supprimer",
"open": "Ouvert",
"open_course_site": "Site de cours ouvert"
"open_public_course": "Ouvrir le cours public",
"copy_course_url": "Copier l’URL du cours"
},
"due_date": "Due",
"valid_until": "Valable jusqu'au"
@@ -2599,7 +2729,8 @@
"token_auth_tab": "Authentification du jeton",
"customize_lms_tab": "Personnaliser le LMS",
"domains_tab": "Domaines",
"teams_tab": "Équipes"
"teams_tab": "Équipes",
"ai_credits_tab": "Crédits IA"
},
"subheadings": {
"view_site": "Voir le site"
@@ -2730,6 +2861,45 @@
},
"teams": {
"page_subtitle": "Invite teammates and control who helps run this organization."
},
"ai_credits": {
"sub_title": "Crédits IA",
"page_subtitle": "Suivez l’utilisation de l’assistant IA, la consommation de l’équipe et achetez des packs de jetons.",
"cost_note": "L'utilisation du crédit est pondérée par le coût du modèle. Gemini 2.5 Flash et GPT-5.4 Mini comptent pour 1 unité de crédit par jeton. Claude Sonnet 4.6 compte pour 36 × par jeton, reflétant son coût API plus élevé.",
"buy_tokens": {
"title": "Achetez plus de jetons",
"description": "Chaque pack ajoute 5 000 000 de crédits pour 5 $ USD. Choisissez le nombre de packs dont vous avez besoin.",
"quantity_hint": "paquets",
"preview": "{quantité} pack(s) · {tokens} jetons · ${dollars}",
"buy_button": "Achetez pour ${dollars}"
},
"leaderboard": {
"title": "Utilisation de l'équipe",
"this_month": "Mois en cours",
"user": "Utilisateur",
"favorite_model": "Modèle préféré",
"tokens": "Jetons",
"empty": "Personne dans votre équipe n'a utilisé l'assistant IA ce mois-ci."
},
"chart": {
"heading": "Utilisation",
"subheading": "Consommation quotidienne de jetons ce mois-ci.",
"tokens": "Jetons",
"total_tokens": "Total des jetons",
"total_requests": "Total des demandes",
"empty": "Aucune utilisation enregistrée ce mois-ci pour l'instant."
},
"purchased": {
"title": "Utilisation achetée",
"subtitle": "Les jetons supplémentaires que vous avez achetés sont reportés jusqu'à ce qu'ils soient utilisés.",
"lifetime": "{tokens} jetons achetés · ${dollars} dépensés",
"buy_more": "Achetez plus"
},
"included": {
"title": "Votre utilisation incluse",
"subtitle": "Jetons mensuels inclus avec votre forfait.",
"resets_on": "Réinitialise {date}"
}
}
},
"profileMenu": {
@@ -2839,7 +3009,9 @@
"self_paced_label": "À votre rythme",
"self_paced_subtitle": "Idéal pour les cours où les étudiants peuvent suivre des cours à leur propre rythme",
"compliance_label": "Conformité",
"compliance_subtitle": "Formation récurrente avec reprises, rappels et suivi de renouvellement"
"compliance_subtitle": "Formation récurrente avec reprises, rappels et suivi de renouvellement",
"public_label": "Publique",
"public_subtitle": "Pages de cours gratuites et sans inscription que vous pouvez partager publiquement – idéales pour la génération de leads"
},
"delete_modal": {
"label": "Supprimer",
@@ -3224,7 +3396,8 @@
"input_placeholder": "Demandez à l'assistant IA...",
"attach_document": "Joindre un document (PDF, DOCX, PPTX)",
"upgrade_to_upload": "Mise à niveau pour télécharger des documents",
"tokens_exhausted": "Limite mensuelle de jetons IA atteinte. Achetez plus de crédits dans Paramètres > Facturation ou attendez la réinitialisation.",
"tokens_exhausted": "Limite mensuelle de jetons IA atteinte.",
"tokens_exhausted_buy_more": "Acheter plus",
"chat_history": "Historique des discussions",
"no_conversations": "Aucune conversation pour l'instant",
"untitled": "Sans titre",
@@ -3237,7 +3410,8 @@
"mention_exercise": "Exercice",
"mention_section": "Section",
"mention_no_results": "Aucun contenu correspondant",
"uploading_document": "Téléchargement du document..."
"uploading_document": "Téléchargement du document...",
"agent_running_warning": "Les modifications apparaîtront dans le cours une fois que l'agent aura terminé. Ne rechargez pas la page."
},
"widgets": {
"heading": "Widgets",
+186 -12
View File
@@ -391,6 +391,14 @@
"post_created": "पोस्ट सफलतापूर्वक बनाई गई",
"post_updated": "पोस्ट सफलतापूर्वक अपडेट की गई"
}
},
"ai_credits": {
"purchase_success": "टोकन पैक आपके बैलेंस में जोड़ा गया।",
"checkout_failed": "चेकआउट प्रारंभ नहीं किया जा सका. कृपया पुन: प्रयास करें।"
},
"public_course": {
"url_copied": "कोर्स URL कॉपी हो गया",
"url_copy_failed": "URL कॉपी नहीं किया जा सका"
}
},
"explore": {
@@ -656,7 +664,30 @@
"popover_title": "टैग चुनें",
"empty_groups": "अभी तक कोई टैग उपलब्ध नहीं है"
},
"compliance": "अनुपालन"
"compliance": "अनुपालन",
"public": "सार्वजनिक",
"convert_to_public_blocked": "इस पाठ्यक्रम में ऐसे प्रश्न हैं जिन्हें स्वचालित रूप से वर्गीकृत नहीं किया जा सकता है, इसलिए इसे अभी तक सार्वजनिक नहीं किया जा सकता है।",
"fix_blocking_questions": "अवरुद्ध करने वाले प्रश्नों को ठीक करें",
"slug": {
"label": "यूआरएल स्लग",
"description": "इस आइटम के सार्वजनिक URL का अंतिम खंड. केवल अक्षर, संख्याएँ और डैश।",
"public_only": "स्लग केवल सार्वजनिक पाठ्यक्रमों पर संपादन योग्य हैं।",
"in_use": "वह स्लग इस पाठ्यक्रम में पहले से ही किसी अन्य आइटम द्वारा उपयोग किया जा चुका है।"
},
"callout": {
"legend": "सार्वजनिक पाठ्यक्रम कॉलआउट",
"description": "प्रत्येक पाठ के नीचे और लॉक की गई वस्तुओं के स्थान पर दिखाया गया है। इसका उपयोग शिक्षार्थियों को अपनी साइट या सशुल्क पाठ्यक्रम तक ले जाने के लिए करें।",
"title_label": "शीर्षक",
"title_placeholder": "क्या आप इस पर गहराई से जाना चाहते हैं?",
"description_label": "विवरण",
"description_placeholder": "4 सप्ताह में प्रोडक्शन-ग्रेड प्रोजेक्ट शिप करने के लिए पूरे समूह में शामिल हों।",
"button_label": "बटन लेबल",
"button_label_placeholder": "मेरी साइट पर और पढ़ें",
"button_url_label": "बटन यूआरएल",
"button_url_placeholder": "https://example.com",
"clear": "कॉलआउट साफ़ करें",
"public_only": "कॉलआउट केवल सार्वजनिक पाठ्यक्रमों पर दिखाई देते हैं।"
}
},
"analytics": {
"title": "विश्लेषिकी"
@@ -1167,7 +1198,10 @@
"attempt_counter": "{कुल} का {वर्तमान} प्रयास करें",
"previous_try": "पिछला प्रयास",
"next_try": "अगला प्रयास",
"try_again": "पुनः प्रयास करें"
"try_again": "पुनः प्रयास करें",
"back": "वापस",
"begin_section": "प्रारंभ अनुभाग",
"complete_section": "पूरा अनुभाग"
},
"edit_mode": {
"delete_modal": "व्यायाम हटाएँ",
@@ -1193,7 +1227,8 @@
"hotspot": "हॉटस्पॉट",
"link": "कड़ियाँ",
"word_bank": "वर्ड बैंक",
"star": "स्टार रेटिंग"
"star": "स्टार रेटिंग",
"video_recording": "वीडियो रिकार्डिंग"
},
"select_type": "प्रकार चुनें",
"question_type_auto_gradable": "Auto",
@@ -1204,7 +1239,9 @@
"title": "प्रश्न हटाएँ",
"sure": "क्या आप वाकई इस प्रश्न को हटाना चाहते हैं?",
"no": "नहीं, कृपया ऐसा न करें",
"yes": "हाँ, हटाएँ"
"yes": "हाँ, हटाएँ",
"section_title": "अनुभाग हटाएँ",
"section_sure": "यह अनुभाग हटा दिया जाएगा. इसके प्रश्नों को निकटतम अनुभाग में ले जाया जाएगा।"
},
"description": {
"title": "शीर्षक",
@@ -1464,12 +1501,76 @@
"correct_value_placeholder": "जैसे 3",
"max_stars_placeholder": "जैसे 5"
}
},
"video_recording": {
"submission": {
"no_video": "कोई वीडियो सबमिट नहीं किया गया.",
"unavailable": "वीडियो अनुपलब्ध.",
"duration": "अवधि",
"file_size": "फ़ाइल का आकार",
"recorded_at": "रिकार्ड किया गया",
"uploaded_at": "अपलोड किया गया",
"retake_count": "रीटेक"
},
"preview": {
"max_duration_label": "अधिकतम अवधि",
"manual_grading": "शिक्षार्थी एक लघु वीडियो प्रतिक्रिया रिकॉर्ड करते हैं। मैन्युअल ग्रेडिंग आवश्यक है."
},
"take": {
"unsupported": "इस ब्राउज़र में वीडियो रिकॉर्डिंग समर्थित नहीं है.",
"permission_prompt": "अपना उत्तर रिकॉर्ड करने के लिए कैमरे और माइक्रोफ़ोन तक पहुंच की अनुमति दें।",
"permission_denied": "कैमरा या माइक्रोफ़ोन पहुंच अवरुद्ध कर दी गई थी. ब्राउज़र अनुमतियाँ जांचें.",
"start_camera": "कैमरा सेट करें",
"camera_label": "कैमरा",
"camera_placeholder": "कैमरा चुनें",
"play_preview": "रिकॉर्डिंग पूर्वावलोकन चलाएं",
"pause_preview": "रिकॉर्डिंग पूर्वावलोकन रोकें",
"start_recording": "रिकॉर्डिंग प्रारंभ करें",
"stop_recording": "रिकॉर्डिंग बंद करो",
"elapsed": "बीत गया",
"remaining": "शेष",
"max_duration": "अधिकतम",
"too_short": "कम से कम 1 सेकंड के लिए रिकॉर्ड करें.",
"use_recording": "रिकॉर्डिंग का प्रयोग करें",
"retake": "पुनः लेना",
"delete": "रिकॉर्डिंग हटाएँ",
"retry_upload": "पुनः अपलोड करने का प्रयास करें",
"uploading": "रिकॉर्डिंग अपलोड हो रही है...",
"uploaded": "रिकॉर्डिंग अपलोड की गई",
"upload_failed": "अपलोड विफल रहा. पुनः प्रयास करें।",
"replaces_previous": "अपलोड के बाद एक नया स्वीकृत टेक पिछले उत्तर को प्रतिस्थापित कर देता है।"
},
"edit": {
"max_duration_label": "अधिकतम अवधि",
"max_duration_helper": "छात्र ब्राउज़र में रिकॉर्ड करते हैं और सबमिट करने से पहले दोबारा ले सकते हैं। अधिकतम 2 मिनट है.",
"max_duration_placeholder": "60",
"manual_grading": "मैन्युअल ग्रेडिंग की आवश्यकता है"
}
}
},
"settings": "सेटिंग्स",
"settings_allow_multiple": "एकाधिक प्रयासों की अनुमति दें",
"settings_allow_multiple_helper": "छात्र एक से अधिक बार सबमिट कर सकते हैं और परिणाम स्क्रीन पर पिछले प्रयासों की समीक्षा कर सकते हैं।",
"settings_save": "सेटिंग्स सहेजें"
"settings_save": "सेटिंग्स सहेजें",
"add": "जोड़ें",
"add_section": "अनुभाग जोड़ें",
"reorder_done": "पुनः क्रमित करना पूरा हुआ",
"section": {
"fallback_title": "धारा",
"questions": "प्रश्न",
"short_questions": "प्र",
"required": "आवश्यक",
"add_question": "प्रश्न जोड़ें",
"delete": "अनुभाग हटाएँ",
"move_up": "अनुभाग को ऊपर ले जाएँ",
"move_down": "अनुभाग को नीचे ले जाएँ",
"color": "अनुभाग का रंग",
"description_placeholder": "इस अनुभाग का वर्णन करें",
"after_section": "अनुभाग के बाद",
"continue": "अगले भाग पर जारी रखें",
"go_to_section": "अनुभाग पर जाएँ",
"submit": "व्यायाम सबमिट करें"
}
},
"new_exercise_modal": {
"heading": "नया व्यायाम",
@@ -1657,7 +1758,12 @@
"content_locked_description": "आपके प्रशिक्षक ने अभी तक इस सामग्री को अनलॉक नहीं किया है। पिछली सामग्री पूरी करें या बाद में दोबारा जाँचें।",
"saving": "सहेजा जा रहा है...",
"saved": "सहेजा गया",
"draft_recovery": "इस पाठ के लिए एक सहेजा न गया ड्राफ्ट मिला। क्या आप इसे पुनर्स्थापित करना चाहेंगे?"
"draft_recovery": "इस पाठ के लिए एक सहेजा न गया ड्राफ्ट मिला। क्या आप इसे पुनर्स्थापित करना चाहेंगे?",
"stats": {
"sections": "अनुभाग",
"lessons": "सबक",
"exercises": "व्यायाम"
}
},
"news_feed": {
"heading": "समाचार फ़ीड",
@@ -1782,7 +1888,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "आपकी सार्वजनिक कोर्स साइट पर दृश्यमान"
},
"sidebar": {
"back_to_course": "पाठ्यक्रम पर वापस जाएँ",
@@ -1841,6 +1948,26 @@
"blocker_final_misconfigured": "प्रमाणन अभ्यास \"{exerciseTitle}\" में कोई बिंदु कॉन्फ़िगर नहीं किया गया है; अपने प्रशिक्षक से इसे ठीक करने के लिए कहें।",
"email_message_label": "ईमेल संदेश",
"email_message_placeholder": "जैसे हमें आपकी प्रगति पर गर्व है - सीखते रहें!"
},
"creator": {
"heading": "आप कौन सा कोर्स बनाना चाहते हैं?",
"placeholder": "ClassroomIO से आपके लिए एक पाठ्यक्रम बनाने के लिए कहें...",
"type": {
"self_paced": "स्वयं गति",
"live_class": "लाइव क्लास"
},
"level": {
"beginner": "शुरुआती",
"intermediate": "इंटरमीडिएट",
"advanced": "उन्नत"
},
"drafting": {
"heading": "अपने पाठ्यक्रम का विचार तैयार करना",
"subtext": "हम आपके संकेत को पाठ्यक्रम शीर्षक और कार्यक्षेत्र में बदल रहे हैं।",
"step_reading": "आपका संकेत पढ़ रहा हूँ",
"step_naming": "अपने पाठ्यक्रम का नामकरण",
"step_building": "अपना कार्यक्षेत्र बनाना"
}
}
},
"courses": {
@@ -1881,6 +2008,8 @@
"unpublished": "अप्रकाशित",
"continue_course": "जारी रखें",
"learn_more": "और जानें",
"public_badge": "सार्वजनिक",
"actions_menu_aria": "कोर्स क्रियाएँ",
"tags_overflow_aria": "{count} और टैग",
"list_view": {
"title": "शीर्षक",
@@ -1897,7 +2026,8 @@
"invite": "आमंत्रित करें",
"delete": "हटाएँ",
"open": "खुला",
"open_course_site": "पाठ्यक्रम साइट खोलें"
"open_public_course": "सार्वजनिक कोर्स खोलें",
"copy_course_url": "कोर्स URL कॉपी करें"
},
"due_date": "देय",
"valid_until": "तक वैध है"
@@ -2599,7 +2729,8 @@
"token_auth_tab": "टोकन प्रामाणिक",
"customize_lms_tab": "एलएमएस को अनुकूलित करें",
"domains_tab": "डोमेन",
"teams_tab": "टीमें"
"teams_tab": "टीमें",
"ai_credits_tab": "एआई क्रेडिट"
},
"subheadings": {
"view_site": "साइट देखें"
@@ -2730,6 +2861,45 @@
},
"teams": {
"page_subtitle": "Invite teammates and control who helps run this organization."
},
"ai_credits": {
"sub_title": "एआई क्रेडिट",
"page_subtitle": "एआई सहायक उपयोग, टीम की खपत और टोकन पैक की खरीद को ट्रैक करें।",
"cost_note": "क्रेडिट उपयोग को मॉडल लागत के आधार पर भारित किया जाता है। जेमिनी 2.5 फ्लैश और जीपीटी-5.4 मिनी की गणना प्रति टोकन 1 क्रेडिट यूनिट के रूप में की जाती है। क्लाउड सॉनेट 4.6 की गणना 36× प्रति टोकन के रूप में की जाती है, जो इसकी उच्च एपीआई लागत को दर्शाता है।",
"buy_tokens": {
"title": "अधिक टोकन खरीदें",
"description": "प्रत्येक पैक $5 USD के लिए 5,000,000 क्रेडिट जोड़ता है। चुनें कि आपको कितने पैक चाहिए.",
"quantity_hint": "पैक",
"preview": "{मात्रा} पैक · {टोकन} टोकन · ${डॉलर}",
"buy_button": "${डॉलर} में खरीदें"
},
"leaderboard": {
"title": "टीम का उपयोग",
"this_month": "चालू माह",
"user": "उपयोगकर्ता",
"favorite_model": "पसंदीदा मॉडल",
"tokens": "टोकन",
"empty": "इस महीने आपकी टीम में किसी ने भी एआई असिस्टेंट का उपयोग नहीं किया है।"
},
"chart": {
"heading": "उपयोग",
"subheading": "इस महीने दैनिक टोकन खपत।",
"tokens": "टोकन",
"total_tokens": "कुल टोकन",
"total_requests": "कुल अनुरोध",
"empty": "इस महीने अभी तक कोई उपयोग दर्ज नहीं किया गया है।"
},
"purchased": {
"title": "खरीदा गया उपयोग",
"subtitle": "आपके द्वारा खरीदे गए अतिरिक्त टोकन उपयोग होने तक रोल ओवर रहेंगे।",
"lifetime": "{टोकन} टोकन खरीदे गए · ${डॉलर} खर्च किए गए",
"buy_more": "और अधिक खरीदें"
},
"included": {
"title": "आपका सम्मिलित उपयोग",
"subtitle": "आपकी योजना में मासिक टोकन शामिल हैं।",
"resets_on": "{दिनांक} रीसेट करता है"
}
}
},
"profileMenu": {
@@ -2839,7 +3009,9 @@
"self_paced_label": "स्वयं गति",
"self_paced_subtitle": "उन पाठ्यक्रमों के लिए सर्वोत्तम जहां छात्र अपनी गति से पाठ ले सकते हैं",
"compliance_label": "अनुपालन",
"compliance_subtitle": "रीटेक, रिमाइंडर और नवीनीकरण ट्रैकिंग के साथ आवर्ती प्रशिक्षण"
"compliance_subtitle": "रीटेक, रिमाइंडर और नवीनीकरण ट्रैकिंग के साथ आवर्ती प्रशिक्षण",
"public_label": "सार्वजनिक",
"public_subtitle": "नि:शुल्क, बिना-साइनअप पाठ्यक्रम पृष्ठ जिन्हें आप सार्वजनिक रूप से साझा कर सकते हैं - लीड जनरल के लिए बढ़िया"
},
"delete_modal": {
"label": "हटाएँ",
@@ -3224,7 +3396,8 @@
"input_placeholder": "एआई सहायक से पूछें...",
"attach_document": "एक दस्तावेज़ संलग्न करें (पीडीएफ, DOCX, PPTX)",
"upgrade_to_upload": "दस्तावेज़ अपलोड करने के लिए अपग्रेड करें",
"tokens_exhausted": "मासिक एआई टोकन सीमा पूरी हो गई। सेटिंग्स > बिलिंग में अधिक क्रेडिट खरीदें या रीसेट की प्रतीक्षा करें।",
"tokens_exhausted": "मासिक एआई टोकन सीमा पूरी हो गई।",
"tokens_exhausted_buy_more": "और खरीदें",
"chat_history": "चैट इतिहास",
"no_conversations": "अभी तक कोई बातचीत नहीं",
"untitled": "शीर्षकहीन",
@@ -3237,7 +3410,8 @@
"mention_exercise": "व्यायाम",
"mention_section": "धारा",
"mention_no_results": "कोई मेल खाती सामग्री नहीं",
"uploading_document": "दस्तावेज़ अपलोड हो रहा है..."
"uploading_document": "दस्तावेज़ अपलोड हो रहा है...",
"agent_running_warning": "एजेंट का कार्य पूरा होते ही पाठ्यक्रम में परिवर्तन दिखाई देंगे। पृष्ठ पुनः लोड न करें."
},
"widgets": {
"heading": "विजेट्स",
+186 -12
View File
@@ -391,6 +391,14 @@
"post_created": "Post został utworzony pomyślnie",
"post_updated": "Post został pomyślnie zaktualizowany"
}
},
"ai_credits": {
"purchase_success": "Pakiet tokenów dodany do Twojego salda.",
"checkout_failed": "Nie można rozpocząć realizacji transakcji. Spróbuj ponownie."
},
"public_course": {
"url_copied": "Skopiowano adres URL kursu",
"url_copy_failed": "Nie można skopiować adresu URL"
}
},
"explore": {
@@ -656,7 +664,30 @@
"popover_title": "Wybierz tagi",
"empty_groups": "Brak dostępnych tagów"
},
"compliance": "Zgodność"
"compliance": "Zgodność",
"public": "Publiczne",
"convert_to_public_blocked": "Ten kurs zawiera pytania, których nie można oceniać automatycznie, dlatego nie można go jeszcze udostępnić publicznie.",
"fix_blocking_questions": "Napraw blokujące pytania",
"slug": {
"label": "Błąd adresu URL",
"description": "Ostatni segment publicznego adresu URL tego elementu. Tylko litery, cyfry i myślniki.",
"public_only": "Ślimaki można edytować wyłącznie na kursach publicznych.",
"in_use": "Ten ślimak jest już używany przez inny przedmiot w tym kursie."
},
"callout": {
"legend": "Objaśnienie dotyczące kursu publicznego",
"description": "Wyświetlane na dole każdej lekcji oraz w miejscu zablokowanych elementów. Użyj go, aby przyciągnąć uczniów do swojej witryny lub płatnego kursu.",
"title_label": "Tytuł",
"title_placeholder": "Chcesz zgłębić ten temat?",
"description_label": "Opis",
"description_placeholder": "Dołącz do pełnej kohorty, aby wysłać projekt na poziomie produkcyjnym w ciągu 4 tygodni.",
"button_label": "Etykieta przycisku",
"button_label_placeholder": "Przeczytaj więcej na mojej stronie",
"button_url_label": "Adres URL przycisku",
"button_url_placeholder": "https://przyklad.com",
"clear": "Wyczyść objaśnienie",
"public_only": "Objaśnienia pojawiają się tylko na kursach publicznych."
}
},
"analytics": {
"title": "Analityka"
@@ -1167,7 +1198,10 @@
"attempt_counter": "Próba {bieżąca} z {total}",
"previous_try": "Poprzednia próba",
"next_try": "Następna próba",
"try_again": "Spróbuj ponownie"
"try_again": "Spróbuj ponownie",
"back": "Powrót",
"begin_section": "Sekcja startowa",
"complete_section": "Kompletna sekcja"
},
"edit_mode": {
"delete_modal": "Usuń ćwiczenie",
@@ -1193,7 +1227,8 @@
"hotspot": "Hotspot",
"link": "Linki",
"word_bank": "Bank słów",
"star": "Ocena gwiazdkowa"
"star": "Ocena gwiazdkowa",
"video_recording": "Nagrywanie wideo"
},
"select_type": "Wybierz typ",
"question_type_auto_gradable": "Auto",
@@ -1204,7 +1239,9 @@
"title": "Usuń pytanie",
"sure": "Czy na pewno chcesz usunąć to pytanie?",
"no": "Nie, proszę nie",
"yes": "Tak, usuń"
"yes": "Tak, usuń",
"section_title": "Usuń sekcję",
"section_sure": "Ta sekcja zostanie usunięta. Jej pytania zostaną przeniesione do najbliższego działu."
},
"description": {
"title": "Tytuł",
@@ -1464,12 +1501,76 @@
"correct_value_placeholder": "np. 3",
"max_stars_placeholder": "np. 5"
}
},
"video_recording": {
"submission": {
"no_video": "Nie przesłano żadnego filmu.",
"unavailable": "Film niedostępny.",
"duration": "Czas trwania",
"file_size": "Rozmiar pliku",
"recorded_at": "Nagrano",
"uploaded_at": "Przesłano",
"retake_count": "Powtarza"
},
"preview": {
"max_duration_label": "Maksymalny czas trwania",
"manual_grading": "Uczniowie nagrywają krótką odpowiedź wideo. Wymagane ręczne sortowanie."
},
"take": {
"unsupported": "Ta przeglądarka nie obsługuje nagrywania wideo.",
"permission_prompt": "Zezwól na dostęp do kamery i mikrofonu w celu nagrania odpowiedzi.",
"permission_denied": "Dostęp do kamery lub mikrofonu został zablokowany. Sprawdź uprawnienia przeglądarki.",
"start_camera": "Skonfiguruj kamerę",
"camera_label": "Kamera",
"camera_placeholder": "Wybierz kamerę",
"play_preview": "Odtwórz podgląd nagrania",
"pause_preview": "Wstrzymaj podgląd nagrywania",
"start_recording": "Rozpocznij nagrywanie",
"stop_recording": "Zatrzymaj nagrywanie",
"elapsed": "Upłynął",
"remaining": "Pozostało",
"max_duration": "Maks",
"too_short": "Nagrywaj przez co najmniej 1 sekundę.",
"use_recording": "Skorzystaj z nagrania",
"retake": "Powtórz",
"delete": "Usuń nagranie",
"retry_upload": "Spróbuj przesłać ponownie",
"uploading": "Przesyłanie nagrania...",
"uploaded": "Nagranie przesłane",
"upload_failed": "Przesyłanie nie powiodło się. Spróbuj ponownie.",
"replaces_previous": "Nowe zaakceptowane ujęcie zastępuje poprzednią odpowiedź po przesłaniu."
},
"edit": {
"max_duration_label": "Maksymalny czas trwania",
"max_duration_helper": "Uczniowie nagrywają w przeglądarce i mogą powtórzyć przed przesłaniem. Maksymalnie 2 minuty.",
"max_duration_placeholder": "60",
"manual_grading": "Wymaga ręcznego oceniania"
}
}
},
"settings": "Ustawienia",
"settings_allow_multiple": "Zezwalaj na wiele prób",
"settings_allow_multiple_helper": "Uczniowie mogą przesłać więcej niż raz i przejrzeć wcześniejsze próby na ekranie wyników.",
"settings_save": "Zapisz ustawienia"
"settings_save": "Zapisz ustawienia",
"add": "Dodaj",
"add_section": "Dodaj sekcję",
"reorder_done": "Zakończono zmianę kolejności",
"section": {
"fallback_title": "Sekcja",
"questions": "pytania",
"short_questions": "q",
"required": "wymagane",
"add_question": "Dodaj pytanie",
"delete": "Usuń sekcję",
"move_up": "Przesuń sekcję w górę",
"move_down": "Przesuń sekcję w dół",
"color": "Kolor sekcji",
"description_placeholder": "Opisz tę sekcję",
"after_section": "Po sekcji",
"continue": "Przejdź do następnej sekcji",
"go_to_section": "Przejdź do sekcji",
"submit": "Prześlij ćwiczenie"
}
},
"new_exercise_modal": {
"heading": "Nowe ćwiczenie",
@@ -1657,7 +1758,12 @@
"content_locked_description": "Twój instruktor nie odblokował jeszcze tej zawartości. Uzupełnij poprzednią zawartość lub sprawdź później.",
"saving": "Zapisuję…",
"saved": "Zapisano",
"draft_recovery": "Znaleziono niezapisaną wersję roboczą tej lekcji. Czy chcesz go przywrócić?"
"draft_recovery": "Znaleziono niezapisaną wersję roboczą tej lekcji. Czy chcesz go przywrócić?",
"stats": {
"sections": "Sekcje",
"lessons": "Lekcje",
"exercises": "Ćwiczenia"
}
},
"news_feed": {
"heading": "Kanał wiadomości",
@@ -1782,7 +1888,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "Widoczny na publicznej stronie kursu"
},
"sidebar": {
"back_to_course": "Powrót na kurs",
@@ -1841,6 +1948,26 @@
"blocker_final_misconfigured": "W ćwiczeniu certyfikacyjnym „{exerciseTitle}” nie skonfigurowano żadnych punktów; poproś instruktora, żeby to naprawił.",
"email_message_label": "Wiadomość e-mail",
"email_message_placeholder": "np. Jesteśmy dumni z Twoich postępów — ucz się dalej!"
},
"creator": {
"heading": "Jaki kurs chcesz stworzyć?",
"placeholder": "Poproś ClassroomIO o utworzenie kursu dla Ciebie...",
"type": {
"self_paced": "Samodzielne tempo",
"live_class": "Zajęcia na żywo"
},
"level": {
"beginner": "Początkujący",
"intermediate": "Średnio zaawansowany",
"advanced": "Zaawansowane"
},
"drafting": {
"heading": "Opracowanie pomysłu na kurs",
"subtext": "Zamieniamy Twój monit w tytuł kursu i obszar roboczy.",
"step_reading": "Czytanie Twojego monitu",
"step_naming": "Nazywanie kursu",
"step_building": "Tworzenie przestrzeni roboczej"
}
}
},
"courses": {
@@ -1881,6 +2008,8 @@
"unpublished": "Niepublikowane",
"continue_course": "Kontynuuj",
"learn_more": "Dowiedz się więcej",
"public_badge": "Publiczny",
"actions_menu_aria": "Akcje kursu",
"tags_overflow_aria": "Jeszcze {count} tagów",
"list_view": {
"title": "Tytuł",
@@ -1897,7 +2026,8 @@
"invite": "Zaproś",
"delete": "Usuń",
"open": "Otwórz",
"open_course_site": "Otwarta strona kursu"
"open_public_course": "Otwórz publiczny kurs",
"copy_course_url": "Kopiuj adres URL kursu"
},
"due_date": "Termin",
"valid_until": "Ważne do"
@@ -2599,7 +2729,8 @@
"token_auth_tab": "Autoryzacja tokenu",
"customize_lms_tab": "Dostosuj LMS-a",
"domains_tab": "Domeny",
"teams_tab": "Zespoły"
"teams_tab": "Zespoły",
"ai_credits_tab": "Kredyty AI"
},
"subheadings": {
"view_site": "Zobacz witrynę"
@@ -2730,6 +2861,45 @@
},
"teams": {
"page_subtitle": "Invite teammates and control who helps run this organization."
},
"ai_credits": {
"sub_title": "Kredyty AI",
"page_subtitle": "Śledź wykorzystanie asystenta AI, wykorzystanie zespołu i kupuj pakiety tokenów.",
"cost_note": "Wykorzystanie kredytu jest ważone kosztem modelu. Gemini 2.5 Flash i GPT-5.4 Mini liczą się jako 1 jednostka kredytowa na token. Claude Sonnet 4.6 liczy się jako 36× na token, co odzwierciedla wyższy koszt interfejsu API.",
"buy_tokens": {
"title": "Kup więcej tokenów",
"description": "Każdy pakiet dodaje 5 000 000 kredytów za 5 USD. Wybierz, ile opakowań potrzebujesz.",
"quantity_hint": "paczki",
"preview": "{ilość} paczek · {tokens} tokenów · ${dolary}",
"buy_button": "Kup za ${dolarów}"
},
"leaderboard": {
"title": "Wykorzystanie zespołu",
"this_month": "Bieżący miesiąc",
"user": "Użytkownik",
"favorite_model": "Ulubiony model",
"tokens": "Żetony",
"empty": "Nikt w Twoim zespole nie korzystał w tym miesiącu z asystenta AI."
},
"chart": {
"heading": "Użycie",
"subheading": "Dzienne zużycie tokenów w tym miesiącu.",
"tokens": "Żetony",
"total_tokens": "Suma tokenów",
"total_requests": "Łączna liczba żądań",
"empty": "W tym miesiącu nie zarejestrowano jeszcze żadnego użycia."
},
"purchased": {
"title": "Zakupione użycie",
"subtitle": "Dodatkowe zakupione żetony przechodzą na inne, dopóki nie zostaną wykorzystane.",
"lifetime": "Zakupiono {tokens} tokenów · Wydano ${dolarów}",
"buy_more": "Kup więcej"
},
"included": {
"title": "Twoje uwzględnione wykorzystanie",
"subtitle": "Tokeny miesięczne zawarte w Twoim planie.",
"resets_on": "Resetuje {data}"
}
}
},
"profileMenu": {
@@ -2839,7 +3009,9 @@
"self_paced_label": "Samodzielne tempo",
"self_paced_subtitle": "Najlepsze rozwiązanie w przypadku kursów, w których uczniowie mogą brać udział w lekcjach we własnym tempie",
"compliance_label": "Zgodność",
"compliance_subtitle": "Szkolenia cykliczne z powtórzeniami, przypomnieniami i śledzeniem odnowień"
"compliance_subtitle": "Szkolenia cykliczne z powtórzeniami, przypomnieniami i śledzeniem odnowień",
"public_label": "Publiczne",
"public_subtitle": "Bezpłatne strony kursów bez rejestracji, które możesz udostępniać publicznie — idealne dla lead gen"
},
"delete_modal": {
"label": "Usuń",
@@ -3224,7 +3396,8 @@
"input_placeholder": "Zapytaj asystenta AI...",
"attach_document": "Załącz dokument (PDF, DOCX, PPTX)",
"upgrade_to_upload": "Uaktualnij, aby przesyłać dokumenty",
"tokens_exhausted": "Osiągnięto miesięczny limit tokenów AI. Kup więcej kredytów w Ustawieniach > Rozliczenia lub poczekaj na reset.",
"tokens_exhausted": "Osiągnięto miesięczny limit tokenów AI.",
"tokens_exhausted_buy_more": "Kup więcej",
"chat_history": "Historia czatu",
"no_conversations": "Nie ma jeszcze żadnych rozmów",
"untitled": "Bez tytułu",
@@ -3237,7 +3410,8 @@
"mention_exercise": "Ćwicz",
"mention_section": "Sekcja",
"mention_no_results": "Brak pasującej treści",
"uploading_document": "Przesyłanie dokumentu..."
"uploading_document": "Przesyłanie dokumentu...",
"agent_running_warning": "Zmiany pojawią się w kursie po zakończeniu działania agenta. Nie przeładowuj strony."
},
"widgets": {
"heading": "Widżety",
+186 -12
View File
@@ -391,6 +391,14 @@
"post_created": "Postagem criada com sucesso",
"post_updated": "Postagem atualizada com sucesso"
}
},
"ai_credits": {
"purchase_success": "Pacote de tokens adicionado ao seu saldo.",
"checkout_failed": "Não foi possível iniciar a finalização da compra. Por favor, tente novamente."
},
"public_course": {
"url_copied": "URL do curso copiada",
"url_copy_failed": "Não foi possível copiar a URL"
}
},
"explore": {
@@ -656,7 +664,30 @@
"popover_title": "Selecione tags",
"empty_groups": "Nenhuma tag disponível ainda"
},
"compliance": "Conformidade"
"compliance": "Conformidade",
"public": "Público",
"convert_to_public_blocked": "Este curso tem perguntas que não podem ser avaliadas automaticamente, portanto ainda não pode ser tornado público.",
"fix_blocking_questions": "Corrigir perguntas de bloqueio",
"slug": {
"label": "Slug de URL",
"description": "O último segmento do URL público deste item. Apenas letras, números e travessões.",
"public_only": "Slugs só são editáveis ​​em cursos públicos.",
"in_use": "Esse slug já é usado por outro item deste curso."
},
"callout": {
"legend": "Chamada pública do curso",
"description": "Mostrado na parte inferior de cada lição e no lugar dos itens bloqueados. Use-o para direcionar os alunos ao seu site ou a um curso pago.",
"title_label": "Título",
"title_placeholder": "Quer se aprofundar nisso?",
"description_label": "Descrição",
"description_placeholder": "Junte-se ao grupo completo para enviar um projeto de nível de produção em 4 semanas.",
"button_label": "Etiqueta do botão",
"button_label_placeholder": "Leia mais no meu site",
"button_url_label": "URL do botão",
"button_url_placeholder": "https://example.com",
"clear": "Limpar frase de destaque",
"public_only": "As frases de destaque aparecem apenas em cursos públicos."
}
},
"analytics": {
"title": "Análise"
@@ -1167,7 +1198,10 @@
"attempt_counter": "Tentativa {atual} de {total}",
"previous_try": "Tentativa anterior",
"next_try": "Próxima tentativa",
"try_again": "Tente novamente"
"try_again": "Tente novamente",
"back": "Voltar",
"begin_section": "Seção inicial",
"complete_section": "Seção completa"
},
"edit_mode": {
"delete_modal": "Excluir exercício",
@@ -1193,7 +1227,8 @@
"hotspot": "Ponto de acesso",
"link": "Ligações",
"word_bank": "Banco de palavras",
"star": "Classificação por estrelas"
"star": "Classificação por estrelas",
"video_recording": "Gravação de vídeo"
},
"select_type": "Selecione o tipo",
"question_type_auto_gradable": "Auto",
@@ -1204,7 +1239,9 @@
"title": "Excluir pergunta",
"sure": "Tem certeza de que deseja excluir esta pergunta",
"no": "Não, por favor, não",
"yes": "Sim, excluir"
"yes": "Sim, excluir",
"section_title": "Excluir seção",
"section_sure": "Esta seção será excluída. Suas perguntas serão movidas para a seção mais próxima."
},
"description": {
"title": "Título",
@@ -1464,12 +1501,76 @@
"correct_value_placeholder": "por exemplo 3",
"max_stars_placeholder": "por exemplo 5"
}
},
"video_recording": {
"submission": {
"no_video": "Nenhum vídeo enviado.",
"unavailable": "Vídeo indisponível.",
"duration": "Duração",
"file_size": "Tamanho do arquivo",
"recorded_at": "Gravado",
"uploaded_at": "Enviado",
"retake_count": "Repetições"
},
"preview": {
"max_duration_label": "Duração máxima",
"manual_grading": "Os alunos gravam uma breve resposta em vídeo. É necessária classificação manual."
},
"take": {
"unsupported": "A gravação de vídeo não é compatível com este navegador.",
"permission_prompt": "Permita o acesso à câmera e ao microfone para gravar sua resposta.",
"permission_denied": "O acesso à câmera ou ao microfone foi bloqueado. Verifique as permissões do navegador.",
"start_camera": "Configurar câmera",
"camera_label": "Câmera",
"camera_placeholder": "Selecione a câmera",
"play_preview": "Reproduzir pré-visualização da gravação",
"pause_preview": "Pausar visualização da gravação",
"start_recording": "Comece a gravar",
"stop_recording": "Pare de gravar",
"elapsed": "Decorrido",
"remaining": "Restante",
"max_duration": "Máx.",
"too_short": "Grave por pelo menos 1 segundo.",
"use_recording": "Usar gravação",
"retake": "Retomar",
"delete": "Excluir gravação",
"retry_upload": "Tentar enviar novamente",
"uploading": "Carregando gravação...",
"uploaded": "Gravação enviada",
"upload_failed": "Falha no upload. Tente novamente.",
"replaces_previous": "Uma nova tomada aceita substitui a resposta anterior após o upload."
},
"edit": {
"max_duration_label": "Duração máxima",
"max_duration_helper": "Os alunos gravam no navegador e podem refazer antes de enviar. O máximo é 2 minutos.",
"max_duration_placeholder": "60",
"manual_grading": "Requer classificação manual"
}
}
},
"settings": "Configurações",
"settings_allow_multiple": "Permitir múltiplas tentativas",
"settings_allow_multiple_helper": "Os alunos podem enviar mais de uma vez e revisar as tentativas anteriores na tela de resultados.",
"settings_save": "Salvar configurações"
"settings_save": "Salvar configurações",
"add": "Adicionar",
"add_section": "Adicionar seção",
"reorder_done": "Reordenação concluída",
"section": {
"fallback_title": "Seção",
"questions": "perguntas",
"short_questions": "q",
"required": "obrigatório",
"add_question": "Adicionar pergunta",
"delete": "Excluir seção",
"move_up": "Mover seção para cima",
"move_down": "Mover seção para baixo",
"color": "Cor da seção",
"description_placeholder": "Descreva esta seção",
"after_section": "Depois da seção",
"continue": "Continuar para a próxima seção",
"go_to_section": "Vá para a seção",
"submit": "Enviar exercício"
}
},
"new_exercise_modal": {
"heading": "Novo exercício",
@@ -1657,7 +1758,12 @@
"content_locked_description": "Seu instrutor ainda não desbloqueou este conteúdo. Conclua o conteúdo anterior ou volte mais tarde.",
"saving": "Salvando…",
"saved": "Salvo",
"draft_recovery": "Um rascunho não salvo foi encontrado para esta lição. Você gostaria de restaurá-lo?"
"draft_recovery": "Um rascunho não salvo foi encontrado para esta lição. Você gostaria de restaurá-lo?",
"stats": {
"sections": "Seções",
"lessons": "Lições",
"exercises": "Exercícios"
}
},
"news_feed": {
"heading": "Feed de notícias",
@@ -1782,7 +1888,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "Visível no site público do seu curso"
},
"sidebar": {
"back_to_course": "De volta ao curso",
@@ -1841,6 +1948,26 @@
"blocker_final_misconfigured": "O exercício de certificação \"{exerciseTitle}\" não possui pontos configurados; peça ao seu instrutor para consertar.",
"email_message_label": "Mensagem de e-mail",
"email_message_placeholder": "por exemplo Estamos orgulhosos do seu progresso – continue aprendendo!"
},
"creator": {
"heading": "Qual curso você deseja criar?",
"placeholder": "Peça ao ClassroomIO para criar um curso para você...",
"type": {
"self_paced": "Individualizado",
"live_class": "Aula ao vivo"
},
"level": {
"beginner": "Iniciante",
"intermediate": "Intermediário",
"advanced": "Avançado"
},
"drafting": {
"heading": "Elaborando sua ideia de curso",
"subtext": "Estamos transformando seu prompt em um título de curso e espaço de trabalho.",
"step_reading": "Lendo seu prompt",
"step_naming": "Nomeando seu curso",
"step_building": "Criando seu espaço de trabalho"
}
}
},
"courses": {
@@ -1881,6 +2008,8 @@
"unpublished": "Não publicado",
"continue_course": "Continuar",
"learn_more": "Saiba mais",
"public_badge": "Público",
"actions_menu_aria": "Ações do curso",
"tags_overflow_aria": "Mais {count} tags",
"list_view": {
"title": "Título",
@@ -1897,7 +2026,8 @@
"invite": "Convidar",
"delete": "Excluir",
"open": "Abrir",
"open_course_site": "Abrir site do curso"
"open_public_course": "Abrir curso público",
"copy_course_url": "Copiar URL do curso"
},
"due_date": "Devido",
"valid_until": "Válido até"
@@ -2599,7 +2729,8 @@
"token_auth_tab": "Autenticação de token",
"customize_lms_tab": "Personalizar LMS",
"domains_tab": "Domínios",
"teams_tab": "Equipes"
"teams_tab": "Equipes",
"ai_credits_tab": "Créditos de IA"
},
"subheadings": {
"view_site": "Ver site"
@@ -2730,6 +2861,45 @@
},
"teams": {
"page_subtitle": "Invite teammates and control who helps run this organization."
},
"ai_credits": {
"sub_title": "Créditos de IA",
"page_subtitle": "Rastreie o uso do assistente de IA, o consumo da equipe e compre pacotes de tokens.",
"cost_note": "O uso do crédito é ponderado pelo custo do modelo. Gemini 2.5 Flash e GPT-5.4 Mini contam como 1 unidade de crédito por token. Claude Sonnet 4.6 conta como 36× por token, refletindo seu custo mais alto de API.",
"buy_tokens": {
"title": "Compre mais fichas",
"description": "Cada pacote adiciona 5.000.000 de créditos por US$ 5. Escolha quantos pacotes você precisa.",
"quantity_hint": "pacotes",
"preview": "{quantidade} pacote(s) · {tokens} tokens · ${dollars}",
"buy_button": "Compre por ${dólares}"
},
"leaderboard": {
"title": "Uso da equipe",
"this_month": "Mês atual",
"user": "Usuário",
"favorite_model": "Modelo favorito",
"tokens": "Fichas",
"empty": "Ninguém na sua equipe usou o assistente de IA este mês."
},
"chart": {
"heading": "Uso",
"subheading": "Consumo diário de tokens este mês.",
"tokens": "Fichas",
"total_tokens": "Totais de fichas",
"total_requests": "Total de solicitações",
"empty": "Nenhum uso registrado neste mês ainda."
},
"purchased": {
"title": "Uso adquirido",
"subtitle": "Tokens extras que você comprou acumulam até serem usados.",
"lifetime": "{tokens} tokens comprados · ${dollars} gastos",
"buy_more": "Compre mais"
},
"included": {
"title": "Seu uso incluído",
"subtitle": "Tokens mensais incluídos no seu plano.",
"resets_on": "Reinicializações em {data}"
}
}
},
"profileMenu": {
@@ -2839,7 +3009,9 @@
"self_paced_label": "Individualizado",
"self_paced_subtitle": "Melhor para cursos onde os alunos podem ter aulas em seu próprio ritmo",
"compliance_label": "Conformidade",
"compliance_subtitle": "Treinamento recorrente com repetições, lembretes e acompanhamento de renovação"
"compliance_subtitle": "Treinamento recorrente com repetições, lembretes e acompanhamento de renovação",
"public_label": "Público",
"public_subtitle": "Páginas de cursos gratuitas e sem inscrição que você pode compartilhar publicamente - ótimas para geração de leads"
},
"delete_modal": {
"label": "Excluir",
@@ -3224,7 +3396,8 @@
"input_placeholder": "Pergunte ao assistente de IA...",
"attach_document": "Anexe um documento (PDF, DOCX, PPTX)",
"upgrade_to_upload": "Atualize para fazer upload de documentos",
"tokens_exhausted": "Limite mensal de tokens de IA atingido. Compre mais créditos em Configurações > Faturamento ou aguarde a redefinição.",
"tokens_exhausted": "Limite mensal de tokens de IA atingido.",
"tokens_exhausted_buy_more": "Comprar mais",
"chat_history": "Histórico de bate-papo",
"no_conversations": "Ainda não há conversas",
"untitled": "Sem título",
@@ -3237,7 +3410,8 @@
"mention_exercise": "Exercício",
"mention_section": "Seção",
"mention_no_results": "Nenhum conteúdo correspondente",
"uploading_document": "Carregando documento..."
"uploading_document": "Carregando documento...",
"agent_running_warning": "As alterações aparecerão no curso assim que o agente terminar. Não recarregue a página."
},
"widgets": {
"heading": "Widgets",
+186 -12
View File
@@ -391,6 +391,14 @@
"post_created": "Сообщение успешно создано",
"post_updated": "Сообщение успешно обновлено"
}
},
"ai_credits": {
"purchase_success": "Пакет токенов добавлен на ваш баланс.",
"checkout_failed": "Не удалось начать оформление заказа. Пожалуйста, попробуйте еще раз."
},
"public_course": {
"url_copied": "URL курса скопирован",
"url_copy_failed": "Не удалось скопировать URL"
}
},
"explore": {
@@ -656,7 +664,30 @@
"popover_title": "Выберите теги",
"empty_groups": "Тегов пока нет"
},
"compliance": "Соответствие"
"compliance": "Соответствие",
"public": "Общественный",
"convert_to_public_blocked": "В этом курсе есть вопросы, которые нельзя оценить автоматически, поэтому его пока нельзя опубликовать.",
"fix_blocking_questions": "Исправить блокирующие вопросы",
"slug": {
"label": "URL-адрес",
"description": "Последний сегмент общедоступного URL-адреса этого элемента. Только буквы, цифры и тире.",
"public_only": "Слаги доступны для редактирования только на общедоступных курсах.",
"in_use": "Этот пул уже используется другим предметом в этом курсе."
},
"callout": {
"legend": "Уведомление об общедоступном курсе",
"description": "Отображается внизу каждого урока вместо заблокированных элементов. Используйте его, чтобы привлечь учащихся на ваш сайт или на платный курс.",
"title_label": "Название",
"title_placeholder": "Хотите углубиться в это?",
"description_label": "Описание",
"description_placeholder": "Присоединяйтесь к полной группе, чтобы реализовать проект промышленного уровня за 4 недели.",
"button_label": "Метка кнопки",
"button_label_placeholder": "Подробнее читайте на моем сайте",
"button_url_label": "URL-адрес кнопки",
"button_url_placeholder": "https://example.com",
"clear": "Очистить выноску",
"public_only": "Уточнения появляются только на общедоступных курсах."
}
},
"analytics": {
"title": "Аналитика"
@@ -1167,7 +1198,10 @@
"attempt_counter": "Попытка {текущая} из {total}",
"previous_try": "Предыдущая попытка",
"next_try": "Следующая попытка",
"try_again": "Попробуйте еще раз"
"try_again": "Попробуйте еще раз",
"back": "Назад",
"begin_section": "Начальный раздел",
"complete_section": "Полный раздел"
},
"edit_mode": {
"delete_modal": "Удалить упражнение",
@@ -1193,7 +1227,8 @@
"hotspot": "Точка доступа",
"link": "Ссылки",
"word_bank": "Банк слов",
"star": "Звездный рейтинг"
"star": "Звездный рейтинг",
"video_recording": "Запись видео"
},
"select_type": "Выберите тип",
"question_type_auto_gradable": "Auto",
@@ -1204,7 +1239,9 @@
"title": "Удалить вопрос",
"sure": "Вы уверены, что хотите удалить этот вопрос?",
"no": "Нет, пожалуйста, не надо",
"yes": "Да, удалить"
"yes": "Да, удалить",
"section_title": "Удалить раздел",
"section_sure": "Этот раздел будет удален. Его вопросы будут перенесены в ближайший раздел."
},
"description": {
"title": "Название",
@@ -1464,12 +1501,76 @@
"correct_value_placeholder": "например 3",
"max_stars_placeholder": "например 5"
}
},
"video_recording": {
"submission": {
"no_video": "Видео не представлено.",
"unavailable": "Видео недоступно.",
"duration": "Продолжительность",
"file_size": "Размер файла",
"recorded_at": "Записано",
"uploaded_at": "Загружено",
"retake_count": "Пересдача"
},
"preview": {
"max_duration_label": "Максимальная продолжительность",
"manual_grading": "Учащиеся записывают короткий видеоответ. Требуется ручная оценка."
},
"take": {
"unsupported": "Запись видео не поддерживается в этом браузере.",
"permission_prompt": "Разрешите доступ к камере и микрофону, чтобы записать ваш ответ.",
"permission_denied": "Доступ к камере или микрофону заблокирован. Проверьте разрешения браузера.",
"start_camera": "Настроить камеру",
"camera_label": "Камера",
"camera_placeholder": "Выберите камеру",
"play_preview": "Воспроизвести предварительный просмотр записи",
"pause_preview": "Приостановить предварительный просмотр записи",
"start_recording": "Начать запись",
"stop_recording": "Остановить запись",
"elapsed": "Прошедшее",
"remaining": "Осталось",
"max_duration": "Макс",
"too_short": "Запись не менее 1 секунды.",
"use_recording": "Использовать запись",
"retake": "Пересдать",
"delete": "Удалить запись",
"retry_upload": "Повторить загрузку",
"uploading": "Загрузка записи...",
"uploaded": "Запись загружена",
"upload_failed": "Загрузка не удалась. Попробуйте еще раз.",
"replaces_previous": "Новый принятый вариант заменяет предыдущий ответ после загрузки."
},
"edit": {
"max_duration_label": "Максимальная продолжительность",
"max_duration_helper": "Учащиеся делают запись в браузере и могут пересдать ее перед отправкой. Максимум — 2 минуты.",
"max_duration_placeholder": "60",
"manual_grading": "Требуется ручная оценка"
}
}
},
"settings": "Настройки",
"settings_allow_multiple": "Разрешить несколько попыток",
"settings_allow_multiple_helper": "Учащиеся могут отправлять заявки несколько раз и просматривать предыдущие попытки на экране результатов.",
"settings_save": "Сохранить настройки"
"settings_save": "Сохранить настройки",
"add": "Добавить",
"add_section": "Добавить раздел",
"reorder_done": "Изменение заказа завершено",
"section": {
"fallback_title": "Раздел",
"questions": "вопросы",
"short_questions": "д",
"required": "требуется",
"add_question": "Добавить вопрос",
"delete": "Удалить раздел",
"move_up": "Переместить раздел вверх",
"move_down": "Переместить раздел вниз",
"color": "Цвет раздела",
"description_placeholder": "Опишите этот раздел",
"after_section": "После раздела",
"continue": "Перейти к следующему разделу",
"go_to_section": "Перейти в раздел",
"submit": "Отправить упражнение"
}
},
"new_exercise_modal": {
"heading": "Новое упражнение",
@@ -1657,7 +1758,12 @@
"content_locked_description": "Ваш преподаватель еще не разблокировал этот контент. Завершите предыдущий контент или зайдите позже.",
"saving": "Сохранение…",
"saved": "Сохранено",
"draft_recovery": "Для этого урока найден несохраненный черновик. Хотели бы вы восстановить его?"
"draft_recovery": "Для этого урока найден несохраненный черновик. Хотели бы вы восстановить его?",
"stats": {
"sections": "Разделы",
"lessons": "Уроки",
"exercises": "Упражнения"
}
},
"news_feed": {
"heading": "Лента новостей",
@@ -1782,7 +1888,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "Доступен на публичном сайте вашего курса"
},
"sidebar": {
"back_to_course": "Вернуться к курсу",
@@ -1841,6 +1948,26 @@
"blocker_final_misconfigured": "Для сертификационного упражнения «{exercisionTitle}» не настроены баллы; попросите инструктора это исправить.",
"email_message_label": "Сообщение электронной почты",
"email_message_placeholder": "например Мы гордимся вашим прогрессом — продолжайте учиться!"
},
"creator": {
"heading": "Какой курс вы хотите создать?",
"placeholder": "Попросите ClassroomIO создать для вас курс...",
"type": {
"self_paced": "Самостоятельный темп",
"live_class": "Живой урок"
},
"level": {
"beginner": "Новичок",
"intermediate": "Средний",
"advanced": "Расширенный"
},
"drafting": {
"heading": "Продумываем идею вашего курса",
"subtext": "Мы превратим ваше приглашение в название курса и рабочую область.",
"step_reading": "Читаю вашу подсказку",
"step_naming": "Название вашего курса",
"step_building": "Создание своего рабочего пространства"
}
}
},
"courses": {
@@ -1881,6 +2008,8 @@
"unpublished": "Неопубликовано",
"continue_course": "Продолжить",
"learn_more": "Узнать больше",
"public_badge": "Публичный",
"actions_menu_aria": "Действия с курсом",
"tags_overflow_aria": "Ещё {count} тегов",
"list_view": {
"title": "Название",
@@ -1897,7 +2026,8 @@
"invite": "Пригласить",
"delete": "Удалить",
"open": "Открыть",
"open_course_site": "Открытый сайт курса"
"open_public_course": "Открыть публичный курс",
"copy_course_url": "Копировать URL курса"
},
"due_date": "Срок погашения",
"valid_until": "Действительно до"
@@ -2599,7 +2729,8 @@
"token_auth_tab": "Токен аутентификации",
"customize_lms_tab": "Настроить систему управления обучением",
"domains_tab": "Домены",
"teams_tab": "Команды"
"teams_tab": "Команды",
"ai_credits_tab": "Кредиты ИИ"
},
"subheadings": {
"view_site": "Посмотреть сайт"
@@ -2730,6 +2861,45 @@
},
"teams": {
"page_subtitle": "Invite teammates and control who helps run this organization."
},
"ai_credits": {
"sub_title": "кредиты ИИ",
"page_subtitle": "Отслеживайте использование ИИ-помощника, потребление командой и покупайте пакеты токенов.",
"cost_note": "Использование кредита взвешивается по стоимости модели. Gemini 2.5 Flash и GPT-5.4 Mini считаются за 1 кредитную единицу за токен. Claude Sonnet 4.6 считается 36× на токен, что отражает более высокую стоимость API.",
"buy_tokens": {
"title": "Купить больше жетонов",
"description": "Каждый пакет добавляет 5 000 000 кредитов за 5 долларов США. Выберите, сколько упаковок вам нужно.",
"quantity_hint": "пакеты",
"preview": "Пакет(ы) {quantity} · жетоны {tokens} · ${доллары}",
"buy_button": "Купить за ${долларов}"
},
"leaderboard": {
"title": "Использование команды",
"this_month": "Текущий месяц",
"user": "Пользователь",
"favorite_model": "Любимая модель",
"tokens": "Токены",
"empty": "Никто из вашей команды в этом месяце не пользовался ИИ-помощником."
},
"chart": {
"heading": "Использование",
"subheading": "Ежедневное потребление токенов в этом месяце.",
"tokens": "Токены",
"total_tokens": "Всего токенов",
"total_requests": "Всего запросов",
"empty": "В этом месяце использования еще не зафиксировано."
},
"purchased": {
"title": "Приобретенное использование",
"subtitle": "Дополнительные жетоны, которые вы купили, переносятся до тех пор, пока не будут использованы.",
"lifetime": "Токенов: {tokens} куплено · потрачено ${dollars}",
"buy_more": "Купить больше"
},
"included": {
"title": "Ваше включенное использование",
"subtitle": "Ежемесячные токены включены в ваш план.",
"resets_on": "Сбрасывает {дата}"
}
}
},
"profileMenu": {
@@ -2839,7 +3009,9 @@
"self_paced_label": "Самостоятельный темп",
"self_paced_subtitle": "Лучше всего подходит для курсов, где студенты могут брать уроки в удобном для них темпе.",
"compliance_label": "Соответствие",
"compliance_subtitle": "Регулярное обучение с повторной сдачей, напоминаниями и отслеживанием продлений"
"compliance_subtitle": "Регулярное обучение с повторной сдачей, напоминаниями и отслеживанием продлений",
"public_label": "Общественный",
"public_subtitle": "Бесплатные страницы курсов без регистрации, которыми вы можете поделиться публично — отлично подходит для привлечения потенциальных клиентов."
},
"delete_modal": {
"label": "Удалить",
@@ -3224,7 +3396,8 @@
"input_placeholder": "Спросите ИИ-помощника...",
"attach_document": "Прикрепите документ (PDF, DOCX, PPTX)",
"upgrade_to_upload": "Обновите, чтобы загружать документы",
"tokens_exhausted": "Достигнут месячный лимит токенов AI. Купите больше кредитов в «Настройки» > «Оплата» или дождитесь сброса.",
"tokens_exhausted": "Достигнут месячный лимит токенов AI.",
"tokens_exhausted_buy_more": "Купить ещё",
"chat_history": "История чата",
"no_conversations": "Пока нет разговоров",
"untitled": "Без названия",
@@ -3237,7 +3410,8 @@
"mention_exercise": "Упражнение",
"mention_section": "Раздел",
"mention_no_results": "Нет подходящего контента",
"uploading_document": "Загрузка документа..."
"uploading_document": "Загрузка документа...",
"agent_running_warning": "Изменения появятся в курсе, как только агент завершит работу. Не перезагружайте страницу."
},
"widgets": {
"heading": "Виджеты",
+186 -12
View File
@@ -391,6 +391,14 @@
"post_created": "Bài viết được tạo thành công",
"post_updated": "Đã cập nhật bài đăng thành công"
}
},
"ai_credits": {
"purchase_success": "Gói mã thông báo được thêm vào số dư của bạn.",
"checkout_failed": "Không thể bắt đầu thanh toán. Vui lòng thử lại."
},
"public_course": {
"url_copied": "Đã sao chép URL khóa học",
"url_copy_failed": "Không thể sao chép URL"
}
},
"explore": {
@@ -656,7 +664,30 @@
"popover_title": "Chọn thẻ",
"empty_groups": "Chưa có thẻ nào"
},
"compliance": "Tuân thủ"
"compliance": "Tuân thủ",
"public": "công cộng",
"convert_to_public_blocked": "Khóa học này có các câu hỏi không thể tự động chấm điểm nên chưa thể công khai.",
"fix_blocking_questions": "Sửa câu hỏi chặn",
"slug": {
"label": "sên URL",
"description": "Đoạn cuối cùng của URL công khai của mục này. Chỉ có chữ cái, số và dấu gạch ngang.",
"public_only": "Slug chỉ có thể chỉnh sửa được trên các khóa học Công khai.",
"in_use": "Slug đó đã được sử dụng bởi một mục khác trong khóa học này."
},
"callout": {
"legend": "Chú thích khóa học công khai",
"description": "Hiển thị ở cuối mỗi bài học và thay cho các đồ vật bị khóa. Sử dụng nó để thu hút người học đến trang web của bạn hoặc một khóa học trả phí.",
"title_label": "Tiêu đề",
"title_placeholder": "Bạn muốn đi sâu hơn về điều này?",
"description_label": "Mô tả",
"description_placeholder": "Tham gia nhóm đầy đủ để hoàn thành một dự án cấp sản xuất trong 4 tuần.",
"button_label": "Nhãn nút",
"button_label_placeholder": "Đọc thêm trên trang web của tôi",
"button_url_label": "URL nút",
"button_url_placeholder": "https://example.com",
"clear": "Xóa chú thích",
"public_only": "Chú thích chỉ xuất hiện trên các khóa học Công khai."
}
},
"analytics": {
"title": "Phân tích"
@@ -1167,7 +1198,10 @@
"attempt_counter": "Hãy thử {current} trong tổng số {total}",
"previous_try": "Lần thử trước",
"next_try": "Lần thử tiếp theo",
"try_again": "Thử lại"
"try_again": "Thử lại",
"back": "Quay lại",
"begin_section": "Phần bắt đầu",
"complete_section": "Hoàn thành phần"
},
"edit_mode": {
"delete_modal": "Xóa bài tập",
@@ -1193,7 +1227,8 @@
"hotspot": "Điểm phát sóng",
"link": "Liên kết",
"word_bank": "Ngân hàng từ",
"star": "Xếp hạng sao"
"star": "Xếp hạng sao",
"video_recording": "Quay video"
},
"select_type": "Chọn loại",
"question_type_auto_gradable": "Auto",
@@ -1204,7 +1239,9 @@
"title": "Xóa câu hỏi",
"sure": "Bạn có chắc chắn muốn xóa câu hỏi này",
"no": "Không, làm ơn đừng",
"yes": "Có, xóa"
"yes": "Có, xóa",
"section_title": "Xóa phần",
"section_sure": "Phần này sẽ bị xóa. Các câu hỏi của nó sẽ được chuyển đến phần gần nhất."
},
"description": {
"title": "Tiêu đề",
@@ -1464,12 +1501,76 @@
"correct_value_placeholder": "ví dụ: 3",
"max_stars_placeholder": "ví dụ: 5"
}
},
"video_recording": {
"submission": {
"no_video": "Không có video nào được gửi.",
"unavailable": "Video không có sẵn.",
"duration": "Thời lượng",
"file_size": "Kích thước tệp",
"recorded_at": "Đã ghi lại",
"uploaded_at": "Đã tải lên",
"retake_count": "Thi lại"
},
"preview": {
"max_duration_label": "Thời lượng tối đa",
"manual_grading": "Người học ghi lại một đoạn video ngắn phản hồi. Yêu cầu phân loại thủ công."
},
"take": {
"unsupported": "Quay video không được hỗ trợ trong trình duyệt này.",
"permission_prompt": "Cho phép truy cập vào máy ảnh và micrô để ghi lại câu trả lời của bạn.",
"permission_denied": "Quyền truy cập vào máy ảnh hoặc micrô đã bị chặn. Kiểm tra quyền của trình duyệt.",
"start_camera": "Thiết lập máy ảnh",
"camera_label": "Máy ảnh",
"camera_placeholder": "Chọn máy ảnh",
"play_preview": "Phát bản xem trước bản ghi",
"pause_preview": "Tạm dừng xem trước bản ghi",
"start_recording": "Bắt đầu ghi",
"stop_recording": "Dừng ghi",
"elapsed": "Đã qua",
"remaining": "Còn lại",
"max_duration": "Tối đa",
"too_short": "Ghi ít nhất 1 giây.",
"use_recording": "Sử dụng ghi âm",
"retake": "Thi lại",
"delete": "Xóa bản ghi",
"retry_upload": "Thử tải lên lại",
"uploading": "Đang tải bản ghi lên...",
"uploaded": "Đã tải lên bản ghi",
"upload_failed": "Tải lên không thành công. Hãy thử lại.",
"replaces_previous": "Một câu trả lời mới được chấp nhận sẽ thay thế câu trả lời trước đó sau khi tải lên."
},
"edit": {
"max_duration_label": "Thời lượng tối đa",
"max_duration_helper": "Học sinh ghi bài trên trình duyệt và có thể thi lại trước khi nộp. Tối đa là 2 phút.",
"max_duration_placeholder": "60",
"manual_grading": "Yêu cầu phân loại thủ công"
}
}
},
"settings": "Cài đặt",
"settings_allow_multiple": "Cho phép thử nhiều lần",
"settings_allow_multiple_helper": "Học sinh có thể gửi nhiều lần và xem lại các lần thử trước đây trên màn hình kết quả.",
"settings_save": "Lưu cài đặt"
"settings_save": "Lưu cài đặt",
"add": "Thêm",
"add_section": "Thêm phần",
"reorder_done": "Sắp xếp lại xong",
"section": {
"fallback_title": "Phần",
"questions": "câu hỏi",
"short_questions": "q",
"required": "bắt buộc",
"add_question": "Thêm câu hỏi",
"delete": "Xóa phần",
"move_up": "Di chuyển phần lên",
"move_down": "Di chuyển phần xuống",
"color": "Màu phần",
"description_placeholder": "Mô tả phần này",
"after_section": "Phần sau",
"continue": "Tiếp tục đến phần tiếp theo",
"go_to_section": "Đi đến phần",
"submit": "Gửi bài tập"
}
},
"new_exercise_modal": {
"heading": "Bài tập mới",
@@ -1657,7 +1758,12 @@
"content_locked_description": "Người hướng dẫn của bạn chưa mở khóa nội dung này. Hoàn thành nội dung trước đó hoặc kiểm tra lại sau.",
"saving": "Đang lưu…",
"saved": "Đã lưu",
"draft_recovery": "Đã tìm thấy một bản nháp chưa được lưu cho bài học này. Bạn có muốn khôi phục nó không?"
"draft_recovery": "Đã tìm thấy một bản nháp chưa được lưu cho bài học này. Bạn có muốn khôi phục nó không?",
"stats": {
"sections": "Phần",
"lessons": "Bài học",
"exercises": "Bài tập"
}
},
"news_feed": {
"heading": "Nguồn cấp tin tức",
@@ -1782,7 +1888,8 @@
},
"header": {
"preview": "Preview course",
"preview_missing_slug": "Generate and save a course slug before previewing."
"preview_missing_slug": "Generate and save a course slug before previewing.",
"public_course_helper": "Hiển thị trên trang khóa học công khai của bạn"
},
"sidebar": {
"back_to_course": "Quay lại khóa học",
@@ -1841,6 +1948,26 @@
"blocker_final_misconfigured": "Bài tập chứng nhận \"{exerciseTitle}\" không có cấu hình điểm nào; nhờ người hướng dẫn khắc phục.",
"email_message_label": "Tin nhắn email",
"email_message_placeholder": "ví dụ: Chúng tôi tự hào về sự tiến bộ của bạn - hãy tiếp tục học hỏi!"
},
"creator": {
"heading": "Bạn muốn tạo khóa học nào?",
"placeholder": "Hãy yêu cầu ClassroomIO tạo một khóa học cho bạn...",
"type": {
"self_paced": "tự nhịp độ",
"live_class": "Lớp học trực tiếp"
},
"level": {
"beginner": "Người mới bắt đầu",
"intermediate": "Trung cấp",
"advanced": "Nâng cao"
},
"drafting": {
"heading": "Soạn thảo ý tưởng khóa học của bạn",
"subtext": "Chúng tôi đang biến lời nhắc của bạn thành tiêu đề khóa học và không gian làm việc.",
"step_reading": "Đọc lời nhắc của bạn",
"step_naming": "Đặt tên cho khóa học của bạn",
"step_building": "Tạo không gian làm việc của bạn"
}
}
},
"courses": {
@@ -1881,6 +2008,8 @@
"unpublished": "Chưa được xuất bản",
"continue_course": "Tiếp tục",
"learn_more": "Tìm hiểu thêm",
"public_badge": "Công khai",
"actions_menu_aria": "Thao tác khóa học",
"tags_overflow_aria": "Thêm {count} thẻ",
"list_view": {
"title": "Tiêu đề",
@@ -1897,7 +2026,8 @@
"invite": "Mời",
"delete": "Xóa",
"open": "Mở",
"open_course_site": "Mở trang web khóa học"
"open_public_course": "Mở khóa học công khai",
"copy_course_url": "Sao chép URL khóa học"
},
"due_date": "Đến hạn",
"valid_until": "Có hiệu lực cho đến khi"
@@ -2599,7 +2729,8 @@
"token_auth_tab": "Xác thực mã thông báo",
"customize_lms_tab": "Tùy chỉnh LMS",
"domains_tab": "Tên miền",
"teams_tab": "Đội"
"teams_tab": "Đội",
"ai_credits_tab": "Tín dụng AI"
},
"subheadings": {
"view_site": "Xem trang web"
@@ -2730,6 +2861,45 @@
},
"teams": {
"page_subtitle": "Invite teammates and control who helps run this organization."
},
"ai_credits": {
"sub_title": "tín dụng AI",
"page_subtitle": "Theo dõi việc sử dụng trợ lý AI, mức tiêu thụ của nhóm và mua gói mã thông báo.",
"cost_note": "Việc sử dụng tín dụng được tính theo chi phí mô hình. Gemini 2.5 Flash và GPT-5.4 Mini được tính là 1 đơn vị tín dụng cho mỗi mã thông báo. Claude Sonnet 4.6 được tính là 36× mỗi mã thông báo, phản ánh chi phí API cao hơn.",
"buy_tokens": {
"title": "Mua thêm token",
"description": "Mỗi gói bổ sung thêm 5.000.000 tín dụng với giá 5 USD. Chọn số lượng gói bạn cần.",
"quantity_hint": "gói",
"preview": "{quantity} gói · {tokens} token · ${dollars}",
"buy_button": "Mua với giá ${dollars}"
},
"leaderboard": {
"title": "Cách sử dụng nhóm",
"this_month": "Tháng hiện tại",
"user": "người dùng",
"favorite_model": "Người mẫu yêu thích",
"tokens": "Mã thông báo",
"empty": "Không ai trong nhóm của bạn sử dụng trợ lý AI trong tháng này."
},
"chart": {
"heading": "Cách sử dụng",
"subheading": "Mức tiêu thụ token hàng ngày trong tháng này.",
"tokens": "Mã thông báo",
"total_tokens": "Tổng số token",
"total_requests": "Tổng số yêu cầu",
"empty": "Chưa có mức sử dụng nào được ghi lại trong tháng này."
},
"purchased": {
"title": "Mức sử dụng đã mua",
"subtitle": "Các token bổ sung bạn đã mua sẽ được sử dụng tiếp cho đến khi sử dụng.",
"lifetime": "Đã mua {tokens} token · chi tiêu ${dollars}",
"buy_more": "Mua thêm"
},
"included": {
"title": "Mức sử dụng đi kèm của bạn",
"subtitle": "Mã thông báo hàng tháng đi kèm với gói của bạn.",
"resets_on": "Đặt lại {ngày}"
}
}
},
"profileMenu": {
@@ -2839,7 +3009,9 @@
"self_paced_label": "tự nhịp độ",
"self_paced_subtitle": "Tốt nhất cho các khóa học mà sinh viên có thể học theo tốc độ của riêng mình",
"compliance_label": "Tuân thủ",
"compliance_subtitle": "Đào tạo định kỳ với tính năng thi lại, nhắc nhở và theo dõi gia hạn"
"compliance_subtitle": "Đào tạo định kỳ với tính năng thi lại, nhắc nhở và theo dõi gia hạn",
"public_label": "công cộng",
"public_subtitle": "Các trang khóa học miễn phí, không cần đăng ký mà bạn có thể chia sẻ công khai - rất tốt cho thế hệ khách hàng tiềm năng"
},
"delete_modal": {
"label": "Xóa",
@@ -3224,7 +3396,8 @@
"input_placeholder": "Hãy hỏi trợ lý AI...",
"attach_document": "Đính kèm tài liệu (PDF, DOCX, PPTX)",
"upgrade_to_upload": "Nâng cấp để tải lên tài liệu",
"tokens_exhausted": "Đã đạt đến giới hạn mã thông báo AI hàng tháng. Mua thêm tín dụng trong Cài đặt > Thanh toán hoặc đợi đặt lại.",
"tokens_exhausted": "Đã đạt đến giới hạn mã thông báo AI hàng tháng.",
"tokens_exhausted_buy_more": "Mua thêm",
"chat_history": "Lịch sử trò chuyện",
"no_conversations": "Chưa có cuộc trò chuyện nào",
"untitled": "Không có tiêu đề",
@@ -3237,7 +3410,8 @@
"mention_exercise": "tập thể dục",
"mention_section": "Phần",
"mention_no_results": "Không có nội dung phù hợp",
"uploading_document": "Đang tải tài liệu lên..."
"uploading_document": "Đang tải tài liệu lên...",
"agent_running_warning": "Những thay đổi sẽ xuất hiện trong khóa học sau khi tác nhân hoàn tất. Đừng tải lại trang."
},
"widgets": {
"heading": "Widget",
+10
View File
@@ -35,6 +35,7 @@ export interface OrgLandingPageHero {
primaryAction: {
label: string;
href: string;
disabled?: boolean;
};
secondaryAction?: {
label: string;
@@ -71,6 +72,15 @@ export interface OrgAudience {
date_joined: string;
}
/** Vercel project domain GET (subset used by domain helpers). */
export interface DomainResponse {
name?: string;
verified?: boolean;
apexName?: string;
projectId?: string;
error?: { code: string; message: string };
}
export interface DomainConfigResponse {
/** How we see the domain's configuration. - `CNAME`: Domain has a CNAME pointing to Vercel. - `A`: Domain's A record is resolving to Vercel. - `http`: Domain is resolving to Vercel but may be behind a Proxy. - `null`: Domain is not resolving to Vercel. */
configuredBy?: ('CNAME' | 'A' | 'http') | null;
+31 -3
View File
@@ -78,7 +78,7 @@ interface Product {
attachedCustomFields: any[];
}
interface SubscriptionData {
export interface SubscriptionData {
createdAt: string;
modifiedAt: string | null;
id: string;
@@ -104,6 +104,7 @@ interface SubscriptionData {
orgId: string;
orgSlug: string;
triggeredBy: string;
kind?: string;
};
customFieldData: Record<string, any>;
customer: Customer;
@@ -114,7 +115,34 @@ interface SubscriptionData {
discount: any | null;
}
export interface PolarWebhookPayload {
type: string;
export interface PolarOrderWebhookData {
id: string;
amount?: number;
totalAmount?: number;
currency?: string;
metadata?: Record<string, string>;
items?: Array<{ quantity?: number; amount?: number }>;
[key: string]: unknown;
}
export interface PolarOrderWebhookPayload {
type: 'order.paid' | 'order.created' | 'order.refunded';
data: PolarOrderWebhookData;
}
export interface PolarSubscriptionWebhookPayload {
type:
| 'checkout.created'
| 'checkout.updated'
| 'subscription.created'
| 'subscription.updated'
| 'subscription.active'
| 'subscription.revoked'
| 'subscription.canceled';
data: SubscriptionData;
}
export type PolarWebhookPayload =
| PolarSubscriptionWebhookPayload
| PolarOrderWebhookPayload
| { type: string; data: Record<string, unknown> };