From d855b45edabb6a1aa10326a1a7b43465b1222c64 Mon Sep 17 00:00:00 2001 From: Rotimi Best Date: Wed, 27 May 2026 14:57:21 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20placeholder=20names=20inside=20{?= =?UTF-8?q?=E2=80=A6}=20were=20translated?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/lib/utils/translations/da.json | 34 +++-- .../src/lib/utils/translations/de.json | 34 +++-- .../src/lib/utils/translations/es.json | 84 ++++++----- .../src/lib/utils/translations/fr.json | 52 ++++--- .../src/lib/utils/translations/hi.json | 142 +++++++++--------- .../src/lib/utils/translations/pl.json | 80 +++++----- .../src/lib/utils/translations/pt.json | 96 ++++++------ .../src/lib/utils/translations/ru.json | 74 ++++----- .../src/lib/utils/translations/vi.json | 80 +++++----- 9 files changed, 347 insertions(+), 329 deletions(-) diff --git a/apps/dashboard/src/lib/utils/translations/da.json b/apps/dashboard/src/lib/utils/translations/da.json index 83cddf52..f5aeba8c 100644 --- a/apps/dashboard/src/lib/utils/translations/da.json +++ b/apps/dashboard/src/lib/utils/translations/da.json @@ -7,17 +7,17 @@ }, "validations": { "generic": { - "invalid_type": "Ugyldig type{forventet, vælg, udefineret{} anden{. Forventet {expected}}}{received, select, undefined{} other{ (received {received})}}", - "too_big": "Værdien er for stor{maksimum, vælg, udefineret{} andet{. Maksimum {maksimum}}}", - "too_small": "Værdien er for lille{minimum, vælg, udefineret{} andet{. Minimum {minimum}}}", - "invalid_format": "Ugyldigt format{validering, vælg, udefineret{} andet{ for {validation}}}", + "invalid_type": "Ugyldig type{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "too_big": "Værdien er for stor{maximum, select, undefined{} other{. Maximum {maximum}}}", + "too_small": "Værdien er for lille{minimum, select, undefined{} other{. Minimum {minimum}}}", + "invalid_format": "Ugyldigt format{validation, select, undefined{} other{ for {validation}}}", "not_multiple_of": "Værdien skal være et multiplum af {multipleOf}", - "unrecognized_keys": "Indeholder ikke-genkendte nøgler{nøgler, vælg, udefineret{} andet{: {nøgler}}}", + "unrecognized_keys": "Indeholder ikke-genkendte nøgler{keys, select, undefined{} other{: {keys}}}", "invalid_union": "Ugyldig værdi for angivne muligheder{unionErrors, select, undefined{} other{. {unionErrors} valgmulighed(er) mislykkedes}}", - "invalid_key": "Ugyldig nøgle{nøgle, vælg, udefineret{} anden{: {nøgle}}}", - "invalid_element": "Ugyldigt element{indeks, vælg, udefineret{} andet{ ved indeks {indeks}}}", - "invalid_value": "Ugyldig værdi{forventet, vælg, udefineret{} anden{. Forventet {expected}}}{received, select, undefined{} other{ (received {received})}}", - "custom": "{besked}", + "invalid_key": "Ugyldig nøgle{key, select, undefined{} other{: {key}}}", + "invalid_element": "Ugyldigt element{index, select, undefined{} other{ at index {index}}}", + "invalid_value": "Ugyldig værdi{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "custom": "{message}", "required_field": "Dette felt er påkrævet", "invalid_field": "Ugyldig værdi" }, @@ -118,7 +118,7 @@ }, "exercise": { "options": { - "custom": "{besked}" + "custom": "{message}" }, "points": { "too_small": "Point skal være mindst 0" @@ -1109,7 +1109,7 @@ "snackbar_failed_revoke_invite": "Invitationen kunne ikke tilbagekaldes", "snackbar_failed_load_audit": "Invitationsrevision kunne ikke indlæses", "snackbar_metadata_copied": "Invitationsmetadata er kopieret", - "snackbar_email_invites_success": "Oprettet {count} invitation(er). Sendt {sent}, mislykkedes {failed}. Sprang over {duplikater} dubletter.", + "snackbar_email_invites_success": "Oprettet {count} invitation(er). Sendt {sent}, mislykkedes {failed}. Sprang over {duplicates} dubletter.", "select_at_least_one_student": "Select at least one existing student", "presets": { "one_time_24h": "Engangs (24 timer)", @@ -1379,7 +1379,9 @@ }, "select_type": "Vælg type", "question_type_auto_gradable": "Auto", + "question_type_auto_gradable_description": "Scored automatically by the system", "question_type_manual_grading": "Manual", + "question_type_manual_grading_description": "Requires human review to score", "premium_question_type": "Opgrader for at bruge denne spørgsmålstype" }, "delete_confirmation": { @@ -1439,7 +1441,7 @@ "helper": "Træk elementer for at definere den korrekte rækkefølge.", "add_step": "Tilføj trin", "empty": "Tilføj trin, og træk derefter for at indstille den forventede rækkefølge.", - "step_placeholder": "Trin '{'indeks'}'", + "step_placeholder": "Trin '{'index'}'", "remove_step_tooltip": "Fjern trin" } }, @@ -1457,11 +1459,11 @@ "link": { "preview": { "empty": "Ingen links indsendt.", - "item_label": "Link '{'indeks'}'" + "item_label": "Link '{'index'}'" }, "take": { "helper": "Tilføj et eller flere links. Kun gyldige http/https URL'er accepteres.", - "placeholder": "https://example.com/ressource-'{'indeks'}'", + "placeholder": "https://example.com/ressource-'{'index'}'", "remove_tooltip": "Fjern link", "remove_sr": "Fjern link", "invalid_url_error": "Indtast venligst en gyldig URL (http/https).", @@ -3294,7 +3296,7 @@ "included": { "title": "Dit inkluderede forbrug", "subtitle": "Månedlige tokens inkluderet i din plan.", - "resets_on": "Nulstiller {dato}" + "resets_on": "Nulstiller {date}" } } }, @@ -4311,7 +4313,7 @@ "submit": "Tjek mine svar", "try_again": "Prøv igen", "practice_again": "Øv igen", - "attempt_option": "Forsøg {attemptNumber} - {korrekt}/{total}", + "attempt_option": "Forsøg {attemptNumber} - {correct}/{total}", "attempts_select_aria": "Dine forsøg", "privacy_hint": "Bedømmes øjeblikkeligt i din browser - intet indsendes.", "summary_template": "Du fik [[korrekt]] / [[total]] korrekt." diff --git a/apps/dashboard/src/lib/utils/translations/de.json b/apps/dashboard/src/lib/utils/translations/de.json index 4589ad06..77d5ced3 100644 --- a/apps/dashboard/src/lib/utils/translations/de.json +++ b/apps/dashboard/src/lib/utils/translations/de.json @@ -7,17 +7,17 @@ }, "validations": { "generic": { - "invalid_type": "Ungültiger Typ {erwartet, ausgewählt, undefiniert{} andere{. Erwartet {erwartet}}}{received, select, undefiniert{} other{ (received {received})}}", - "too_big": "Der Wert ist zu groß{maximum, select, undefiniert{} other{. Maximum {maximum}}}", - "too_small": "Der Wert ist zu klein{minimum, select, undefiniert{} other{. Minimum {Minimum}}}", - "invalid_format": "Ungültiges Format{validation, select, undefiniert{} other{ für {validation}}}", + "invalid_type": "Ungültiger Typ {expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "too_big": "Der Wert ist zu groß{maximum, select, undefined{} other{. Maximum {maximum}}}", + "too_small": "Der Wert ist zu klein{minimum, select, undefined{} other{. Minimum {minimum}}}", + "invalid_format": "Ungültiges Format{validation, select, undefined{} other{ für {validation}}}", "not_multiple_of": "Der Wert muss ein Vielfaches von {multipleOf} sein", - "unrecognized_keys": "Enthält nicht erkannte Schlüssel{keys, select, undefiniert{} other{: {keys}}}", + "unrecognized_keys": "Enthält nicht erkannte Schlüssel{keys, select, undefined{} other{: {keys}}}", "invalid_union": "Ungültiger Wert für die bereitgestellten Optionen {unionErrors, select, undefined{} other{. {unionErrors}-Option(en) fehlgeschlagen}}", - "invalid_key": "Ungültiger Schlüssel{key, select, undefiniert{} other{: {key}}}", - "invalid_element": "Ungültiges Element{index, select, undefiniert{} other{ am Index {index}}}", - "invalid_value": "Ungültiger Wert{erwartet, ausgewählt, undefiniert{} andere{. Erwartet {erwartet}}}{received, select, undefiniert{} other{ (received {received})}}", - "custom": "{Nachricht}", + "invalid_key": "Ungültiger Schlüssel{key, select, undefined{} other{: {key}}}", + "invalid_element": "Ungültiges Element{index, select, undefined{} other{ am Index {index}}}", + "invalid_value": "Ungültiger Wert{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "custom": "{message}", "required_field": "Dieses Feld ist erforderlich", "invalid_field": "Ungültiger Wert" }, @@ -118,7 +118,7 @@ }, "exercise": { "options": { - "custom": "{Nachricht}" + "custom": "{message}" }, "points": { "too_small": "Die Punkte müssen mindestens 0 sein" @@ -531,7 +531,7 @@ "description": "Anmeldungen gruppiert nach Kurstyp", "subtitle": "{total} Anmeldungen für alle Typen", "empty": "Noch keine Anmeldedaten", - "course_count": "{Anzahl, Plural, eins {# Kurs} andere {# Kurse}}", + "course_count": "{count, plural, one {# course} other {# courses}}", "views_short": "Ansichten", "types": { "SELF_PACED": "Im eigenen Tempo", @@ -589,8 +589,8 @@ "progress_distribution_card_description": "Wie viele Lernende fallen in jedes Abschlussband?", "grade_distribution_card_description": "Wie viele Lernende fallen in jede Klassenstufe?", "students_table_description": "Sortierbare Übersicht mit Links zu Lernprofilen.", - "kpi_team_tutors": "{count, plural, one {# Tutor im Kursteam} other {# Tutor im Kursteam}}", - "kpi_lessons_exercises": "{count, plural, one {#Übung} andere {#Übungen}}, zugeordnet zu Lektionen", + "kpi_team_tutors": "{count, plural, one {# tutor on the course team} other {# tutors on the course team}}", + "kpi_lessons_exercises": "{count, plural, one {# exercise} other {# exercises}}, zugeordnet zu Lektionen", "kpi_progress_grade": "{grade} % durchschnittliche Übungsnote aller eingeschriebenen Lernenden" } }, @@ -979,7 +979,7 @@ "signatory_two_name": "Name des Unterzeichners 2", "signatory_two_role": "Rolle des Unterzeichners 2", "id_format": "Zertifikat-ID-Format", - "id_format_hint": "Verwenden Sie „{'seq‘}‘ für die letzten vier Ziffern, „{‘year‘}‘ für das Ausgabejahr und „{‘month‘}‘ für den Monat.", + "id_format_hint": "Verwenden Sie „{'seq'}‘ für die letzten vier Ziffern, „{'year'}‘ für das Ausgabejahr und „{'month'}‘ für den Monat.", "accent_hint": "Die Akzentfarbe wird auf der Empfängerregel, den Stempeln und der Überschriftenhervorhebung der Vorlage angezeigt.", "templates_hint": "Vorlagen werden mit demselben Renderer gerendert, der für die heruntergeladenen PDF- und PNG-Dateien verwendet wird.", "download_pdf": "PDF herunterladen", @@ -1379,7 +1379,9 @@ }, "select_type": "Typ auswählen", "question_type_auto_gradable": "Auto", + "question_type_auto_gradable_description": "Scored automatically by the system", "question_type_manual_grading": "Manual", + "question_type_manual_grading_description": "Requires human review to score", "premium_question_type": "Führen Sie ein Upgrade durch, um diesen Fragetyp zu verwenden" }, "delete_confirmation": { @@ -1837,7 +1839,7 @@ "add_from_library": "Aus Bibliothek hinzufügen", "cancel_upload": "Hochladen abbrechen", "upload_cancelled": "Der Upload wurde vom Benutzer abgebrochen", - "max_files": "{count, plural, one {Sie können # Datei hochladen} other {Sie können # Dateien hochladen}}", + "max_files": "{count, plural, one {You can upload # file} other {You can upload # files}}", "max_files_and_size": "(jeweils bis zu {size})", "google_drive_choose": "Wählen Sie aus Google Drive", "google_drive_opening": "Auswahl öffnen…", @@ -3294,7 +3296,7 @@ "included": { "title": "Ihr inbegriffener Verbrauch", "subtitle": "Monatliche Token sind in Ihrem Plan enthalten.", - "resets_on": "Setzt {Datum} zurück" + "resets_on": "Setzt {date} zurück" } } }, diff --git a/apps/dashboard/src/lib/utils/translations/es.json b/apps/dashboard/src/lib/utils/translations/es.json index 76faa4c4..90609cbd 100644 --- a/apps/dashboard/src/lib/utils/translations/es.json +++ b/apps/dashboard/src/lib/utils/translations/es.json @@ -7,17 +7,17 @@ }, "validations": { "generic": { - "invalid_type": "Tipo no válido{esperado, seleccionado, indefinido{} otro{. Esperado {esperado}}}{recibido, seleccionado, indefinido{} otro{ (recibido {recibido})}}", - "too_big": "El valor es demasiado grande{máximo, selección, undefinido{} otro{. Máximo {máximo}}}", - "too_small": "El valor es demasiado pequeño{mínimo, seleccionado, undefinido{} otro{. Mínimo {mínimo}}}", - "invalid_format": "Formato no válido{validación, selección, indefinido{} otro{ para {validación}}}", + "invalid_type": "Tipo no válido{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "too_big": "El valor es demasiado grande{maximum, select, undefined{} other{. Maximum {maximum}}}", + "too_small": "El valor es demasiado pequeño{minimum, select, undefined{} other{. Minimum {minimum}}}", + "invalid_format": "Formato no válido{validation, select, undefined{} other{ for {validation}}}", "not_multiple_of": "El valor debe ser múltiplo de {multipleOf}", "unrecognized_keys": "Contiene claves no reconocidas{keys, select, undefined{} other{: {keys}}}", "invalid_union": "Valor no válido para las opciones proporcionadas{unionErrors, select, undefined{} other{. {unionErrors} opción(es) fallida(s)}}", - "invalid_key": "Clave no válida{clave, selección, undefinido{} otro{: {clave}}}", - "invalid_element": "Elemento no válido{índice, selección, undefinido{} otro{ en el índice {índice}}}", - "invalid_value": "Valor no válido{esperado, seleccionado, indefinido{} otro{. Esperado {esperado}}}{recibido, seleccionado, indefinido{} otro{ (recibido {recibido})}}", - "custom": "{mensaje}", + "invalid_key": "Clave no válida{key, select, undefined{} other{: {key}}}", + "invalid_element": "Elemento no válido{index, select, undefined{} other{ at index {index}}}", + "invalid_value": "Valor no válido{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "custom": "{message}", "required_field": "Este campo es obligatorio", "invalid_field": "Valor no válido" }, @@ -118,7 +118,7 @@ }, "exercise": { "options": { - "custom": "{mensaje}" + "custom": "{message}" }, "points": { "too_small": "Los puntos deben ser al menos 0." @@ -470,7 +470,7 @@ "title": "Analítica", "courses": "Cursos", "progress": "Progreso", - "progress_description": "{valor, número} de {total, número} completo", + "progress_description": "{value, number} de {total, number} completo", "incomplete": "Incompleto", "completed": "Completado", "complete": "completo", @@ -503,7 +503,7 @@ "view_details": "Ver detalles", "no_students_found": "No se encontraron estudiantes", "no_students_description": "Aún no hay estudiantes matriculados en este curso. Los estudiantes aparecerán aquí una vez que se unan al curso.", - "showing_students": "Mostrando del {inicio} al {fin} de {total} estudiantes", + "showing_students": "Mostrando del {start} al {end} de {total} estudiantes", "no_analytics_data": "Sin datos analíticos", "no_analytics_description": "No se pueden cargar datos analíticos para este curso. Inténtelo de nuevo más tarde o comuníquese con el soporte si el problema persiste.", "student": "estudiante", @@ -531,7 +531,7 @@ "description": "Inscripciones agrupadas por tipo de curso", "subtitle": "{total} inscripciones en todos los tipos", "empty": "Aún no hay datos de matrícula", - "course_count": "{count, plural, one {# curso} otro {# cursos}}", + "course_count": "{count, plural, one {# course} other {# courses}}", "views_short": "vistas", "types": { "SELF_PACED": "a su propio ritmo", @@ -589,8 +589,8 @@ "progress_distribution_card_description": "¿Cuántos alumnos se encuentran en cada banda de finalización?", "grade_distribution_card_description": "Cuántos alumnos se encuentran en cada grupo de grado.", "students_table_description": "Descripción general ordenable con enlaces a perfiles de alumnos.", - "kpi_team_tutors": "{count, plural, one {# tutor en el equipo del curso} other {# tutores en el equipo del curso}}", - "kpi_lessons_exercises": "{count, plural, one {# ejercicio} other {# ejercicios}} asignados a lecciones", + "kpi_team_tutors": "{count, plural, one {# tutor on the course team} other {# tutors on the course team}}", + "kpi_lessons_exercises": "{count, plural, one {# exercise} other {# exercises}} asignados a lecciones", "kpi_progress_grade": "{grade}% de calificación promedio de ejercicio entre los estudiantes inscritos" } }, @@ -1109,7 +1109,7 @@ "snackbar_failed_revoke_invite": "No se pudo revocar la invitación", "snackbar_failed_load_audit": "No se pudo cargar la auditoría de invitación", "snackbar_metadata_copied": "Metadatos de invitación copiados", - "snackbar_email_invites_success": "Se crearon {count} invitaciones. Enviado {enviado}, falló {falló}. Se omitieron {duplicados} duplicados.", + "snackbar_email_invites_success": "Se crearon {count} invitaciones. Enviado {sent}, falló {failed}. Se omitieron {duplicates} duplicados.", "select_at_least_one_student": "Select at least one existing student", "presets": { "one_time_24h": "Una vez (24h)", @@ -1342,7 +1342,7 @@ "checking_submission": "Comprobando tu envío...", "answer_required": "Por favor responda esta pregunta antes de continuar.", "instructor_feedback": "Comentarios del instructor", - "attempt_counter": "Intento {actual} de {total}", + "attempt_counter": "Intento {current} de {total}", "previous_try": "Intento anterior", "next_try": "Próximo intento", "try_again": "Inténtalo de nuevo", @@ -1379,7 +1379,9 @@ }, "select_type": "Seleccionar tipo", "question_type_auto_gradable": "Auto", + "question_type_auto_gradable_description": "Scored automatically by the system", "question_type_manual_grading": "Manual", + "question_type_manual_grading_description": "Requires human review to score", "premium_question_type": "Actualice para usar este tipo de pregunta" }, "delete_confirmation": { @@ -1439,7 +1441,7 @@ "helper": "Arrastra los elementos para definir el orden correcto.", "add_step": "Agregar paso", "empty": "Agregue pasos y luego arrastre para establecer el orden esperado.", - "step_placeholder": "Paso '{'índice'}'", + "step_placeholder": "Paso '{'index'}'", "remove_step_tooltip": "Quitar paso" } }, @@ -1457,7 +1459,7 @@ "link": { "preview": { "empty": "No se enviaron enlaces.", - "item_label": "Enlace '{'índice'}'" + "item_label": "Enlace '{'index'}'" }, "take": { "helper": "Agregue uno o más enlaces. Sólo se aceptan URL http/https válidas.", @@ -1781,7 +1783,7 @@ "upload_success": "¡Documento cargado exitosamente!", "upload_error": "No se pudo cargar el documento", "file_type_error": "Tipo de archivo no compatible. Cargue archivos PDF, DOCX o DOC.", - "file_size_error": "El tamaño del archivo es demasiado grande. El tamaño máximo es {tamaño}.", + "file_size_error": "El tamaño del archivo es demasiado grande. El tamaño máximo es {size}.", "type": "Tipo", "size": "Tamaño", "upload_error_title": "Error de carga", @@ -1795,7 +1797,7 @@ "view_pdf": "Ver PDF", "remove_document": "Quitar documento", "delete": "Eliminar", - "page_of": "Página {página} de {total}", + "page_of": "Página {page} de {total}", "loading_pdf": "Cargando PDF...", "failed_to_load_pdf": "No se pudo cargar el documento PDF", "failed_to_render_pdf": "No se pudo renderizar la página PDF", @@ -1837,8 +1839,8 @@ "add_from_library": "Agregar desde la biblioteca", "cancel_upload": "Cancelar carga", "upload_cancelled": "Subida cancelada por el usuario", - "max_files": "{count, plural, one {Puedes subir # archivo} other {Puedes subir # archivos}}", - "max_files_and_size": "(hasta {tamaño} cada uno)", + "max_files": "{count, plural, one {You can upload # file} other {You can upload # files}}", + "max_files_and_size": "(hasta {size} cada uno)", "google_drive_choose": "Elige desde Google Drive", "google_drive_opening": "Selector de apertura…", "google_drive_hint": "Elija un vídeo de su cuenta de Google. Cualquiera que vea la lección necesita acceso; configure el uso compartido en Drive en \"Cualquier persona con el enlace puede ver\" (o el equivalente de su organización).", @@ -2079,7 +2081,7 @@ "back_to_course": "volver al curso", "content_count": { "lessons": "{count} lecciones", - "exercises": "{contar} ejercicios" + "exercises": "{count} ejercicios" }, "compliance": { "title": "Cumplimiento", @@ -2327,19 +2329,19 @@ "learner": "aprendiz", "progress": "Progreso", "pick_up_where_you_left_off": "Continua donde lo dejaste", - "course_awaits_you": "{título} te espera", + "course_awaits_you": "{title} te espera", "learning_awaits_you": "Tu próximo curso te espera", - "lms_today_progress": "Estás {progresando}% en tu aprendizaje: cada paso cuenta.", + "lms_today_progress": "Estás {progress}% en tu aprendizaje: cada paso cuenta.", "lms_today_empty": "Tu camino de aprendizaje estará listo cuando tú lo estés.", "compliance_score": "Puntuación de cumplimiento", "compliance": "Cumplimiento", - "compliance_score_subtitle": "{completado} de {total} cursos de cumplimiento actualmente satisfechos", + "compliance_score_subtitle": "{completed} de {total} cursos de cumplimiento actualmente satisfechos", "compliance_score_empty": "Aún no se han asignado cursos de cumplimiento", - "compliance_met": "{completado} de {total} cumplido", - "required_courses_completed": "{completado} de {total} cursos requeridos completados", + "compliance_met": "{completed} de {total} cumplido", + "required_courses_completed": "{completed} de {total} cursos requeridos completados", "streak": "racha", "days_active": "dias activos", - "items_done": "{completado} de {total} hecho", + "items_done": "{completed} de {total} hecho", "login_activity_title": "Actividad de inicio de sesión del estudiante", "login_activity_description": "Días más activos de la semana (últimos 90 días)", "login_activity_no_data": "Aún no hay actividad de inicio de sesión", @@ -3050,7 +3052,7 @@ "field_theme": "Tema", "field_hero": "Título del héroe", "field_nav": "Navegación", - "field_nav_count_one": "{contar} enlace", + "field_nav_count_one": "{count} enlace", "field_nav_count_other": "{count} enlaces", "hero_empty": "—", "customize": "Personalizar la página de destino" @@ -3220,7 +3222,7 @@ "login": { "sso_redirect_error": "El inicio de sesión SSO está mal configurado. Configure PUBLIC_SERVER_URL en su servidor API.", "sso_required": "Inicie sesión con SSO. El inicio de sesión con contraseña está deshabilitado.", - "sign_in_with_sso": "Iniciar sesión con {proveedor}", + "sign_in_with_sso": "Iniciar sesión con {provider}", "email_password_disabled": "El inicio de sesión por correo electrónico/contraseña está deshabilitado. Utilice SSO.", "email_password_disabled_message": "El inicio de sesión con correo electrónico/contraseña está deshabilitado para esta organización.", "google_auth_disabled": "La autenticación de Google está deshabilitada.", @@ -3266,8 +3268,8 @@ "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}" + "preview": "{quantity} paquete(s) · {tokens} tokens · ${dollars}", + "buy_button": "Compra por ${dollars}" }, "leaderboard": { "title": "Uso del equipo", @@ -3294,7 +3296,7 @@ "included": { "title": "Su uso incluido", "subtitle": "Fichas mensuales incluidas en tu plan.", - "resets_on": "Restablece {fecha}" + "resets_on": "Restablece {date}" } } }, @@ -3702,7 +3704,7 @@ "no_available_courses": "No hay cursos disponibles para agregar.", "no_matching_courses": "Ningún curso coincide con tu búsqueda.", "no_matching_program_courses": "Ningún programa de cursos coincide con su búsqueda.", - "pagination_status": "Página {página} de {totalPages}", + "pagination_status": "Página {page} de {totalPages}", "published_access_callout_title": "Acceso de estudiantes", "published_access_callout_description": "Los estudiantes solo tienen acceso a los cursos publicados. Los cursos pueden estar en este programa para su equipo mientras aún no están publicados, mientras que permanecen ocultos para los estudiantes hasta que los publique." }, @@ -3967,10 +3969,10 @@ "rename_chat_placeholder": "Título de la conversación", "rename_chat_failed": "No se pudo cambiar el nombre de esta conversación. Intentar otra vez.", "error_rate_limit": "El servicio de IA está temporalmente ocupado. Inténtelo de nuevo en un momento.", - "error_rate_limit_with_wait": "El servicio de IA está temporalmente ocupado. Inténtalo de nuevo en {segundos} segundos.", + "error_rate_limit_with_wait": "El servicio de IA está temporalmente ocupado. Inténtalo de nuevo en {seconds} segundos.", "error_context_too_long": "La conversación es demasiado larga. Intente iniciar un nuevo chat o acortar su mensaje.", "error_network": "Error de red. Por favor verifique su conexión e inténtelo nuevamente.", - "context_usage_tooltip": "{usados} / {max} tokens usados", + "context_usage_tooltip": "{used} / {max} tokens usados", "context_full_title": "La ventana de contexto está llena", "context_full_description": "The assistant will summarize older messages automatically so you can keep working in this chat.", "context_full_compact": "Conversación compacta", @@ -3996,7 +3998,7 @@ "completed": "Ejecución completada.", "completed_with_counts": "Ejecución completada: creada {counts}.", "failed": "La ejecución falló.", - "failed_with_reason": "La ejecución falló: {motivo}.", + "failed_with_reason": "La ejecución falló: {reason}.", "canceled": "Ejecución cancelada.", "canceled_with_counts": "Ejecución cancelada: creó {counts} antes de detenerse.", "paused": "Ejecución pausada. Reanudar para continuar.", @@ -4260,7 +4262,7 @@ "subtitle": "Realice un seguimiento del estado de la certificación en todos los cursos de cumplimiento de su organización.", "learners": { "heading": "Estudiantes", - "subtitle": "{recuento, número} coincidente", + "subtitle": "{count, number} coincidente", "empty": "Ningún alumno coincide con este filtro", "learner": "aprendiz", "course": "Curso", @@ -4311,7 +4313,7 @@ "submit": "revisa mis respuestas", "try_again": "Inténtalo de nuevo", "practice_again": "Practica de nuevo", - "attempt_option": "Intento {númerointento} - {correcto}/{total}", + "attempt_option": "Intento {attemptNumber} - {correct}/{total}", "attempts_select_aria": "Tus intentos", "privacy_hint": "Calificado instantáneamente en su navegador: no se envía nada.", "summary_template": "Obtuviste [[correcto]] / [[total]] correcto." @@ -4334,7 +4336,7 @@ "page_title": "Espacios de trabajo", "page_description": "Administre los espacios de trabajo de su cuenta. Los espacios de trabajo comparten una única suscripción y un uso conjunto.", "create_cta": "Crear espacio de trabajo", - "create_cta_used": "{usado} de {asignación} usado", + "create_cta_used": "{used} de {allowance} usado", "create_cta_disabled_limit": "Has alcanzado el límite del espacio de trabajo de {allowance}. Contáctanos para ampliar.", "create_cta_disabled_upgrade": "El espacio de trabajo múltiple es una característica empresarial.", "upgrade_link": "Actualizar", diff --git a/apps/dashboard/src/lib/utils/translations/fr.json b/apps/dashboard/src/lib/utils/translations/fr.json index f9a89438..7340ca20 100644 --- a/apps/dashboard/src/lib/utils/translations/fr.json +++ b/apps/dashboard/src/lib/utils/translations/fr.json @@ -7,16 +7,16 @@ }, "validations": { "generic": { - "invalid_type": "Type non valide{attendu, sélectionné, non défini{} autre{. Attendu {attendu}}}{reçu, sélectionné, non défini{} autre{ (reçu {reçu})}}", - "too_big": "La valeur est trop grande{maximum, select, undefined{} autre{. Maximum {maximum}}}", - "too_small": "La valeur est trop petite{minimum, select, undefined{} autre{. Minimum {minimum}}}", - "invalid_format": "Format invalide{validation, select, non défini{} autre{ pour {validation}}}", + "invalid_type": "Type non valide{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "too_big": "La valeur est trop grande{maximum, select, undefined{} other{. Maximum {maximum}}}", + "too_small": "La valeur est trop petite{minimum, select, undefined{} other{. Minimum {minimum}}}", + "invalid_format": "Format invalide{validation, select, undefined{} other{ for {validation}}}", "not_multiple_of": "La valeur doit être un multiple de {multipleOf}", "unrecognized_keys": "Contient des clés non reconnues{keys, select, undefined{} other{: {keys}}}", "invalid_union": "Valeur non valide pour les options fournies {unionErrors, select, undefined{} other{. {unionErrors} option(s) a échoué}}", "invalid_key": "Clé invalide{key, select, undefined{} other{: {key}}}", - "invalid_element": "Élément invalide{index, select, undefined{} autre{ à l'index {index}}}", - "invalid_value": "Valeur non valide{attendue, sélectionnée, non définie{} autre{. Attendu {attendu}}}{reçu, sélectionné, non défini{} autre{ (reçu {reçu})}}", + "invalid_element": "Élément invalide{index, select, undefined{} other{ at index {index}}}", + "invalid_value": "Valeur non valide{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", "custom": "{message}", "required_field": "Ce champ est obligatoire", "invalid_field": "Valeur invalide" @@ -531,7 +531,7 @@ "description": "Inscriptions regroupées par type de cours", "subtitle": "{total} inscriptions dans tous les types", "empty": "Aucune donnée d'inscription pour l'instant", - "course_count": "{count, pluriel, un {# cours} autre {# cours}}", + "course_count": "{count, plural, one {# course} other {# courses}}", "views_short": "vues", "types": { "SELF_PACED": "À votre rythme", @@ -589,8 +589,8 @@ "progress_distribution_card_description": "Combien d’apprenants entrent dans chaque tranche d’achèvement.", "grade_distribution_card_description": "Combien d’apprenants appartiennent à chaque tranche scolaire.", "students_table_description": "Aperçu triable avec des liens vers les profils d'apprenants.", - "kpi_team_tutors": "{count, pluriel, un {# tuteur dans l'équipe du cours} autre {# tuteurs dans l'équipe du cours}}", - "kpi_lessons_exercises": "{compte, pluriel, un {# exercice} autre {# exercices}} mappés aux leçons", + "kpi_team_tutors": "{count, plural, one {# tutor on the course team} other {# tutors on the course team}}", + "kpi_lessons_exercises": "{count, plural, one {# exercise} other {# exercises}} mappés aux leçons", "kpi_progress_grade": "{grade} % de note moyenne d'exercice parmi les apprenants inscrits" } }, @@ -1109,7 +1109,7 @@ "snackbar_failed_revoke_invite": "Échec de la révocation de l'invitation", "snackbar_failed_load_audit": "Échec du chargement de l'audit d'invitation", "snackbar_metadata_copied": "Métadonnées d'invitation copiées", - "snackbar_email_invites_success": "{count} invitation(s) créée(s). Envoyé {envoyé}, échec {échec}. {duplicates} doublon(s) ignoré(s).", + "snackbar_email_invites_success": "{count} invitation(s) créée(s). Envoyé {sent}, échec {failed}. {duplicates} doublon(s) ignoré(s).", "select_at_least_one_student": "Select at least one existing student", "presets": { "one_time_24h": "Une fois (24h)", @@ -1342,7 +1342,7 @@ "checking_submission": "Vérification de votre soumission...", "answer_required": "Veuillez répondre à cette question avant de continuer.", "instructor_feedback": "Commentaires de l'instructeur", - "attempt_counter": "Tentative {actuelle} de {total}", + "attempt_counter": "Tentative {current} de {total}", "previous_try": "Tentative précédente", "next_try": "Prochaine tentative", "try_again": "Réessayez", @@ -1379,7 +1379,9 @@ }, "select_type": "Sélectionnez le type", "question_type_auto_gradable": "Auto", + "question_type_auto_gradable_description": "Scored automatically by the system", "question_type_manual_grading": "Manual", + "question_type_manual_grading_description": "Requires human review to score", "premium_question_type": "Mettre à niveau pour utiliser ce type de question" }, "delete_confirmation": { @@ -1837,8 +1839,8 @@ "add_from_library": "Ajouter depuis la bibliothèque", "cancel_upload": "Annuler le téléchargement", "upload_cancelled": "Téléchargement annulé par l'utilisateur", - "max_files": "{count, plural, one {Vous pouvez télécharger # fichier} other {Vous pouvez télécharger # fichiers}}", - "max_files_and_size": "(jusqu'à {taille} chacun)", + "max_files": "{count, plural, one {You can upload # file} other {You can upload # files}}", + "max_files_and_size": "(jusqu'à {size} chacun)", "google_drive_choose": "Choisissez parmi Google Drive", "google_drive_opening": "Sélecteur d’ouverture…", "google_drive_hint": "Choisissez une vidéo sur votre compte Google. Toute personne qui consulte la leçon doit y accéder : définissez le partage dans Drive sur \"Toute personne disposant du lien peut consulter\" (ou l'équivalent de votre organisation).", @@ -1973,7 +1975,7 @@ "user_avatar_alt": "Avatar de l'utilisateur", "comments": { "comment": "commentaire", - "showing_of": "Affichage de {montré} sur {total}", + "showing_of": "Affichage de {shown} sur {total}", "hide": "Masquer les commentaires", "placeholder": "Ajouter un commentaire de classe", "submit_aria": "Soumettre un commentaire", @@ -2124,7 +2126,7 @@ "final_exercise_helper": "Une fois défini, les élèves doivent atteindre au moins le score minimum pour cet exercice (la meilleure tentative compte) en plus du pourcentage d'achèvement ci-dessus.", "min_exercise_score_label": "Note minimale à l'exercice final (%)", "min_exercise_score_helper": "Le score est un pourcentage du total de points possibles sur cet exercice (0 à 100).", - "blocker_progress": "La progression de votre cours est de {current} % ; {obligatoire} % est requis.", + "blocker_progress": "La progression de votre cours est de {current} % ; {required} % est requis.", "blocker_deadline": "La date limite de certification est dépassée.", "blocker_no_content": "Ce cours ne comporte aucune leçon ni exercice à réaliser.", "blocker_final_not_submitted": "Soumettez l'exercice requis \"{exerciseTitle}\" pour être admissible au certificat.", @@ -2327,19 +2329,19 @@ "learner": "Apprenant", "progress": "Progrès", "pick_up_where_you_left_off": "Reprenez là où vous vous étiez arrêté", - "course_awaits_you": "{titre} vous attend", + "course_awaits_you": "{title} vous attend", "learning_awaits_you": "Votre prochain cours vous attend", "lms_today_progress": "Vous avez progressé de {progress} % dans votre apprentissage : chaque étape compte.", "lms_today_empty": "Votre parcours d’apprentissage est prêt quand vous l’êtes.", "compliance_score": "Score de conformité", "compliance": "Conformité", - "compliance_score_subtitle": "{terminé} sur {total} cours de conformité actuellement suivis", + "compliance_score_subtitle": "{completed} sur {total} cours de conformité actuellement suivis", "compliance_score_empty": "Aucun cours de conformité attribué pour l'instant", - "compliance_met": "{terminé} sur {total} atteint", - "required_courses_completed": "{terminé} sur {total} cours obligatoires terminés", + "compliance_met": "{completed} sur {total} atteint", + "required_courses_completed": "{completed} sur {total} cours obligatoires terminés", "streak": "Série", "days_active": "jours d'activité", - "items_done": "{terminé} sur {total} réalisé", + "items_done": "{completed} sur {total} réalisé", "login_activity_title": "Activité de connexion des étudiants", "login_activity_description": "Jours les plus actifs de la semaine (90 derniers jours)", "login_activity_no_data": "Aucune activité de connexion pour le moment", @@ -3266,7 +3268,7 @@ "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}", + "preview": "{quantity} pack(s) · {tokens} jetons · ${dollars}", "buy_button": "Achetez pour ${dollars}" }, "leaderboard": { @@ -3724,7 +3726,7 @@ "user_avatar_alt": "Avatar de l'utilisateur", "comments": { "comment": "commentaire", - "showing_of": "Affichage de {montré} sur {total}", + "showing_of": "Affichage de {shown} sur {total}", "hide": "Masquer les commentaires", "placeholder": "Ajouter un commentaire sur le programme", "submit_aria": "Soumettre un commentaire", @@ -3970,7 +3972,7 @@ "error_rate_limit_with_wait": "Le service AI est temporairement occupé. Veuillez réessayer dans {seconds} secondes.", "error_context_too_long": "La conversation est trop longue. Essayez de démarrer une nouvelle discussion ou de raccourcir votre message.", "error_network": "Erreur réseau. Veuillez vérifier votre connexion et réessayer.", - "context_usage_tooltip": "{utilisé} / {max} jetons utilisés", + "context_usage_tooltip": "{used} / {max} jetons utilisés", "context_full_title": "La fenêtre contextuelle est pleine", "context_full_description": "The assistant will summarize older messages automatically so you can keep working in this chat.", "context_full_compact": "Conversation compacte", @@ -3996,7 +3998,7 @@ "completed": "Exécution terminée.", "completed_with_counts": "Exécution terminée – créé {counts}.", "failed": "L'exécution a échoué.", - "failed_with_reason": "Échec de l'exécution – {raison}.", + "failed_with_reason": "Échec de l'exécution – {reason}.", "canceled": "Exécution annulée.", "canceled_with_counts": "Exécution annulée – créé {counts} avant de s'arrêter.", "paused": "Exécution en pause. Reprendre pour continuer.", @@ -4334,7 +4336,7 @@ "page_title": "Espaces de travail", "page_description": "Gérez les espaces de travail sous votre compte. Les espaces de travail partagent un abonnement unique et une utilisation mutualisée.", "create_cta": "Créer un espace de travail", - "create_cta_used": "{utilisé} sur {allocation} utilisé", + "create_cta_used": "{used} sur {allowance} utilisé", "create_cta_disabled_limit": "Vous avez atteint la limite d'espace de travail {allowance}. Contactez-nous pour vous développer.", "create_cta_disabled_upgrade": "Le multi-espace de travail est une fonctionnalité d'entreprise.", "upgrade_link": "Mise à niveau", diff --git a/apps/dashboard/src/lib/utils/translations/hi.json b/apps/dashboard/src/lib/utils/translations/hi.json index baa374c7..2cad4b81 100644 --- a/apps/dashboard/src/lib/utils/translations/hi.json +++ b/apps/dashboard/src/lib/utils/translations/hi.json @@ -7,17 +7,17 @@ }, "validations": { "generic": { - "invalid_type": "अमान्य प्रकार{अपेक्षित, चयन, अपरिभाषित{} अन्य{। अपेक्षित {अपेक्षित}} {प्राप्त, चयन, अपरिभाषित {} अन्य { (प्राप्त {प्राप्त})}}", - "too_big": "मान बहुत बड़ा है {अधिकतम, चयन करें, अपरिभाषित {} अन्य {। अधिकतम {अधिकतम}}}", - "too_small": "मान बहुत छोटा है {न्यूनतम, चयन करें, अपरिभाषित {} अन्य {। न्यूनतम {न्यूनतम}}}", - "invalid_format": "अमान्य प्रारूप{सत्यापन, चयन, अपरिभाषित{} अन्य{ {सत्यापन}}} के लिए", + "invalid_type": "अमान्य प्रकार{expected, select, undefined{} other{। अपेक्षित {expected}}}{received, select, undefined{} other{ (प्राप्त {received})}}", + "too_big": "मान बहुत बड़ा है {maximum, select, undefined{} other{. Maximum {maximum}}}", + "too_small": "मान बहुत छोटा है {minimum, select, undefined{} other{. Minimum {minimum}}}", + "invalid_format": "अमान्य प्रारूप{validation, select, undefined{} other{ {validation} के लिए}}", "not_multiple_of": "मान {multipleOf} का गुणज होना चाहिए", - "unrecognized_keys": "अज्ञात कुंजियाँ शामिल हैं {कुंजियाँ, चयन करें, अपरिभाषित{} अन्य{: {कुंजियाँ}}}", - "invalid_union": "प्रदत्त विकल्पों के लिए अमान्य मान {संघत्रुटि, चयन, अपरिभाषित{} अन्य{। {unionErrors} विकल्प विफल रहे}}", - "invalid_key": "अमान्य कुंजी{कुंजी, चयन, अपरिभाषित{} अन्य{: {कुंजी}}}", - "invalid_element": "अमान्य तत्व {सूचकांक, चयन, अपरिभाषित {} अन्य {सूचकांक {सूचकांक}}} पर", - "invalid_value": "अमान्य मान{अपेक्षित, चयन, अपरिभाषित{} अन्य{। अपेक्षित {अपेक्षित}} {प्राप्त, चयन, अपरिभाषित {} अन्य { (प्राप्त {प्राप्त})}}", - "custom": "{संदेश}", + "unrecognized_keys": "अज्ञात कुंजियाँ शामिल हैं {keys, select, undefined{} other{: {keys}}}", + "invalid_union": "प्रदत्त विकल्पों के लिए अमान्य मान {unionErrors, select, undefined{} other{. {unionErrors} option(s) failed}}", + "invalid_key": "अमान्य कुंजी{key, select, undefined{} other{: {key}}}", + "invalid_element": "अमान्य तत्व{index, select, undefined{} other{ {index} पर}}", + "invalid_value": "अमान्य मान{expected, select, undefined{} other{। अपेक्षित {expected}}}{received, select, undefined{} other{ (प्राप्त {received})}}", + "custom": "{message}", "required_field": "यह फ़ील्ड आवश्यक है", "invalid_field": "अमान्य मान" }, @@ -118,7 +118,7 @@ }, "exercise": { "options": { - "custom": "{संदेश}" + "custom": "{message}" }, "points": { "too_small": "अंक कम से कम 0 होने चाहिए" @@ -470,7 +470,7 @@ "title": "विश्लेषिकी", "courses": "पाठ्यक्रम", "progress": "प्रगति", - "progress_description": "{कुल, संख्या} का {मूल्य, संख्या} पूर्ण", + "progress_description": "{value, number} का {total, number} पूर्ण", "incomplete": "अधूरा", "completed": "पूरा हुआ", "complete": "पूर्ण", @@ -503,7 +503,7 @@ "view_details": "विवरण देखें", "no_students_found": "कोई छात्र नहीं मिला", "no_students_description": "इस पाठ्यक्रम में अभी तक कोई भी छात्र नामांकित नहीं है। पाठ्यक्रम में शामिल होने के बाद छात्र यहां उपस्थित होंगे।", - "showing_students": "{कुल} छात्रों को {प्रारंभ} से {अंत} तक दिखाया जा रहा है", + "showing_students": "{start} छात्रों को {end} से {total} तक दिखाया जा रहा है", "no_analytics_data": "कोई एनालिटिक्स डेटा नहीं", "no_analytics_description": "इस पाठ्यक्रम के लिए विश्लेषणात्मक डेटा लोड करने में असमर्थ. कृपया बाद में पुनः प्रयास करें या यदि समस्या बनी रहती है तो सहायता से संपर्क करें।", "student": "छात्र", @@ -529,9 +529,9 @@ "popularTypes": { "heading": "लोकप्रिय पाठ्यक्रम प्रकार", "description": "नामांकन पाठ्यक्रम प्रकार के आधार पर समूहीकृत किए गए", - "subtitle": "सभी प्रकार के लिए {कुल} नामांकन", + "subtitle": "सभी प्रकार के लिए {total} नामांकन", "empty": "अभी तक कोई नामांकन डेटा नहीं है", - "course_count": "{गिनती, बहुवचन, एक {# पाठ्यक्रम} अन्य {# पाठ्यक्रम}}", + "course_count": "{count, plural, one {# course} other {# courses}}", "views_short": "विचार", "types": { "SELF_PACED": "स्वयं गतिमान", @@ -542,7 +542,7 @@ }, "countries": { "heading": "शीर्ष देश", - "subtitle": "कुल {कुल} विज़िटर", + "subtitle": "कुल {total} विज़िटर", "empty": "अभी तक कोई स्थान डेटा नहीं", "country": "देश", "visitors": "आगंतुक", @@ -589,9 +589,9 @@ "progress_distribution_card_description": "प्रत्येक समापन बैंड में कितने शिक्षार्थी आते हैं।", "grade_distribution_card_description": "प्रत्येक ग्रेड बैंड में कितने शिक्षार्थी आते हैं।", "students_table_description": "शिक्षार्थी प्रोफाइल के लिंक के साथ क्रमबद्ध अवलोकन।", - "kpi_team_tutors": "{गिनती, बहुवचन, एक {# पाठ्यक्रम टीम पर शिक्षक} अन्य {# पाठ्यक्रम टीम पर शिक्षक}}", - "kpi_lessons_exercises": "{गिनती, बहुवचन, एक {# व्यायाम} अन्य {# अभ्यास}} पाठों के अनुसार मैप किया गया", - "kpi_progress_grade": "नामांकित शिक्षार्थियों में {ग्रेड}% औसत व्यायाम ग्रेड" + "kpi_team_tutors": "{count, plural, one {# tutor on the course team} other {# tutors on the course team}}", + "kpi_lessons_exercises": "{count, plural, one {# exercise} other {# exercises}} पाठों के अनुसार मैप किया गया", + "kpi_progress_grade": "नामांकित शिक्षार्थियों में {grade}% औसत व्यायाम ग्रेड" } }, "audience": { @@ -611,7 +611,7 @@ "status_expired": "समाप्त हो गया", "status_revoked": "निरस्त किया गया", "select_all": "सभी का चयन करें", - "selected_count": "{गिनती} चयनित", + "selected_count": "{count} चयनित", "assign_courses": "पाठ्यक्रमों को असाइन करें", "invite": { "row_actions_aria": "खुली कार्रवाइयां", @@ -1109,7 +1109,7 @@ "snackbar_failed_revoke_invite": "आमंत्रण रद्द करने में विफल", "snackbar_failed_load_audit": "आमंत्रण ऑडिट लोड करने में विफल", "snackbar_metadata_copied": "आमंत्रण मेटाडेटा कॉपी किया गया", - "snackbar_email_invites_success": "{गिनती} आमंत्रण बनाया गया। भेजा गया {भेजा गया}, असफल हुआ {असफल}। {डुप्लिकेट} डुप्लिकेट को छोड़ दिया गया।", + "snackbar_email_invites_success": "{count} आमंत्रण बनाया गया। भेजा गया {sent}, असफल हुआ {failed}। {duplicates} डुप्लिकेट को छोड़ दिया गया।", "select_at_least_one_student": "Select at least one existing student", "presets": { "one_time_24h": "एक बार (24 घंटे)", @@ -1342,7 +1342,7 @@ "checking_submission": "आपके सबमिशन की जाँच की जा रही है...", "answer_required": "कृपया आगे बढ़ने से पहले इस प्रश्न का उत्तर दें।", "instructor_feedback": "प्रशिक्षक प्रतिक्रिया", - "attempt_counter": "{कुल} का {वर्तमान} प्रयास करें", + "attempt_counter": "{current} का {total} प्रयास करें", "previous_try": "पिछला प्रयास", "next_try": "अगला प्रयास", "try_again": "पुनः प्रयास करें", @@ -1379,7 +1379,9 @@ }, "select_type": "प्रकार चुनें", "question_type_auto_gradable": "Auto", + "question_type_auto_gradable_description": "Scored automatically by the system", "question_type_manual_grading": "Manual", + "question_type_manual_grading_description": "Requires human review to score", "premium_question_type": "इस प्रश्न प्रकार का उपयोग करने के लिए अपग्रेड करें" }, "delete_confirmation": { @@ -1439,7 +1441,7 @@ "helper": "सही क्रम परिभाषित करने के लिए आइटम खींचें।", "add_step": "चरण जोड़ें", "empty": "चरण जोड़ें, फिर अपेक्षित क्रम सेट करने के लिए खींचें।", - "step_placeholder": "चरण '{'सूचकांक'}'", + "step_placeholder": "चरण '{'index'}'", "remove_step_tooltip": "चरण हटाएँ" } }, @@ -1457,7 +1459,7 @@ "link": { "preview": { "empty": "कोई लिंक सबमिट नहीं किया गया.", - "item_label": "लिंक '{'सूचकांक'}'" + "item_label": "लिंक '{'index'}'" }, "take": { "helper": "एक या अधिक लिंक जोड़ें. केवल वैध http/https यूआरएल ही स्वीकार किए जाते हैं।", @@ -1638,7 +1640,7 @@ }, "take": { "helper": "अपनी रेटिंग चुनें.", - "star_sr": "'{'अधिकतम'}' का तारा '{'n'}'" + "star_sr": "'{'n'}' का तारा '{'max'}'" }, "edit": { "correct_value_label": "सही तारा मान", @@ -1795,7 +1797,7 @@ "view_pdf": "पीडीएफ देखें", "remove_document": "दस्तावेज़ हटाएँ", "delete": "हटाएँ", - "page_of": "{कुल} का पेज {पेज}", + "page_of": "{page} का पेज {total}", "loading_pdf": "पीडीएफ लोड हो रहा है...", "failed_to_load_pdf": "पीडीएफ दस्तावेज़ लोड करने में विफल", "failed_to_render_pdf": "पीडीएफ पेज प्रस्तुत करने में विफल", @@ -1837,8 +1839,8 @@ "add_from_library": "लाइब्रेरी से जोड़ें", "cancel_upload": "अपलोड रद्द करें", "upload_cancelled": "उपयोगकर्ता द्वारा अपलोड रद्द कर दिया गया", - "max_files": "{गिनती, बहुवचन, एक {आप # फ़ाइल अपलोड कर सकते हैं} अन्य {आप # फ़ाइलें अपलोड कर सकते हैं}}", - "max_files_and_size": "(प्रत्येक {आकार} तक)", + "max_files": "{count, plural, one {You can upload # file} other {You can upload # files}}", + "max_files_and_size": "(प्रत्येक {size} तक)", "google_drive_choose": "Google Drive से चुनें", "google_drive_opening": "पिकर खुल रहा है...", "google_drive_hint": "अपने Google खाते से एक वीडियो चुनें. पाठ को देखने वाले किसी भी व्यक्ति को एक्सेस की आवश्यकता है - ड्राइव में साझाकरण को \"लिंक वाला कोई भी व्यक्ति देख सकता है\" (या आपके संगठन के समकक्ष) पर सेट करें।", @@ -1973,7 +1975,7 @@ "user_avatar_alt": "उपयोगकर्ता अवतार", "comments": { "comment": "टिप्पणी", - "showing_of": "{कुल} में से {दिखाया गया}", + "showing_of": "{shown} में से {total}", "hide": "टिप्पणियाँ छिपाएँ", "placeholder": "कक्षा टिप्पणी जोड़ें", "submit_aria": "टिप्पणी सबमिट करें", @@ -2037,7 +2039,7 @@ "title": "थोक क्रियाएं", "description": "शिक्षार्थियों का चयन करें और उनके वर्तमान चक्र पर अनुपालन कार्रवाई लागू करें।", "select_all": "सभी दृश्यमान शिक्षार्थियों का चयन करें", - "selected_count": "{गिनती} चयनित", + "selected_count": "{count} चयनित", "clear_selection": "स्पष्ट चयन", "due_date_label": "नियत तिथि", "due_date_helper": "कार्यों को रीसेट करने और विस्तारित करने के लिए उपयोग किया जाता है।", @@ -2051,7 +2053,7 @@ "waiver_expires_at_helper": "यदि छूट स्वतः समाप्त नहीं होनी चाहिए तो खाली छोड़ दें।", "waive_action": "छूट लागू करें", "modal": { - "description": "आप चयनित शिक्षार्थियों की {गिनती} अद्यतन कर रहे हैं।", + "description": "आप चयनित शिक्षार्थियों की {count} अद्यतन कर रहे हैं।", "cancel": "रद्द करें", "apply": "कार्रवाई लागू करें" } @@ -2078,8 +2080,8 @@ "sidebar": { "back_to_course": "पाठ्यक्रम पर वापस जाएँ", "content_count": { - "lessons": "{गिनती} पाठ", - "exercises": "{गिनती} अभ्यास" + "lessons": "{count} पाठ", + "exercises": "{count} अभ्यास" }, "compliance": { "title": "अनुपालन", @@ -2111,7 +2113,7 @@ } }, "certificates": { - "progress_hint": "{वर्तमान}% पूर्ण (डाउनलोड करने के लिए {आवश्यक}% आवश्यक)" + "progress_hint": "{current}% पूर्ण (डाउनलोड करने के लिए {required}% आवश्यक)" }, "certification": { "rules_heading": "नियम", @@ -2124,7 +2126,7 @@ "final_exercise_helper": "निर्धारित होने पर, छात्रों को उपरोक्त पूर्णता प्रतिशत के अलावा इस अभ्यास पर कम से कम न्यूनतम अंक (सर्वोत्तम प्रयास मायने रखता है) तक पहुंचना होगा।", "min_exercise_score_label": "अंतिम अभ्यास पर न्यूनतम स्कोर (%)", "min_exercise_score_helper": "स्कोर उस अभ्यास पर संभावित कुल अंकों का एक प्रतिशत है (0-100)।", - "blocker_progress": "आपके पाठ्यक्रम की प्रगति {वर्तमान}% है; {आवश्यक}% आवश्यक है.", + "blocker_progress": "आपके पाठ्यक्रम की प्रगति {current}% है; {required}% आवश्यक है.", "blocker_deadline": "प्रमाणन की समय सीमा बीत चुकी है.", "blocker_no_content": "इस पाठ्यक्रम में पूरा करने के लिए कोई पाठ या अभ्यास नहीं है।", "blocker_final_not_submitted": "प्रमाणपत्र के लिए अर्हता प्राप्त करने के लिए आवश्यक अभ्यास \"{exerciseTitle}\" सबमिट करें।", @@ -2327,19 +2329,19 @@ "learner": "शिक्षार्थी", "progress": "प्रगति", "pick_up_where_you_left_off": "वहीं से शुरू करें जहां आपने छोड़ा था", - "course_awaits_you": "{शीर्षक} आपकी प्रतीक्षा कर रहा है", + "course_awaits_you": "{title} आपकी प्रतीक्षा कर रहा है", "learning_awaits_you": "आपका अगला कोर्स आपका इंतजार कर रहा है", - "lms_today_progress": "आप अपने सीखने के माध्यम से {प्रगति}% कर रहे हैं - हर कदम मायने रखता है।", + "lms_today_progress": "आप अपने सीखने के माध्यम से {progress}% कर रहे हैं - हर कदम मायने रखता है।", "lms_today_empty": "जब आप हों तो आपका सीखने का मार्ग तैयार है।", "compliance_score": "अनुपालन स्कोर", "compliance": "अनुपालन", - "compliance_score_subtitle": "वर्तमान में संतुष्ट {कुल} अनुपालन पाठ्यक्रमों में से {पूर्ण}", + "compliance_score_subtitle": "वर्तमान में संतुष्ट {completed} अनुपालन पाठ्यक्रमों में से {total}", "compliance_score_empty": "अभी तक कोई अनुपालन पाठ्यक्रम नहीं सौंपा गया है", - "compliance_met": "{कुल} में से {पूर्ण} मिले", - "required_courses_completed": "कुल आवश्यक पाठ्यक्रमों में से {पूर्ण} पूर्ण", + "compliance_met": "{completed} में से {total} मिले", + "required_courses_completed": "{total} आवश्यक पाठ्यक्रमों में से {completed} पूर्ण", "streak": "लकीर", "days_active": "सक्रिय दिन", - "items_done": "{कुल} का {पूर्ण} हो गया", + "items_done": "{completed} का {total} हो गया", "login_activity_title": "छात्र लॉगिन गतिविधि", "login_activity_description": "सप्ताह के सर्वाधिक सक्रिय दिन (पिछले 90 दिन)", "login_activity_no_data": "अभी तक कोई लॉगिन गतिविधि नहीं", @@ -3050,8 +3052,8 @@ "field_theme": "थीम", "field_hero": "हीरो शीर्षक", "field_nav": "नेविगेशन", - "field_nav_count_one": "{गिनती} लिंक", - "field_nav_count_other": "{गिनती} लिंक", + "field_nav_count_one": "{count} लिंक", + "field_nav_count_other": "{count} लिंक", "hero_empty": "—", "customize": "लैंडिंग पृष्ठ अनुकूलित करें" } @@ -3220,13 +3222,13 @@ "login": { "sso_redirect_error": "SSO साइन-इन ग़लत कॉन्फ़िगर किया गया है. कृपया अपने एपीआई सर्वर पर PUBLIC_SERVER_URL सेट करें।", "sso_required": "कृपया एसएसओ के साथ साइन इन करें। पासवर्ड लॉगिन अक्षम है.", - "sign_in_with_sso": "{प्रदाता} के साथ साइन इन करें", + "sign_in_with_sso": "{provider} के साथ साइन इन करें", "email_password_disabled": "ईमेल/पासवर्ड लॉगिन अक्षम है. कृपया एसएसओ का उपयोग करें.", "email_password_disabled_message": "इस संगठन के लिए ईमेल/पासवर्ड लॉगिन अक्षम है।", "google_auth_disabled": "Google प्रमाणीकरण अक्षम है.", "signup_disabled_error": "इस संगठन के लिए साइनअप अक्षम है. कृपया अपने व्यवस्थापक से संपर्क करें.", "or_continue_with": "या ईमेल और पासवर्ड के साथ जारी रखें", - "sso_enabled": "इस संगठन के लिए {प्रदाता} सक्षम है" + "sso_enabled": "इस संगठन के लिए {provider} सक्षम है" }, "tabs": { "general": "सामान्य", @@ -3266,8 +3268,8 @@ "title": "अधिक टोकन खरीदें", "description": "प्रत्येक पैक $5 USD के लिए 5,000,000 क्रेडिट जोड़ता है। चुनें कि आपको कितने पैक चाहिए.", "quantity_hint": "पैक", - "preview": "{मात्रा} पैक · {टोकन} टोकन · ${डॉलर}", - "buy_button": "${डॉलर} में खरीदें" + "preview": "{quantity} पैक · {tokens} टोकन · ${dollars}", + "buy_button": "${dollars} में खरीदें" }, "leaderboard": { "title": "टीम का उपयोग", @@ -3288,13 +3290,13 @@ "purchased": { "title": "खरीदा गया उपयोग", "subtitle": "आपके द्वारा खरीदे गए अतिरिक्त टोकन उपयोग होने तक रोल ओवर रहेंगे।", - "lifetime": "{टोकन} टोकन खरीदे गए · ${डॉलर} खर्च किए गए", + "lifetime": "{tokens} टोकन खरीदे गए · ${dollars} खर्च किए गए", "buy_more": "और अधिक खरीदें" }, "included": { "title": "आपका सम्मिलित उपयोग", "subtitle": "आपकी योजना में मासिक टोकन शामिल हैं।", - "resets_on": "{दिनांक} रीसेट करता है" + "resets_on": "{date} रीसेट करता है" } } }, @@ -3702,7 +3704,7 @@ "no_available_courses": "जोड़ने के लिए कोई पाठ्यक्रम उपलब्ध नहीं है.", "no_matching_courses": "कोई भी पाठ्यक्रम आपकी खोज से मेल नहीं खाता.", "no_matching_program_courses": "कोई भी प्रोग्राम पाठ्यक्रम आपकी खोज से मेल नहीं खाता।", - "pagination_status": "{totalPages} का पेज {page}", + "pagination_status": "{page} का पेज {totalPages}", "published_access_callout_title": "छात्र प्रवेश", "published_access_callout_description": "छात्रों को केवल प्रकाशित पाठ्यक्रमों तक ही पहुंच है। पाठ्यक्रम अप्रकाशित रहते हुए भी आपकी टीम के लिए इस कार्यक्रम में हो सकते हैं, जबकि जब तक आप उन्हें प्रकाशित नहीं करते तब तक वे छात्रों से छिपे रहते हैं।" }, @@ -3724,7 +3726,7 @@ "user_avatar_alt": "उपयोगकर्ता अवतार", "comments": { "comment": "टिप्पणी", - "showing_of": "{कुल} में से {दिखाया गया}", + "showing_of": "{shown} में से {total}", "hide": "टिप्पणियाँ छिपाएँ", "placeholder": "प्रोग्राम टिप्पणी जोड़ें", "submit_aria": "टिप्पणी सबमिट करें", @@ -3801,7 +3803,7 @@ "heading": "आपके लक्ष्य", "empty_title": "कोई लक्ष्य नहीं सौंपा गया", "empty_description": "जब आपके प्रशिक्षक लक्ष्य निर्धारित करेंगे, तो वे यहां दिखाई देंगे।", - "due_in_days": "{दिनों} दिनों में देय", + "due_in_days": "{days} दिनों में देय", "due_tomorrow": "कल देय", "due_today": "आज देय", "overdue": "अतिदेय", @@ -3920,7 +3922,7 @@ "generate_course_plan": "Generating course plan", "ask_template_questions": "टेम्प्लेट फॉर्म तैयार किया जा रहा है", "fetch_documentation_url": "दस्तावेज़ पृष्ठ पढ़ना", - "fetch_documentation_url_with_url": "पढ़ना {यूआरएल}" + "fetch_documentation_url_with_url": "पढ़ना {url}" }, "meta": { "lesson_char_count": "({count, plural, one {# character} other {# characters}})", @@ -3952,7 +3954,7 @@ "go_live_not_published": "Course was not published", "generate_course_plan": "Course plan generated", "ask_template_questions": "टेम्प्लेट फॉर्म तैयार", - "fetch_documentation_url": "पढ़ें {यूआरएल}" + "fetch_documentation_url": "पढ़ें {url}" } }, "student_empty_state": "इस पाठ्यक्रम के बारे में मुझसे कुछ भी पूछें - स्पष्टीकरण प्राप्त करें, स्वयं प्रश्नोत्तरी करें, या आप जो पढ़ रहे हैं उसे संक्षेप में प्रस्तुत करें।", @@ -3967,17 +3969,17 @@ "rename_chat_placeholder": "बातचीत का शीर्षक", "rename_chat_failed": "इस वार्तालाप का नाम नहीं बदला जा सका. पुनः प्रयास करें।", "error_rate_limit": "AI सेवा अस्थायी रूप से व्यस्त है. कृपया एक क्षण में पुनः प्रयास करें.", - "error_rate_limit_with_wait": "AI सेवा अस्थायी रूप से व्यस्त है. कृपया {सेकंड} सेकंड में पुनः प्रयास करें।", + "error_rate_limit_with_wait": "AI सेवा अस्थायी रूप से व्यस्त है. कृपया {seconds} सेकंड में पुनः प्रयास करें।", "error_context_too_long": "बातचीत बहुत लंबी है. एक नई चैट शुरू करने या अपना संदेश छोटा करने का प्रयास करें।", "error_network": "नेटवर्क त्रुटि। अपने कनेक्शन की जांच करें और पुन: प्रयास करें।", - "context_usage_tooltip": "{प्रयुक्त} / {अधिकतम} टोकन का उपयोग किया गया", + "context_usage_tooltip": "{used} / {max} टोकन का उपयोग किया गया", "context_full_title": "प्रसंग विंडो भरी हुई है", "context_full_description": "The assistant will summarize older messages automatically so you can keep working in this chat.", "context_full_compact": "संक्षिप्त बातचीत", "context_full_compacting": "संघनन...", "context_full_new_chat": "सारांश के साथ नई चैट प्रारंभ करें", "context_full_summarizing": "सारांश बनाया जा रहा है...", - "context_compacted_badge": "बातचीत संक्षिप्त (पहले के संदेशों की गिनती)", + "context_compacted_badge": "बातचीत संक्षिप्त ({count} पहले के संदेश)", "student_quick_action": { "explain_lesson": "इस पाठ को स्पष्ट करें", "quiz_me": "इस पर मुझसे प्रश्नोत्तरी करें", @@ -3994,24 +3996,24 @@ "run_monitor_aria": "पाठ्यक्रम सृजन प्रगति पर है", "run_summary": { "completed": "रन पूरा हुआ.", - "completed_with_counts": "रन पूरा हुआ - {गिनती} बनाई गई।", + "completed_with_counts": "रन पूरा हुआ - {counts} बनाई गई।", "failed": "रन विफल.", - "failed_with_reason": "रन विफल - {कारण}।", + "failed_with_reason": "रन विफल - {reason}।", "canceled": "चलाना रद्द कर दिया गया.", - "canceled_with_counts": "दौड़ रद्द कर दी गई - रुकने से पहले {गिनती} बनाई गई।", + "canceled_with_counts": "दौड़ रद्द कर दी गई - रुकने से पहले {counts} बनाई गई।", "paused": "रन रुका हुआ. जारी रखने के लिए फिर से शुरू करें.", - "paused_with_counts": "रन रोका गया - अब तक {गिनती} बनाई गई। जारी रखने के लिए फिर से शुरू करें." + "paused_with_counts": "रन रोका गया - अब तक {counts} बनाई गई। जारी रखने के लिए फिर से शुरू करें." }, "changes_card": { - "summary_count": "{गिनती} आइटम बदल गए", + "summary_count": "{count} आइटम बदल गए", "expand": "परिवर्तनों का विस्तार करें", "collapse": "परिवर्तन संक्षिप्त करें", "action": { "created": "बनाया गया", "metadata_updated": "मेटाडेटा अपडेट किया गया", "content_written": "सामग्री लिखी गई", - "questions_added": "+{गिनती} प्रश्न", - "questions_updated": "{गिनती} प्रश्न संपादित", + "questions_added": "+{count} प्रश्न", + "questions_updated": "{count} प्रश्न संपादित", "section_added": "ब्लॉक जोड़ा गया", "section_edited": "ब्लॉक संपादित" }, @@ -4260,7 +4262,7 @@ "subtitle": "अपने संगठन में प्रत्येक अनुपालन पाठ्यक्रम में प्रमाणन स्थिति को ट्रैक करें।", "learners": { "heading": "शिक्षार्थी", - "subtitle": "{गिनती, संख्या} मिलान", + "subtitle": "{count, number} मिलान", "empty": "कोई भी शिक्षार्थी इस फ़िल्टर से मेल नहीं खाता", "learner": "शिक्षार्थी", "course": "पाठ्यक्रम", @@ -4311,7 +4313,7 @@ "submit": "मेरे उत्तर जांचें", "try_again": "पुनः प्रयास करें", "practice_again": "पुनः अभ्यास करें", - "attempt_option": "प्रयास {प्रयास संख्या} - {सही}/{कुल}", + "attempt_option": "प्रयास {attemptNumber} - {correct}/{total}", "attempts_select_aria": "आपके प्रयास", "privacy_hint": "आपके ब्राउज़र में तुरंत ग्रेड किया गया - कुछ भी सबमिट नहीं किया गया है।", "summary_template": "आपको [[सही]] / [[कुल]] सही मिला।" @@ -4334,8 +4336,8 @@ "page_title": "कार्यस्थान", "page_description": "अपने खाते के अंतर्गत कार्यस्थान प्रबंधित करें. कार्यस्थान एकल सदस्यता और एकत्रित उपयोग साझा करते हैं।", "create_cta": "कार्यक्षेत्र बनाएं", - "create_cta_used": "{प्रयुक्त} का {भत्ता} उपयोग किया गया", - "create_cta_disabled_limit": "आप {भत्ता}-कार्यस्थान सीमा तक पहुंच गए हैं। विस्तार करने के लिए हमसे संपर्क करें.", + "create_cta_used": "{used} का {allowance} उपयोग किया गया", + "create_cta_disabled_limit": "आप {allowance}-कार्यस्थान सीमा तक पहुंच गए हैं। विस्तार करने के लिए हमसे संपर्क करें.", "create_cta_disabled_upgrade": "मल्टी-वर्कस्पेस एक एंटरप्राइज़ सुविधा है।", "upgrade_link": "अपग्रेड करें", "primary_badge": "प्राथमिक", @@ -4348,8 +4350,8 @@ "create_modal_submit": "कार्यक्षेत्र बनाएं", "cancel": "रद्द करें", "read_only_badge": "केवल पढ़ने योग्य", - "usage_banner": "{शिक्षार्थी} शिक्षार्थी और {टोकन} एआई टोकन इस महीने {कार्यस्थानों} कार्यस्थानों में उपयोग किए गए", - "secondary_billing_notice": "बिलिंग का प्रबंधन आपके प्राथमिक कार्यक्षेत्र ({प्राइमरीनाम}) द्वारा किया जाता है।", + "usage_banner": "{learners} शिक्षार्थी और {tokens} एआई टोकन इस महीने {workspaces} कार्यस्थानों में उपयोग किए गए", + "secondary_billing_notice": "बिलिंग का प्रबंधन आपके प्राथमिक कार्यक्षेत्र ({primaryName}) द्वारा किया जाता है।", "go_to_primary": "प्राथमिक कार्यक्षेत्र पर जाएँ" }, "switcher": { diff --git a/apps/dashboard/src/lib/utils/translations/pl.json b/apps/dashboard/src/lib/utils/translations/pl.json index 70d573dc..547e4e29 100644 --- a/apps/dashboard/src/lib/utils/translations/pl.json +++ b/apps/dashboard/src/lib/utils/translations/pl.json @@ -7,17 +7,17 @@ }, "validations": { "generic": { - "invalid_type": "Nieprawidłowy typ{oczekiwany, wybierz, niezdefiniowany{} inny{. Oczekiwany {oczekiwany}}}{otrzymany, wybierz, niezdefiniowany{} inny{ (otrzymany {otrzymany})}}", - "too_big": "Wartość jest za duża{maksymalna, wybierz, niezdefiniowana{} inna{. Maksymalnie {maksimum}}}", - "too_small": "Wartość jest za mała{minimum, wybierz, niezdefiniowane{} inne{. Minimum {minimum}}}", - "invalid_format": "Nieprawidłowy format{validacja, wybierz, niezdefiniowany{} other{ for {validation}}}", + "invalid_type": "Nieprawidłowy typ{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "too_big": "Wartość jest za duża{maximum, select, undefined{} other{. Maximum {maximum}}}", + "too_small": "Wartość jest za mała{minimum, select, undefined{} other{. Minimum {minimum}}}", + "invalid_format": "Nieprawidłowy format{validation, select, undefined{} other{ for {validation}}}", "not_multiple_of": "Wartość musi być wielokrotnością {multipleOf}", - "unrecognized_keys": "Zawiera nierozpoznane klucze{klucze, wybierz, niezdefiniowane{} inne{: {klucze}}}", - "invalid_union": "Nieprawidłowa wartość podanych opcji{unionErrors, wybierz, niezdefiniowane{} inne{. Niepowodzenie opcji: {unionErrors}}}", - "invalid_key": "Nieprawidłowy klucz{klucz, wybierz, niezdefiniowany{} inny{: {klucz}}}", - "invalid_element": "Nieprawidłowy element{index, wybierz, niezdefiniowany{} other{ w indeksie {index}}}", - "invalid_value": "Nieprawidłowa wartość{oczekiwana, wybierz, niezdefiniowana{} inna{. Oczekiwany {oczekiwany}}}{otrzymany, wybierz, niezdefiniowany{} inny{ (otrzymany {otrzymany})}}", - "custom": "{wiadomość}", + "unrecognized_keys": "Zawiera nierozpoznane klucze{keys, select, undefined{} other{: {keys}}}", + "invalid_union": "Nieprawidłowa wartość podanych opcji{unionErrors, select, undefined{} other{. {unionErrors} option(s) failed}}", + "invalid_key": "Nieprawidłowy klucz{key, select, undefined{} other{: {key}}}", + "invalid_element": "Nieprawidłowy element{index, select, undefined{} other{ w indeksie {index}}}", + "invalid_value": "Nieprawidłowa wartość{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "custom": "{message}", "required_field": "To pole jest wymagane", "invalid_field": "Nieprawidłowa wartość" }, @@ -118,7 +118,7 @@ }, "exercise": { "options": { - "custom": "{wiadomość}" + "custom": "{message}" }, "points": { "too_small": "Punkty muszą wynosić co najmniej 0" @@ -531,7 +531,7 @@ "description": "Zapisy pogrupowane według typu kursu", "subtitle": "Liczba rejestracji wszystkich typów: {total}", "empty": "Nie ma jeszcze danych zapisów", - "course_count": "{count, plural, one {# kurs} other {# kursy}}", + "course_count": "{count, plural, one {# course} other {# courses}}", "views_short": "widoki", "types": { "SELF_PACED": "We własnym tempie", @@ -589,8 +589,8 @@ "progress_distribution_card_description": "Ilu uczniów mieści się w każdym przedziale ukończenia.", "grade_distribution_card_description": "Ilu uczniów należy do każdego przedziału ocen.", "students_table_description": "Sortowalny przegląd z linkami do profili uczniów.", - "kpi_team_tutors": "{count, plural, one {# korepetytor w zespole kursu} other {# korepetytorów w zespole kursu}}", - "kpi_lessons_exercises": "{count, plural, one {# ćwiczenie} inne {# ćwiczenia}} przypisane do lekcji", + "kpi_team_tutors": "{count, plural, one {# tutor on the course team} other {# tutors on the course team}}", + "kpi_lessons_exercises": "{count, plural, one {# exercise} other {# exercises}} przypisane do lekcji", "kpi_progress_grade": "{grade}% średniej oceny z ćwiczeń wśród zapisanych uczniów" } }, @@ -629,7 +629,7 @@ "send_email": "Wyślij e-mail z powiadomieniem", "submit": "Przypisz", "cancel": "Anuluj", - "snackbar_success": "Przypisano {przydzielonych} użytkowników do kursów ({alreadyEnrolled} jest już zapisanych, wysłano e-maile: {emailsSent})", + "snackbar_success": "Przypisano {assigned} użytkowników do kursów ({alreadyEnrolled} jest już zapisanych, wysłano e-maile: {emailsSent})", "snackbar_no_courses": "Proszę wybrać przynajmniej jeden kurs", "snackbar_failed": "Nie udało się przypisać kursów" }, @@ -1109,7 +1109,7 @@ "snackbar_failed_revoke_invite": "Nie udało się odwołać zaproszenia", "snackbar_failed_load_audit": "Nie udało się wczytać audytu zaproszeń", "snackbar_metadata_copied": "Zaproś skopiowane metadane", - "snackbar_email_invites_success": "Utworzono zaproszenia ({count}). Wysłano {wysłano}, nie udało się {nie udało się}. Pominięte duplikaty: {duplikaty}.", + "snackbar_email_invites_success": "Utworzono zaproszenia ({count}). Wysłano {sent}, nie udało się {failed}. Pominięte duplikaty: {duplicates}.", "select_at_least_one_student": "Select at least one existing student", "presets": { "one_time_24h": "Jednorazowo (24h)", @@ -1342,7 +1342,7 @@ "checking_submission": "Sprawdzam Twoje zgłoszenie...", "answer_required": "Zanim przejdziesz dalej, odpowiedz na to pytanie.", "instructor_feedback": "Informacje zwrotne od instruktora", - "attempt_counter": "Próba {bieżąca} z {total}", + "attempt_counter": "Próba {current} z {total}", "previous_try": "Poprzednia próba", "next_try": "Następna próba", "try_again": "Spróbuj ponownie", @@ -1379,7 +1379,9 @@ }, "select_type": "Wybierz typ", "question_type_auto_gradable": "Auto", + "question_type_auto_gradable_description": "Scored automatically by the system", "question_type_manual_grading": "Manual", + "question_type_manual_grading_description": "Requires human review to score", "premium_question_type": "Uaktualnij, aby używać tego typu pytań" }, "delete_confirmation": { @@ -1439,7 +1441,7 @@ "helper": "Przeciągnij elementy, aby określić właściwą kolejność.", "add_step": "Dodaj krok", "empty": "Dodaj kroki, a następnie przeciągnij, aby ustawić oczekiwaną kolejność.", - "step_placeholder": "Krok „{'indeks'}'", + "step_placeholder": "Krok „{'index'}'", "remove_step_tooltip": "Usuń krok" } }, @@ -1457,7 +1459,7 @@ "link": { "preview": { "empty": "Nie przesłano żadnych linków.", - "item_label": "Link „{'indeks'}'" + "item_label": "Link „{'index'}'" }, "take": { "helper": "Dodaj jeden lub więcej linków. Akceptowane są tylko prawidłowe adresy URL http/https.", @@ -1795,7 +1797,7 @@ "view_pdf": "Zobacz PDF", "remove_document": "Usuń dokument", "delete": "Usuń", - "page_of": "Strona {strona} z {total}", + "page_of": "Strona {page} z {total}", "loading_pdf": "Ładowanie pliku PDF...", "failed_to_load_pdf": "Nie udało się załadować dokumentu PDF", "failed_to_render_pdf": "Nie udało się wyrenderować strony PDF", @@ -1837,8 +1839,8 @@ "add_from_library": "Dodaj z biblioteki", "cancel_upload": "Anuluj przesyłanie", "upload_cancelled": "Przesyłanie anulowane przez użytkownika", - "max_files": "{count, plural, one {Możesz przesłać # plik} other {Możesz przesłać # plików}}", - "max_files_and_size": "(do {rozmiar} każdy)", + "max_files": "{count, plural, one {You can upload # file} other {You can upload # files}}", + "max_files_and_size": "(do {size} każdy)", "google_drive_choose": "Wybierz z Dysku Google", "google_drive_opening": "Otwieram selektor…", "google_drive_hint": "Wybierz film ze swojego konta Google. Każda osoba przeglądająca lekcję potrzebuje dostępu — ustaw udostępnianie na Dysku na „Każda osoba mająca link może wyświetlać” (lub odpowiednik w Twojej organizacji).", @@ -1973,7 +1975,7 @@ "user_avatar_alt": "Awatar użytkownika", "comments": { "comment": "komentarz", - "showing_of": "Wyświetlanie {pokazane} z {total}", + "showing_of": "Wyświetlanie {shown} z {total}", "hide": "Ukryj komentarze", "placeholder": "Dodaj komentarz do zajęć", "submit_aria": "Prześlij komentarz", @@ -2111,7 +2113,7 @@ } }, "certificates": { - "progress_hint": "{bieżący}% ukończenia ({required}% wymagane do pobrania)" + "progress_hint": "{current}% ukończenia ({required}% wymagane do pobrania)" }, "certification": { "rules_heading": "Zasady", @@ -2329,17 +2331,17 @@ "pick_up_where_you_left_off": "Rozpocznij od miejsca, w którym skończyłeś", "course_awaits_you": "{title} czeka na Ciebie", "learning_awaits_you": "Kolejny kurs już na Ciebie czeka", - "lms_today_progress": "Twoje postępy w nauce są następujące: liczy się każdy krok.", + "lms_today_progress": "Twój postęp w nauce wynosi {progress}% – każdy krok się liczy.", "lms_today_empty": "Twoja ścieżka edukacyjna jest gotowa, gdy Ty jesteś.", "compliance_score": "Wynik zgodności", "compliance": "Zgodność", "compliance_score_subtitle": "Obecnie ukończone {completed} z {total} kursów compliance", "compliance_score_empty": "Nie przydzielono jeszcze żadnych kursów z zakresu zgodności", - "compliance_met": "Osiągnięto {ukończone} z {total}", + "compliance_met": "Osiągnięto {completed} z {total}", "required_courses_completed": "Ukończono {completed} z {total} wymaganych kursów", "streak": "Smuga", "days_active": "dni aktywne", - "items_done": "Wykonano {ukończone} z {total}", + "items_done": "Wykonano {completed} z {total}", "login_activity_title": "Aktywność logowania ucznia", "login_activity_description": "Najbardziej aktywne dni tygodnia (ostatnie 90 dni)", "login_activity_no_data": "Brak aktywności związanej z logowaniem", @@ -3050,8 +3052,8 @@ "field_theme": "Temat", "field_hero": "Nagłówek bohatera", "field_nav": "Nawigacja", - "field_nav_count_one": "{liczba} linków", - "field_nav_count_other": "Liczba linków", + "field_nav_count_one": "{count} linków", + "field_nav_count_other": "{count} linków", "hero_empty": "—", "customize": "Dostosuj stronę docelową" } @@ -3266,8 +3268,8 @@ "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}" + "preview": "{quantity} paczek · {tokens} tokenów · ${dollars}", + "buy_button": "Kup za ${dollars}" }, "leaderboard": { "title": "Wykorzystanie zespołu", @@ -3288,13 +3290,13 @@ "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}", + "lifetime": "Zakupiono {tokens} tokenów · Wydano ${dollars}", "buy_more": "Kup więcej" }, "included": { "title": "Twoje uwzględnione wykorzystanie", "subtitle": "Tokeny miesięczne zawarte w Twoim planie.", - "resets_on": "Resetuje {data}" + "resets_on": "Resetuje {date}" } } }, @@ -3702,7 +3704,7 @@ "no_available_courses": "Brak dostępnych kursów do dodania.", "no_matching_courses": "Żaden kurs nie pasuje do Twojego wyszukiwania.", "no_matching_program_courses": "Żaden kurs programowy nie pasuje do Twojego wyszukiwania.", - "pagination_status": "Strona {strona} z {totalPages}", + "pagination_status": "Strona {page} z {totalPages}", "published_access_callout_title": "Dostęp studencki", "published_access_callout_description": "Studenci mają dostęp wyłącznie do opublikowanych kursów. Kursy mogą znajdować się w tym programie dla Twojego zespołu, gdy nie są jeszcze opublikowane, ale pozostają ukryte przed uczniami, dopóki ich nie opublikujesz." }, @@ -3724,7 +3726,7 @@ "user_avatar_alt": "Awatar użytkownika", "comments": { "comment": "komentarz", - "showing_of": "Wyświetlanie {pokazane} z {total}", + "showing_of": "Wyświetlanie {shown} z {total}", "hide": "Ukryj komentarze", "placeholder": "Dodaj komentarz do programu", "submit_aria": "Prześlij komentarz", @@ -3801,7 +3803,7 @@ "heading": "Twoje cele", "empty_title": "Brak przypisanych celów", "empty_description": "Kiedy Twoi instruktorzy wyznaczą cele, pojawią się tutaj.", - "due_in_days": "Termin za {day} dni", + "due_in_days": "Termin za {days} dni", "due_tomorrow": "Termin na jutro", "due_today": "Termin na dzisiaj", "overdue": "Zaległe", @@ -3967,7 +3969,7 @@ "rename_chat_placeholder": "Tytuł rozmowy", "rename_chat_failed": "Nie można zmienić nazwy tej rozmowy. Spróbuj ponownie.", "error_rate_limit": "Usługa AI jest chwilowo zajęta. Spróbuj ponownie za chwilę.", - "error_rate_limit_with_wait": "Usługa AI jest chwilowo zajęta. Spróbuj ponownie za {sekundy} sekund.", + "error_rate_limit_with_wait": "Usługa AI jest chwilowo zajęta. Spróbuj ponownie za {seconds} sekund.", "error_context_too_long": "Rozmowa jest za długa. Spróbuj rozpocząć nowy czat lub skrócić wiadomość.", "error_network": "Błąd sieci. Sprawdź połączenie i spróbuj ponownie.", "context_usage_tooltip": "Wykorzystano {used} / {max} tokenów", @@ -3996,7 +3998,7 @@ "completed": "Uruchomienie zakończone.", "completed_with_counts": "Uruchomienie zakończone — utworzono {counts}.", "failed": "Uruchomienie nie powiodło się.", - "failed_with_reason": "Uruchomienie nie powiodło się — {powód}.", + "failed_with_reason": "Uruchomienie nie powiodło się — {reason}.", "canceled": "Bieg odwołany.", "canceled_with_counts": "Uruchomienie anulowane — utworzono {counts} przed zatrzymaniem.", "paused": "Uruchomienie wstrzymane. Wznów, aby kontynuować.", @@ -4311,7 +4313,7 @@ "submit": "Sprawdź moje odpowiedzi", "try_again": "Spróbuj ponownie", "practice_again": "Poćwicz jeszcze raz", - "attempt_option": "Próba {attemptNumber} – {poprawna}/{total}", + "attempt_option": "Próba {attemptNumber} – {correct}/{total}", "attempts_select_aria": "Twoje próby", "privacy_hint": "Oceniane natychmiastowo w Twojej przeglądarce – nic nie jest przesyłane.", "summary_template": "Masz [[correct]] / [[total]] poprawnie." diff --git a/apps/dashboard/src/lib/utils/translations/pt.json b/apps/dashboard/src/lib/utils/translations/pt.json index d79177ab..64b726de 100644 --- a/apps/dashboard/src/lib/utils/translations/pt.json +++ b/apps/dashboard/src/lib/utils/translations/pt.json @@ -7,17 +7,17 @@ }, "validations": { "generic": { - "invalid_type": "Tipo inválido{esperado, selecionado, indefinido{} outro{. Esperado {esperado}}}{recebido, selecionado, indefinido{} outro{ (recebido {recebido})}}", - "too_big": "O valor é muito grande{máximo, seleção, indefinido{} outro{. Máximo {máximo}}}", - "too_small": "O valor é muito pequeno{mínimo, selecione, indefinido{} outro{. Mínimo {mínimo}}}", - "invalid_format": "Formato inválido{validação, seleção, indefinido{} outro{ para {validação}}}", + "invalid_type": "Tipo inválido{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "too_big": "O valor é muito grande{maximum, select, undefined{} other{. Maximum {maximum}}}", + "too_small": "O valor é muito pequeno{minimum, select, undefined{} other{. Minimum {minimum}}}", + "invalid_format": "Formato inválido{validation, select, undefined{} other{ for {validation}}}", "not_multiple_of": "O valor precisa ser um múltiplo de {multipleOf}", "unrecognized_keys": "Contém chaves não reconhecidas{keys, select, undefined{} other{: {keys}}}", - "invalid_union": "Valor inválido para opções fornecidas{unionErrors, select, indefinido{} other{. Falha na(s) opção(ões) {unionErrors}}}", - "invalid_key": "Chave inválida{chave, seleção, indefinida{} outra{: {chave}}}", - "invalid_element": "Elemento inválido{index, select, indefinido{} other{ no índice {index}}}", - "invalid_value": "Valor inválido{esperado, selecionado, indefinido{} outro{. Esperado {esperado}}}{recebido, selecionado, indefinido{} outro{ (recebido {recebido})}}", - "custom": "{mensagem}", + "invalid_union": "Valor inválido para opções fornecidas{unionErrors, select, undefined{} other{. Falha na(s) opção(ões) {unionErrors}}}", + "invalid_key": "Chave inválida{key, select, undefined{} other{: {key}}}", + "invalid_element": "Elemento inválido{index, select, undefined{} other{ no índice {index}}}", + "invalid_value": "Valor inválido{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "custom": "{message}", "required_field": "Este campo é obrigatório", "invalid_field": "Valor inválido" }, @@ -118,7 +118,7 @@ }, "exercise": { "options": { - "custom": "{mensagem}" + "custom": "{message}" }, "points": { "too_small": "Os pontos devem ser pelo menos 0" @@ -470,7 +470,7 @@ "title": "Análise", "courses": "Cursos", "progress": "Progresso", - "progress_description": "{valor, número} de {total, número} concluído", + "progress_description": "{value, number} de {total, number} concluído", "incomplete": "Incompleto", "completed": "Concluído", "complete": "completo", @@ -503,7 +503,7 @@ "view_details": "Ver detalhes", "no_students_found": "Nenhum aluno encontrado", "no_students_description": "Ainda não há alunos matriculados neste curso. Os alunos aparecerão aqui assim que ingressarem no curso.", - "showing_students": "Mostrando {início} a {fim} de {total} alunos", + "showing_students": "Mostrando {start} a {end} de {total} alunos", "no_analytics_data": "Sem dados analíticos", "no_analytics_description": "Não foi possível carregar dados analíticos para este curso. Tente novamente mais tarde ou entre em contato com o suporte se o problema persistir.", "student": "Estudante", @@ -531,7 +531,7 @@ "description": "Matrículas agrupadas por tipo de curso", "subtitle": "{total} matrículas em todos os tipos", "empty": "Ainda não há dados de inscrição", - "course_count": "{contagem, plural, um {# curso} outro {# cursos}}", + "course_count": "{count, plural, one {# course} other {# courses}}", "views_short": "visualizações", "types": { "SELF_PACED": "Individualizado", @@ -589,8 +589,8 @@ "progress_distribution_card_description": "Quantos alunos se enquadram em cada faixa de conclusão.", "grade_distribution_card_description": "Quantos alunos se enquadram em cada faixa de série.", "students_table_description": "Visão geral classificável com links para perfis de alunos.", - "kpi_team_tutors": "{contagem, plural, um {# tutor na equipe do curso} other {# tutores na equipe do curso}}", - "kpi_lessons_exercises": "{contagem, plural, um {# exercício} outro {# exercícios}} mapeados para lições", + "kpi_team_tutors": "{count, plural, one {# tutor on the course team} other {# tutors on the course team}}", + "kpi_lessons_exercises": "{count, plural, one {# exercise} other {# exercises}} mapeados para lições", "kpi_progress_grade": "{grade}% da nota média do exercício entre os alunos matriculados" } }, @@ -611,7 +611,7 @@ "status_expired": "Expirado", "status_revoked": "Revogado", "select_all": "Selecionar tudo", - "selected_count": "{contagem} selecionados", + "selected_count": "{count} selecionados", "assign_courses": "Atribuir a cursos", "invite": { "row_actions_aria": "Ações abertas", @@ -1109,7 +1109,7 @@ "snackbar_failed_revoke_invite": "Falha ao revogar o convite", "snackbar_failed_load_audit": "Falha ao carregar auditoria de convite", "snackbar_metadata_copied": "Metadados do convite copiados", - "snackbar_email_invites_success": "Foram criados {count} convite(s). Enviado {enviado}, falhou {falhou}. {duplicatas} duplicatas ignoradas.", + "snackbar_email_invites_success": "Foram criados {count} convite(s). Enviado {sent}, falhou {failed}. {duplicates} duplicatas ignoradas.", "select_at_least_one_student": "Select at least one existing student", "presets": { "one_time_24h": "Única (24h)", @@ -1342,7 +1342,7 @@ "checking_submission": "Verificando seu envio...", "answer_required": "Por favor, responda a esta pergunta antes de prosseguir.", "instructor_feedback": "Feedback do instrutor", - "attempt_counter": "Tentativa {atual} de {total}", + "attempt_counter": "Tentativa {current} de {total}", "previous_try": "Tentativa anterior", "next_try": "Próxima tentativa", "try_again": "Tente novamente", @@ -1379,7 +1379,9 @@ }, "select_type": "Selecione o tipo", "question_type_auto_gradable": "Auto", + "question_type_auto_gradable_description": "Scored automatically by the system", "question_type_manual_grading": "Manual", + "question_type_manual_grading_description": "Requires human review to score", "premium_question_type": "Atualize para usar este tipo de pergunta" }, "delete_confirmation": { @@ -1439,7 +1441,7 @@ "helper": "Arraste os itens para definir a ordem correta.", "add_step": "Adicionar etapa", "empty": "Adicione etapas e arraste para definir a ordem esperada.", - "step_placeholder": "Etapa '{'índice'}'", + "step_placeholder": "Etapa '{'index'}'", "remove_step_tooltip": "Remover etapa" } }, @@ -1457,7 +1459,7 @@ "link": { "preview": { "empty": "Nenhum link enviado.", - "item_label": "Link '{'índice'}'" + "item_label": "Link '{'index'}'" }, "take": { "helper": "Adicione um ou mais links. Somente URLs http/https válidos são aceitos.", @@ -1781,7 +1783,7 @@ "upload_success": "Documento enviado com sucesso!", "upload_error": "Falha ao carregar o documento", "file_type_error": "Tipo de arquivo não suportado. Faça upload de arquivos PDF, DOCX ou DOC.", - "file_size_error": "Tamanho do arquivo muito grande. O tamanho máximo é {tamanho}.", + "file_size_error": "Tamanho do arquivo muito grande. O tamanho máximo é {size}.", "type": "Tipo", "size": "Tamanho", "upload_error_title": "Erro ao carregar", @@ -1795,7 +1797,7 @@ "view_pdf": "Ver PDF", "remove_document": "Remover documento", "delete": "Excluir", - "page_of": "Página {página} de {total}", + "page_of": "Página {page} de {total}", "loading_pdf": "Carregando PDF...", "failed_to_load_pdf": "Falha ao carregar o documento PDF", "failed_to_render_pdf": "Falha ao renderizar a página PDF", @@ -1837,8 +1839,8 @@ "add_from_library": "Adicionar da biblioteca", "cancel_upload": "Cancelar upload", "upload_cancelled": "Upload cancelado pelo usuário", - "max_files": "{count, plural, one {Você pode fazer upload de # arquivo} other {Você pode fazer upload de # arquivos}}", - "max_files_and_size": "(até {tamanho} cada)", + "max_files": "{count, plural, one {You can upload # file} other {You can upload # files}}", + "max_files_and_size": "(até {size} cada)", "google_drive_choose": "Escolha no Google Drive", "google_drive_opening": "Abrindo seletor…", "google_drive_hint": "Escolha um vídeo da sua conta do Google. Qualquer pessoa que esteja visualizando a lição precisa de acesso. Defina o compartilhamento no Drive como “Qualquer pessoa com o link pode visualizar” (ou equivalente na sua organização).", @@ -1973,7 +1975,7 @@ "user_avatar_alt": "Avatar do usuário", "comments": { "comment": "comentar", - "showing_of": "Exibindo {mostrado} de {total}", + "showing_of": "Exibindo {shown} de {total}", "hide": "Ocultar comentários", "placeholder": "Adicionar comentário da turma", "submit_aria": "Enviar comentário", @@ -2037,7 +2039,7 @@ "title": "Ações em massa", "description": "Selecione os alunos e aplique uma ação de conformidade ao seu ciclo atual.", "select_all": "Selecione todos os alunos visíveis", - "selected_count": "{contagem} selecionados", + "selected_count": "{count} selecionados", "clear_selection": "Limpar seleção", "due_date_label": "Data de vencimento", "due_date_helper": "Usado para redefinir e estender ações.", @@ -2078,8 +2080,8 @@ "sidebar": { "back_to_course": "De volta ao curso", "content_count": { - "lessons": "{contar} aulas", - "exercises": "{contar} exercícios" + "lessons": "{count} aulas", + "exercises": "{count} exercícios" }, "compliance": { "title": "Conformidade", @@ -2124,7 +2126,7 @@ "final_exercise_helper": "Quando definido, os alunos devem atingir pelo menos a pontuação mínima neste exercício (melhores tentativas contam), além do percentual de conclusão acima.", "min_exercise_score_label": "Nota mínima no exercício final (%)", "min_exercise_score_helper": "A pontuação é uma porcentagem do total de pontos possíveis naquele exercício (0–100).", - "blocker_progress": "O progresso do seu curso é {current}%; {obrigatório}% é obrigatório.", + "blocker_progress": "O progresso do seu curso é {current}%; {required}% é obrigatório.", "blocker_deadline": "O prazo de certificação expirou.", "blocker_no_content": "Este curso não possui lições ou exercícios para serem concluídos.", "blocker_final_not_submitted": "Envie o exercício obrigatório \"{exerciseTitle}\" para se qualificar para o certificado.", @@ -2333,13 +2335,13 @@ "lms_today_empty": "Seu caminho de aprendizagem estará pronto quando você estiver.", "compliance_score": "Pontuação de Conformidade", "compliance": "Conformidade", - "compliance_score_subtitle": "{concluído} de {total} cursos de conformidade atualmente satisfeitos", + "compliance_score_subtitle": "{completed} de {total} cursos de conformidade atualmente satisfeitos", "compliance_score_empty": "Nenhum curso de compliance atribuído ainda", - "compliance_met": "{concluído} de {total} alcançado", - "required_courses_completed": "{concluído} de {total} cursos obrigatórios concluídos", + "compliance_met": "{completed} de {total} alcançado", + "required_courses_completed": "{completed} de {total} cursos obrigatórios concluídos", "streak": "Sequência", "days_active": "dias ativos", - "items_done": "{concluído} de {total} concluído", + "items_done": "{completed} de {total} concluído", "login_activity_title": "Atividade de login do aluno", "login_activity_description": "Dias mais ativos da semana (últimos 90 dias)", "login_activity_no_data": "Nenhuma atividade de login ainda", @@ -3050,8 +3052,8 @@ "field_theme": "Tema", "field_hero": "Título do herói", "field_nav": "Navegação", - "field_nav_count_one": "{contar} link", - "field_nav_count_other": "{contar} links", + "field_nav_count_one": "{count} link", + "field_nav_count_other": "{count} links", "hero_empty": "-", "customize": "Personalize a página de destino" } @@ -3220,7 +3222,7 @@ "login": { "sso_redirect_error": "O login do SSO está configurado incorretamente. Defina PUBLIC_SERVER_URL para seu servidor API.", "sso_required": "Faça login com SSO. O login por senha está desabilitado.", - "sign_in_with_sso": "Faça login com {provedor}", + "sign_in_with_sso": "Faça login com {provider}", "email_password_disabled": "O login por e-mail/senha está desativado. Por favor, use SSO.", "email_password_disabled_message": "O login por e-mail/senha está desativado para esta organização.", "google_auth_disabled": "A autenticação do Google está desativada.", @@ -3266,8 +3268,8 @@ "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}" + "preview": "{quantity} pacote(s) · {tokens} tokens · ${dollars}", + "buy_button": "Compre por ${dollars}" }, "leaderboard": { "title": "Uso da equipe", @@ -3294,7 +3296,7 @@ "included": { "title": "Seu uso incluído", "subtitle": "Tokens mensais incluídos no seu plano.", - "resets_on": "Reinicializações em {data}" + "resets_on": "Reinicializações em {date}" } } }, @@ -3702,7 +3704,7 @@ "no_available_courses": "Não há cursos disponíveis para adicionar.", "no_matching_courses": "Nenhum curso corresponde à sua pesquisa.", "no_matching_program_courses": "Nenhum curso do programa corresponde à sua pesquisa.", - "pagination_status": "Página {página} de {totalPages}", + "pagination_status": "Página {page} de {totalPages}", "published_access_callout_title": "Acesso de estudante", "published_access_callout_description": "Os alunos só têm acesso aos cursos publicados. Os cursos podem estar neste programa para sua equipe enquanto ainda não foram publicados, enquanto permanecem ocultos aos alunos até que você os publique." }, @@ -3724,7 +3726,7 @@ "user_avatar_alt": "Avatar do usuário", "comments": { "comment": "comentar", - "showing_of": "Exibindo {mostrado} de {total}", + "showing_of": "Exibindo {shown} de {total}", "hide": "Ocultar comentários", "placeholder": "Adicionar comentário do programa", "submit_aria": "Enviar comentário", @@ -3970,7 +3972,7 @@ "error_rate_limit_with_wait": "O serviço AI está temporariamente ocupado. Tente novamente em {seconds} segundos.", "error_context_too_long": "A conversa é muito longa. Tente iniciar um novo bate-papo ou encurtar sua mensagem.", "error_network": "Erro de rede. Verifique sua conexão e tente novamente.", - "context_usage_tooltip": "{usados} / {max} tokens usados", + "context_usage_tooltip": "{used} / {max} tokens usados", "context_full_title": "A janela de contexto está cheia", "context_full_description": "The assistant will summarize older messages automatically so you can keep working in this chat.", "context_full_compact": "Conversa compacta", @@ -3996,7 +3998,7 @@ "completed": "Execução concluída.", "completed_with_counts": "Execução concluída — criada {counts}.", "failed": "Falha na execução.", - "failed_with_reason": "Falha na execução — {motivo}.", + "failed_with_reason": "Falha na execução — {reason}.", "canceled": "Execução cancelada.", "canceled_with_counts": "Execução cancelada — criou {counts} antes de parar.", "paused": "Execução pausada. Retomar para continuar.", @@ -4010,7 +4012,7 @@ "created": "Criado", "metadata_updated": "Metadados atualizados", "content_written": "Conteúdo escrito", - "questions_added": "+{contar} perguntas", + "questions_added": "+{count} perguntas", "questions_updated": "{count} perguntas editadas", "section_added": "Bloco adicionado", "section_edited": "Bloco editado" @@ -4260,7 +4262,7 @@ "subtitle": "Acompanhe o status da certificação em todos os cursos de conformidade da sua organização.", "learners": { "heading": "Alunos", - "subtitle": "{contagem, número} correspondente", + "subtitle": "{count, number} correspondente", "empty": "Nenhum aluno corresponde a este filtro", "learner": "Aluno", "course": "Curso", @@ -4311,7 +4313,7 @@ "submit": "Verifique minhas respostas", "try_again": "Tente novamente", "practice_again": "Pratique novamente", - "attempt_option": "Tentativa {attemptNumber} - {correto}/{total}", + "attempt_option": "Tentativa {attemptNumber} - {correct}/{total}", "attempts_select_aria": "Suas tentativas", "privacy_hint": "Avaliado instantaneamente no seu navegador – nada é enviado.", "summary_template": "Você acertou [[correto]] / [[total]]." @@ -4334,7 +4336,7 @@ "page_title": "Espaços de trabalho", "page_description": "Gerencie os espaços de trabalho em sua conta. Os espaços de trabalho compartilham uma única assinatura e uso em pool.", "create_cta": "Criar espaço de trabalho", - "create_cta_used": "{usado} de {subsídio} usado", + "create_cta_used": "{used} de {allowance} usado", "create_cta_disabled_limit": "Você atingiu o limite de {allowance}-workspace. Entre em contato conosco para expandir.", "create_cta_disabled_upgrade": "Multi-espaço de trabalho é um recurso empresarial.", "upgrade_link": "Atualizar", diff --git a/apps/dashboard/src/lib/utils/translations/ru.json b/apps/dashboard/src/lib/utils/translations/ru.json index 2e625175..24b71162 100644 --- a/apps/dashboard/src/lib/utils/translations/ru.json +++ b/apps/dashboard/src/lib/utils/translations/ru.json @@ -7,17 +7,17 @@ }, "validations": { "generic": { - "invalid_type": "Неверный тип {ожидаемый, выбранный, неопределенный{} другое{. Ожидается {ожидается}}}{получено, выберите, неопределенное{} другое { (получено {получено})}}", - "too_big": "Значение слишком велико{максимум, выберите, неопределенное{} другое{. Максимум {максимум}}}", - "too_small": "Значение слишком мало{минимальное, выберите, неопределенное{} другое{. Минимум {минимум}}}", - "invalid_format": "Неверный формат{проверка, выбор, неопределенное{} другое{ для {проверка}}}", + "invalid_type": "Неверный тип {expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "too_big": "Значение слишком велико{maximum, select, undefined{} other{. Maximum {maximum}}}", + "too_small": "Значение слишком мало{minimum, select, undefined{} other{. Minimum {minimum}}}", + "invalid_format": "Неверный формат{validation, select, undefined{} other{ for {validation}}}", "not_multiple_of": "Значение должно быть кратно {multipleOf}.", - "unrecognized_keys": "Содержит нераспознанные ключи{keys, select, undefine{}other{: {keys}}}", - "invalid_union": "Недопустимое значение для предоставленных параметров{unionErrors, select, undefine{}other{. Вариант(ы) {unionErrors} не выполнен}}", - "invalid_key": "Неверный ключ{key, select, undefine{}other{: {key}}}", - "invalid_element": "Неверный элемент{index, select, undefined{}other{ по индексу {index}}}", - "invalid_value": "Недопустимое значение{ожидаемое, выбранное, неопределенное{} другое{. Ожидается {ожидается}}}{получено, выберите, неопределенное{} другое { (получено {получено})}}", - "custom": "{сообщение}", + "unrecognized_keys": "Содержит нераспознанные ключи{keys, select, undefined{} other{: {keys}}}", + "invalid_union": "Недопустимое значение для предоставленных параметров{unionErrors, select, undefined{} other{. Вариант(ы) {unionErrors} не выполнен}}", + "invalid_key": "Неверный ключ{key, select, undefined{} other{: {key}}}", + "invalid_element": "Неверный элемент{index, select, undefined{} other{ по индексу {index}}}", + "invalid_value": "Недопустимое значение{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "custom": "{message}", "required_field": "Это поле обязательно для заполнения", "invalid_field": "Недопустимое значение" }, @@ -118,7 +118,7 @@ }, "exercise": { "options": { - "custom": "{сообщение}" + "custom": "{message}" }, "points": { "too_small": "Баллов должно быть не менее 0." @@ -470,7 +470,7 @@ "title": "Аналитика", "courses": "Курсы", "progress": "Прогресс", - "progress_description": "{value, Number} из {total, Number} завершено", + "progress_description": "{value, number} из {total, number} завершено", "incomplete": "Неполный", "completed": "Завершено", "complete": "полный", @@ -531,7 +531,7 @@ "description": "Зачисления сгруппированы по типу курса", "subtitle": "{total} зачислений по всем типам", "empty": "Данных о регистрации пока нет", - "course_count": "{число, множественное число, один {# курс} другой {# курс}}", + "course_count": "{count, plural, one {# course} other {# courses}}", "views_short": "просмотры", "types": { "SELF_PACED": "Самостоятельный темп", @@ -589,8 +589,8 @@ "progress_distribution_card_description": "Сколько учащихся попадает в каждую группу завершения.", "grade_distribution_card_description": "Сколько учащихся попадает в каждую группу классов.", "students_table_description": "Сортируемый обзор со ссылками на профили учащихся.", - "kpi_team_tutors": "{count, множественное число, one {# репетитор в команде курса}other {# репетитора в команде курса}}", - "kpi_lessons_exercises": "{count, множественное число, одно {# упражнения} другое {# упражнений}} сопоставлено с уроками", + "kpi_team_tutors": "{count, plural, one {# tutor on the course team} other {# tutors on the course team}}", + "kpi_lessons_exercises": "{count, plural, one {# exercise} other {# exercises}} сопоставлено с уроками", "kpi_progress_grade": "{grade} % средняя оценка за упражнения среди зачисленных учащихся" } }, @@ -1109,7 +1109,7 @@ "snackbar_failed_revoke_invite": "Не удалось отозвать приглашение.", "snackbar_failed_load_audit": "Не удалось загрузить аудит приглашений.", "snackbar_metadata_copied": "Метаданные приглашения скопированы.", - "snackbar_email_invites_success": "Создано приглашений: {count}. Отправлено {отправлено}, ошибка {failed}. Пропущено дубликатов: {duulates}.", + "snackbar_email_invites_success": "Создано приглашений: {count}. Отправлено {sent}, ошибка {failed}. Пропущено дубликатов: {duplicates}.", "select_at_least_one_student": "Select at least one existing student", "presets": { "one_time_24h": "Одноразовый (24 часа)", @@ -1342,7 +1342,7 @@ "checking_submission": "Проверка вашей заявки...", "answer_required": "Пожалуйста, ответьте на этот вопрос, прежде чем продолжить.", "instructor_feedback": "Отзывы инструктора", - "attempt_counter": "Попытка {текущая} из {total}", + "attempt_counter": "Попытка {current} из {total}", "previous_try": "Предыдущая попытка", "next_try": "Следующая попытка", "try_again": "Попробуйте еще раз", @@ -1379,7 +1379,9 @@ }, "select_type": "Выберите тип", "question_type_auto_gradable": "Auto", + "question_type_auto_gradable_description": "Scored automatically by the system", "question_type_manual_grading": "Manual", + "question_type_manual_grading_description": "Requires human review to score", "premium_question_type": "Обновите, чтобы использовать этот тип вопроса" }, "delete_confirmation": { @@ -1439,7 +1441,7 @@ "helper": "Перетащите элементы, чтобы определить правильный порядок.", "add_step": "Добавить шаг", "empty": "Добавьте шаги, затем перетащите их, чтобы установить ожидаемый порядок.", - "step_placeholder": "Шаг '{'индекс'}'", + "step_placeholder": "Шаг '{'index'}'", "remove_step_tooltip": "Удалить шаг" } }, @@ -1457,7 +1459,7 @@ "link": { "preview": { "empty": "Ссылки не предоставлены.", - "item_label": "Ссылка '{'индекс'}'" + "item_label": "Ссылка '{'index'}'" }, "take": { "helper": "Добавьте одну или несколько ссылок. Принимаются только действительные URL-адреса http/https.", @@ -1837,7 +1839,7 @@ "add_from_library": "Добавить из библиотеки", "cancel_upload": "Отменить загрузку", "upload_cancelled": "Загрузка отменена пользователем", - "max_files": "{count, множественное число, one {Вы можете загрузить # файл} Other {Вы можете загрузить # файла}}", + "max_files": "{count, plural, one {You can upload # file} other {You can upload # files}}", "max_files_and_size": "(до {size} каждый)", "google_drive_choose": "Выберите на Google Диске", "google_drive_opening": "Открытие выбора…", @@ -1973,7 +1975,7 @@ "user_avatar_alt": "Аватар пользователя", "comments": { "comment": "комментарий", - "showing_of": "Показаны {показано} из {всего}", + "showing_of": "Показаны {shown} из {total}", "hide": "Скрыть комментарии", "placeholder": "Добавить комментарий к классу", "submit_aria": "Отправить комментарий", @@ -2127,10 +2129,10 @@ "blocker_progress": "Ваш прогресс по курсу составляет {current}%; Требуется {required}%.", "blocker_deadline": "Срок сертификации прошел.", "blocker_no_content": "В этом курсе нет уроков или упражнений, которые необходимо выполнить.", - "blocker_final_not_submitted": "Чтобы получить сертификат, отправьте необходимое упражнение «{exercisionTitle}».", - "blocker_final_pending": "Ваша попытка выполнения \"{exercisionTitle}\" все еще оценивается.", - "blocker_final_score": "Ваш лучший результат в «{exercisionTitle}» — {bestPercent}%; Требуется {requiredPercent}%.", - "blocker_final_misconfigured": "Для сертификационного упражнения «{exercisionTitle}» не настроены баллы; попросите инструктора это исправить.", + "blocker_final_not_submitted": "Чтобы получить сертификат, отправьте необходимое упражнение «{exerciseTitle}».", + "blocker_final_pending": "Ваша попытка выполнения \"{exerciseTitle}\" все еще оценивается.", + "blocker_final_score": "Ваш лучший результат в «{exerciseTitle}» — {bestPercent}%; Требуется {requiredPercent}%.", + "blocker_final_misconfigured": "Для сертификационного упражнения «{exerciseTitle}» не настроены баллы; попросите инструктора это исправить.", "email_message_label": "Сообщение электронной почты", "email_message_placeholder": "например Мы гордимся вашим прогрессом — продолжайте учиться!" }, @@ -2335,11 +2337,11 @@ "compliance": "Соответствие", "compliance_score_subtitle": "{completed} из {total} курсов по обеспечению соответствия требованиям, пройденных на данный момент", "compliance_score_empty": "Курсы соответствия еще не назначены", - "compliance_met": "выполнено {завершено} из {total}", + "compliance_met": "выполнено {completed} из {total}", "required_courses_completed": "Пройдено {completed} из {total} обязательных курсов", "streak": "Полоса", "days_active": "дней активности", - "items_done": "{завершено} из {total} выполнено", + "items_done": "{completed} из {total} выполнено", "login_activity_title": "Активность входа учащихся", "login_activity_description": "Самые активные дни недели (последние 90 дней)", "login_activity_no_data": "Пока нет активности входа", @@ -3050,7 +3052,7 @@ "field_theme": "Тема", "field_hero": "Главный заголовок", "field_nav": "Навигация", - "field_nav_count_one": "{количество} ссылки", + "field_nav_count_one": "{count} ссылки", "field_nav_count_other": "{count} ссылок", "hero_empty": "—", "customize": "Настройте целевую страницу" @@ -3266,8 +3268,8 @@ "title": "Купить больше жетонов", "description": "Каждый пакет добавляет 5 000 000 кредитов за 5 долларов США. Выберите, сколько упаковок вам нужно.", "quantity_hint": "пакеты", - "preview": "Пакет(ы) {quantity} · жетоны {tokens} · ${доллары}", - "buy_button": "Купить за ${долларов}" + "preview": "Пакет(ы) {quantity} · жетоны {tokens} · ${dollars}", + "buy_button": "Купить за ${dollars}" }, "leaderboard": { "title": "Использование команды", @@ -3294,7 +3296,7 @@ "included": { "title": "Ваше включенное использование", "subtitle": "Ежемесячные токены включены в ваш план.", - "resets_on": "Сбрасывает {дата}" + "resets_on": "Сбрасывает {date}" } } }, @@ -3724,7 +3726,7 @@ "user_avatar_alt": "Аватар пользователя", "comments": { "comment": "комментарий", - "showing_of": "Показаны {показано} из {всего}", + "showing_of": "Показаны {shown} из {total}", "hide": "Скрыть комментарии", "placeholder": "Добавить комментарий к программе", "submit_aria": "Отправить комментарий", @@ -3967,7 +3969,7 @@ "rename_chat_placeholder": "Название беседы", "rename_chat_failed": "Не удалось переименовать этот чат. Попробуйте еще раз.", "error_rate_limit": "Служба AI временно занята. Пожалуйста, повторите попытку через минуту.", - "error_rate_limit_with_wait": "Служба AI временно занята. Повторите попытку через {секунды} сек.", + "error_rate_limit_with_wait": "Служба AI временно занята. Повторите попытку через {seconds} сек.", "error_context_too_long": "Разговор слишком длинный. Попробуйте начать новый чат или сократить сообщение.", "error_network": "Ошибка сети. Пожалуйста, проверьте подключение и повторите попытку.", "context_usage_tooltip": "{used} / {max} использовано токенов", @@ -3996,7 +3998,7 @@ "completed": "Запуск завершен.", "completed_with_counts": "Запуск завершен — создано {counts}.", "failed": "Запуск не удался.", - "failed_with_reason": "Не удалось выполнить запуск — {причина}.", + "failed_with_reason": "Не удалось выполнить запуск — {reason}.", "canceled": "Забег отменен.", "canceled_with_counts": "Запуск отменен — перед остановкой создано {counts}.", "paused": "Бег остановился. Возобновите, чтобы продолжить.", @@ -4260,7 +4262,7 @@ "subtitle": "Отслеживайте статус сертификации по каждому курсу соответствия в вашей организации.", "learners": { "heading": "Учащиеся", - "subtitle": "{count, число} совпадение", + "subtitle": "{count, number} совпадение", "empty": "Ни один учащийся не соответствует этому фильтру", "learner": "Учащийся", "course": "Курс", @@ -4311,7 +4313,7 @@ "submit": "Проверьте мои ответы", "try_again": "Попробуйте еще раз", "practice_again": "Практикуйтесь снова", - "attempt_option": "Попытка {attemptNumber} – {правильно}/{всего}", + "attempt_option": "Попытка {attemptNumber} – {correct}/{total}", "attempts_select_aria": "Ваши попытки", "privacy_hint": "Оценивается мгновенно в вашем браузере — ничего не отправляется.", "summary_template": "Вы ответили [[правильно]] / [[всего]] правильно." diff --git a/apps/dashboard/src/lib/utils/translations/vi.json b/apps/dashboard/src/lib/utils/translations/vi.json index 3311ed65..17f9036a 100644 --- a/apps/dashboard/src/lib/utils/translations/vi.json +++ b/apps/dashboard/src/lib/utils/translations/vi.json @@ -7,17 +7,17 @@ }, "validations": { "generic": { - "invalid_type": "Loại không hợp lệ{dự kiến, chọn, không xác định{} khác{. Dự kiến {mong đợi}}}{đã nhận, chọn, không xác định{} khác{ (đã nhận {đã nhận})}}", - "too_big": "Giá trị quá lớn{tối đa, chọn, không xác định{} khác{. Tối đa {tối đa}}}", - "too_small": "Giá trị quá nhỏ{tối thiểu, chọn, không xác định{} khác{. Tối thiểu {tối thiểu}}}", - "invalid_format": "Định dạng không hợp lệ{xác thực, chọn, không xác định{} khác{ cho {xác thực}}}", + "invalid_type": "Loại không hợp lệ{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "too_big": "Giá trị quá lớn{maximum, select, undefined{} other{. Maximum {maximum}}}", + "too_small": "Giá trị quá nhỏ{minimum, select, undefined{} other{. Minimum {minimum}}}", + "invalid_format": "Định dạng không hợp lệ{validation, select, undefined{} other{ for {validation}}}", "not_multiple_of": "Giá trị phải là bội số của {multipleOf}", - "unrecognized_keys": "Chứa các khóa không được nhận dạng{keys, select, undefind{} other{: {keys}}}", - "invalid_union": "Giá trị không hợp lệ cho các tùy chọn được cung cấp{unionErrors, select, unknown{} other{. {unionErrors} tùy chọn không thành công}}", - "invalid_key": "Khóa không hợp lệ{khóa, chọn, không xác định{} khác{: {key}}}", - "invalid_element": "Phần tử không hợp lệ{chỉ mục, chọn, không xác định{} khác{ tại chỉ mục {index}}}", - "invalid_value": "Giá trị không hợp lệ{dự kiến, chọn, không xác định{} khác{. Dự kiến {mong đợi}}}{đã nhận, chọn, không xác định{} khác{ (đã nhận {đã nhận})}}", - "custom": "{tin nhắn}", + "unrecognized_keys": "Chứa các khóa không được nhận dạng{keys, select, undefined{} other{: {keys}}}", + "invalid_union": "Giá trị không hợp lệ cho các tùy chọn được cung cấp{unionErrors, select, undefined{} other{. {unionErrors} tùy chọn không thành công}}", + "invalid_key": "Khóa không hợp lệ{key, select, undefined{} other{: {key}}}", + "invalid_element": "Phần tử không hợp lệ{index, select, undefined{} other{ at index {index}}}", + "invalid_value": "Giá trị không hợp lệ{expected, select, undefined{} other{. Expected {expected}}}{received, select, undefined{} other{ (received {received})}}", + "custom": "{message}", "required_field": "Trường này là bắt buộc", "invalid_field": "Giá trị không hợp lệ" }, @@ -118,7 +118,7 @@ }, "exercise": { "options": { - "custom": "{tin nhắn}" + "custom": "{message}" }, "points": { "too_small": "Điểm ít nhất phải bằng 0" @@ -503,7 +503,7 @@ "view_details": "Xem chi tiết", "no_students_found": "Không tìm thấy sinh viên nào", "no_students_description": "Hiện chưa có học viên nào đăng ký khóa học này. Học sinh sẽ xuất hiện ở đây khi họ tham gia khóa học.", - "showing_students": "Đang hiển thị {bắt đầu} cho {cuối} trong tổng số {total} sinh viên", + "showing_students": "Đang hiển thị {start} cho {end} trong tổng số {total} sinh viên", "no_analytics_data": "Không có dữ liệu phân tích", "no_analytics_description": "Không thể tải dữ liệu phân tích cho khóa học này. Vui lòng thử lại sau hoặc liên hệ với bộ phận hỗ trợ nếu sự cố vẫn tiếp diễn.", "student": "sinh viên", @@ -531,7 +531,7 @@ "description": "Tuyển sinh được nhóm theo loại khóa học", "subtitle": "{total} lượt đăng ký trên tất cả các loại", "empty": "Chưa có dữ liệu tuyển sinh", - "course_count": "{đếm, số nhiều, một {# khóa học} khác {# khóa học}}", + "course_count": "{count, plural, one {# course} other {# courses}}", "views_short": "lượt xem", "types": { "SELF_PACED": "Tự nhịp độ", @@ -589,8 +589,8 @@ "progress_distribution_card_description": "Có bao nhiêu người học rơi vào từng mức độ hoàn thành.", "grade_distribution_card_description": "Có bao nhiêu học sinh rơi vào từng nhóm lớp.", "students_table_description": "Tổng quan có thể sắp xếp với các liên kết đến hồ sơ người học.", - "kpi_team_tutors": "{đếm, số nhiều, một {# gia sư trong nhóm khóa học} khác {# gia sư trong nhóm khóa học}}", - "kpi_lessons_exercises": "{đếm, số nhiều, một {# bài tập} khác {# bài tập}} được ánh xạ tới bài học", + "kpi_team_tutors": "{count, plural, one {# tutor on the course team} other {# tutors on the course team}}", + "kpi_lessons_exercises": "{count, plural, one {# exercise} other {# exercises}} được ánh xạ tới bài học", "kpi_progress_grade": "{grade}% điểm bài tập trung bình của những người học đã đăng ký" } }, @@ -629,7 +629,7 @@ "send_email": "Gửi email thông báo", "submit": "Chỉ định", "cancel": "Hủy bỏ", - "snackbar_success": "Đã chỉ định người dùng {được chỉ định} cho các khóa học ({alreadyEnrolled} đã đăng ký, đã gửi {emailsSent} email)", + "snackbar_success": "Đã chỉ định người dùng {assigned} cho các khóa học ({alreadyEnrolled} đã đăng ký, đã gửi {emailsSent} email)", "snackbar_no_courses": "Vui lòng chọn ít nhất một khóa học", "snackbar_failed": "Không thể chỉ định khóa học" }, @@ -1109,7 +1109,7 @@ "snackbar_failed_revoke_invite": "Không thể thu hồi lời mời", "snackbar_failed_load_audit": "Không tải được lời mời kiểm tra", "snackbar_metadata_copied": "Đã sao chép siêu dữ liệu lời mời", - "snackbar_email_invites_success": "Đã tạo {count} lời mời. Đã gửi {đã gửi}, không thành công {không thành công}. Đã bỏ qua {trùng lặp} bản sao.", + "snackbar_email_invites_success": "Đã tạo {count} lời mời. Đã gửi {sent}, không thành công {failed}. Đã bỏ qua {duplicates} bản sao.", "select_at_least_one_student": "Select at least one existing student", "presets": { "one_time_24h": "Một lần (24h)", @@ -1379,7 +1379,9 @@ }, "select_type": "Chọn loại", "question_type_auto_gradable": "Auto", + "question_type_auto_gradable_description": "Scored automatically by the system", "question_type_manual_grading": "Manual", + "question_type_manual_grading_description": "Requires human review to score", "premium_question_type": "Nâng cấp để sử dụng loại câu hỏi này" }, "delete_confirmation": { @@ -1439,7 +1441,7 @@ "helper": "Kéo các mục để xác định thứ tự chính xác.", "add_step": "Thêm bước", "empty": "Thêm các bước, sau đó kéo để đặt thứ tự dự kiến.", - "step_placeholder": "Bước '{'chỉ mục'}'", + "step_placeholder": "Bước '{'index'}'", "remove_step_tooltip": "Xóa bước" } }, @@ -1457,7 +1459,7 @@ "link": { "preview": { "empty": "Không có liên kết nào được gửi.", - "item_label": "Liên kết '{'chỉ mục'}'" + "item_label": "Liên kết '{'index'}'" }, "take": { "helper": "Thêm một hoặc nhiều liên kết. Chỉ các URL http/https hợp lệ mới được chấp nhận.", @@ -1795,7 +1797,7 @@ "view_pdf": "Xem PDF", "remove_document": "Xóa tài liệu", "delete": "Xóa", - "page_of": "Trang {trang} trong tổng số {total}", + "page_of": "Trang {page} trong tổng số {total}", "loading_pdf": "Đang tải PDF...", "failed_to_load_pdf": "Không tải được tài liệu PDF", "failed_to_render_pdf": "Không thể hiển thị trang PDF", @@ -1837,7 +1839,7 @@ "add_from_library": "Thêm từ thư viện", "cancel_upload": "Hủy tải lên", "upload_cancelled": "Tải lên bị người dùng hủy", - "max_files": "{đếm, số nhiều, một {Bạn có thể tải lên # tệp} khác {Bạn có thể tải lên # tệp}}", + "max_files": "{count, plural, one {You can upload # file} other {You can upload # files}}", "max_files_and_size": "(tối đa {size} mỗi cái)", "google_drive_choose": "Chọn từ Google Drive", "google_drive_opening": "Đang mở bộ chọn…", @@ -1973,7 +1975,7 @@ "user_avatar_alt": "Hình đại diện của người dùng", "comments": { "comment": "bình luận", - "showing_of": "Đang hiển thị {được hiển thị} trong tổng số {toàn bộ}", + "showing_of": "Đang hiển thị {shown} trong tổng số {total}", "hide": "Ẩn bình luận", "placeholder": "Thêm nhận xét của lớp", "submit_aria": "Gửi bình luận", @@ -2078,8 +2080,8 @@ "sidebar": { "back_to_course": "Quay lại khóa học", "content_count": { - "lessons": "{đếm} bài học", - "exercises": "bài tập {đếm}" + "lessons": "{count} bài học", + "exercises": "bài tập {count}" }, "compliance": { "title": "Tuân thủ", @@ -2329,17 +2331,17 @@ "pick_up_where_you_left_off": "Tiếp tục nơi bạn đã dừng lại", "course_awaits_you": "{title} đang chờ bạn", "learning_awaits_you": "Khóa học tiếp theo đang chờ bạn", - "lms_today_progress": "Bạn đã đạt được {tiến bộ}% trong quá trình học tập - mỗi bước đều có giá trị.", + "lms_today_progress": "Bạn đã đạt được {progress}% trong quá trình học tập - mỗi bước đều có giá trị.", "lms_today_empty": "Con đường học tập của bạn đã sẵn sàng khi bạn sẵn sàng.", "compliance_score": "Điểm tuân thủ", "compliance": "Tuân thủ", "compliance_score_subtitle": "{completed} trong số {total} khóa học tuân thủ hiện đã được đáp ứng", "compliance_score_empty": "Chưa có khóa học tuân thủ nào được chỉ định", - "compliance_met": "{hoàn thành} trong tổng số {tổng} đã đáp ứng", + "compliance_met": "{completed} trong tổng số {total} đã đáp ứng", "required_courses_completed": "Đã hoàn thành {completed} trong số {total} khóa học bắt buộc", "streak": "Vệt", "days_active": "ngày hoạt động", - "items_done": "{đã hoàn thành} trong tổng số {tổng} đã hoàn thành", + "items_done": "{completed} trong tổng số {total} đã hoàn thành", "login_activity_title": "Hoạt động đăng nhập của sinh viên", "login_activity_description": "Những ngày hoạt động tích cực nhất trong tuần (90 ngày qua)", "login_activity_no_data": "Chưa có hoạt động đăng nhập", @@ -3050,8 +3052,8 @@ "field_theme": "chủ đề", "field_hero": "Tiêu đề anh hùng", "field_nav": "Điều hướng", - "field_nav_count_one": "liên kết {đếm}", - "field_nav_count_other": "{đếm} liên kết", + "field_nav_count_one": "liên kết {count}", + "field_nav_count_other": "{count} liên kết", "hero_empty": "—", "customize": "Tùy chỉnh trang đích" } @@ -3220,7 +3222,7 @@ "login": { "sso_redirect_error": "Đăng nhập SSO bị định cấu hình sai. Vui lòng đặt PUBLIC_SERVER_URL cho máy chủ API của bạn.", "sso_required": "Vui lòng đăng nhập bằng SSO. Đăng nhập bằng mật khẩu bị vô hiệu hóa.", - "sign_in_with_sso": "Đăng nhập bằng {nhà cung cấp}", + "sign_in_with_sso": "Đăng nhập bằng {provider}", "email_password_disabled": "Đăng nhập email/mật khẩu bị vô hiệu hóa. Vui lòng sử dụng SSO.", "email_password_disabled_message": "Đăng nhập email/mật khẩu bị vô hiệu hóa đối với tổ chức này.", "google_auth_disabled": "Xác thực Google bị vô hiệu hóa.", @@ -3294,7 +3296,7 @@ "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}" + "resets_on": "Đặt lại {date}" } } }, @@ -3702,7 +3704,7 @@ "no_available_courses": "Không có khóa học có sẵn để thêm.", "no_matching_courses": "Không có khóa học phù hợp với tìm kiếm của bạn.", "no_matching_program_courses": "Không có chương trình khóa học phù hợp với tìm kiếm của bạn.", - "pagination_status": "Trang {trang} trong tổng số {totalPages}", + "pagination_status": "Trang {page} trong tổng số {totalPages}", "published_access_callout_title": "Quyền truy cập của sinh viên", "published_access_callout_description": "Sinh viên chỉ có quyền truy cập vào các khóa học được xuất bản. Các khóa học có thể có trong chương trình này cho nhóm của bạn trong khi vẫn chưa được xuất bản và các khóa học đó sẽ bị ẩn với sinh viên cho đến khi bạn xuất bản chúng." }, @@ -3724,7 +3726,7 @@ "user_avatar_alt": "Hình đại diện của người dùng", "comments": { "comment": "bình luận", - "showing_of": "Đang hiển thị {được hiển thị} trong tổng số {toàn bộ}", + "showing_of": "Đang hiển thị {shown} trong tổng số {total}", "hide": "Ẩn bình luận", "placeholder": "Thêm bình luận chương trình", "submit_aria": "Gửi bình luận", @@ -3801,7 +3803,7 @@ "heading": "Mục tiêu của bạn", "empty_title": "Không có mục tiêu nào được giao", "empty_description": "Khi người hướng dẫn của bạn đặt mục tiêu, họ sẽ hiển thị ở đây.", - "due_in_days": "Đến hạn sau {ngày} ngày nữa", + "due_in_days": "Đến hạn sau {days} ngày nữa", "due_tomorrow": "Hạn chót vào ngày mai", "due_today": "Hạn chót hôm nay", "overdue": "Quá hạn", @@ -3967,7 +3969,7 @@ "rename_chat_placeholder": "Tiêu đề cuộc trò chuyện", "rename_chat_failed": "Không thể đổi tên cuộc trò chuyện này. Hãy thử lại.", "error_rate_limit": "Dịch vụ AI tạm thời bận. Vui lòng thử lại sau giây lát.", - "error_rate_limit_with_wait": "Dịch vụ AI tạm thời bận. Vui lòng thử lại sau {giây} giây.", + "error_rate_limit_with_wait": "Dịch vụ AI tạm thời bận. Vui lòng thử lại sau {seconds} giây.", "error_context_too_long": "Cuộc trò chuyện quá dài. Hãy thử bắt đầu một cuộc trò chuyện mới hoặc rút ngắn tin nhắn của bạn.", "error_network": "Lỗi mạng. Vui lòng kiểm tra kết nối của bạn và thử lại.", "context_usage_tooltip": "Đã sử dụng mã thông báo {used} / {max}", @@ -4010,7 +4012,7 @@ "created": "Đã tạo", "metadata_updated": "Đã cập nhật siêu dữ liệu", "content_written": "Nội dung viết", - "questions_added": "+{đếm} câu hỏi", + "questions_added": "+{count} câu hỏi", "questions_updated": "{count} câu hỏi đã được chỉnh sửa", "section_added": "Đã thêm khối", "section_edited": "Đã chỉnh sửa khối" @@ -4260,7 +4262,7 @@ "subtitle": "Theo dõi trạng thái chứng nhận trên mọi khóa học tuân thủ trong tổ chức của bạn.", "learners": { "heading": "Người học", - "subtitle": "{đếm, số} khớp", + "subtitle": "{count, number} khớp", "empty": "Không có người học nào phù hợp với bộ lọc này", "learner": "Người học", "course": "Khóa học", @@ -4311,7 +4313,7 @@ "submit": "Kiểm tra câu trả lời của tôi", "try_again": "Thử lại", "practice_again": "Luyện tập lại", - "attempt_option": "Hãy thử {attemptNumber} - {đúng}/{total}", + "attempt_option": "Hãy thử {attemptNumber} - {correct}/{total}", "attempts_select_aria": "nỗ lực của bạn", "privacy_hint": "Được chấm điểm ngay lập tức trong trình duyệt của bạn - không có gì được gửi.", "summary_template": "Bạn đã nhận được [[đúng]]/[[tổng]] đúng." @@ -4334,7 +4336,7 @@ "page_title": "Không gian làm việc", "page_description": "Quản lý không gian làm việc trong tài khoản của bạn. Không gian làm việc chia sẻ một gói đăng ký và mức sử dụng chung.", "create_cta": "Tạo không gian làm việc", - "create_cta_used": "{đã sử dụng} trong số {phụ cấp} đã sử dụng", + "create_cta_used": "{used} trong số {allowance} đã sử dụng", "create_cta_disabled_limit": "Bạn đã đạt đến giới hạn {allowance}-không gian làm việc. Liên hệ với chúng tôi để mở rộng.", "create_cta_disabled_upgrade": "Đa không gian làm việc là một tính năng của Doanh nghiệp.", "upgrade_link": "Nâng cấp",