From c4a2136c2e4690c77d58a159fd835ca71c217ab5 Mon Sep 17 00:00:00 2001 From: Henrik Nygren Date: Thu, 17 Oct 2024 15:59:08 +0300 Subject: [PATCH] Add Ukrainian translations, and add some missing translations (#1331) * Add a way to translate missing translations * Import Ukrainian translations * Add missing translations --- bin/translations-translate | 1 + bin/translations-translate-missing | 259 +++++++ .../packages/common/src/locales/ar/cms.json | 11 + .../src/locales/ar/course-material.json | 4 + .../packages/common/src/locales/uk/cms.json | 148 ++++ .../src/locales/uk/course-material.json | 219 ++++++ .../src/locales/uk/example-exercise.json | 8 + .../common/src/locales/uk/main-frontend.json | 712 ++++++++++++++++++ .../common/src/locales/uk/quizzes.json | 167 ++++ .../common/src/locales/uk/shared-module.json | 108 +++ .../packages/common/src/locales/uk/tmc.json | 21 + 11 files changed, 1658 insertions(+) create mode 100755 bin/translations-translate-missing create mode 100644 shared-module/packages/common/src/locales/uk/cms.json create mode 100644 shared-module/packages/common/src/locales/uk/course-material.json create mode 100644 shared-module/packages/common/src/locales/uk/example-exercise.json create mode 100644 shared-module/packages/common/src/locales/uk/main-frontend.json create mode 100644 shared-module/packages/common/src/locales/uk/quizzes.json create mode 100644 shared-module/packages/common/src/locales/uk/shared-module.json create mode 100644 shared-module/packages/common/src/locales/uk/tmc.json diff --git a/bin/translations-translate b/bin/translations-translate index 549e0a1e854..a8bb5309541 100755 --- a/bin/translations-translate +++ b/bin/translations-translate @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# Machine translates the i18next translation files from english to another language using the Azure API. import os import json diff --git a/bin/translations-translate-missing b/bin/translations-translate-missing new file mode 100755 index 00000000000..b3c5321266f --- /dev/null +++ b/bin/translations-translate-missing @@ -0,0 +1,259 @@ +#!/usr/bin/env python3 +# Automatically adds missing translations for all non-English languages using the Azure API. + +import os +import json +import http.client +from typing import Dict, Any, List +import json5 +import logging + +current_file_path = os.path.abspath(__file__) +LOCALES_DIR = os.path.abspath( + os.path.join( + __file__, "..", "..", "shared-module", "packages", "common", "src", "locales" + ) +) + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + handlers=[logging.StreamHandler()], +) + + +def create_payload(prompt: str, user_message: str) -> Dict[str, Any]: + """Create the payload for the API request.""" + return { + "messages": [ + {"role": "system", "content": prompt}, + {"role": "user", "content": user_message}, + ], + "temperature": 0.4, + "top_p": 1.0, + "frequency_penalty": 0.0, + "presence_penalty": 0.0, + "stop": None, + "stream": False, + } + + +def get_api_key() -> str: + """Retrieve the API key from environment variables.""" + api_key = os.getenv("AZURE_API_KEY") + + if not api_key: + raise ValueError("AZURE_API_KEY environment variable not set") + return api_key + + +def make_api_request(payload: Dict[str, Any], api_key: str) -> str: + """Make a POST request to the Azure API with the given payload and API key.""" + api_host = os.getenv("AZURE_API_HOST") + api_model = os.getenv("AZURE_API_MODEL") + if not api_host or not api_model: + raise ValueError( + "AZURE_API_HOST and AZURE_API_MODEL environment variables must be set" + ) + + # Sanitize api_host by removing protocol and leading slashes if present + original_api_host = api_host # For logging + if api_host.startswith("https://"): + api_host = api_host[len("https://") :] + elif api_host.startswith("http://"): + api_host = api_host[len("http://") :] + if api_host.startswith("//"): + api_host = api_host.lstrip("/") + + logging.info(f"Using API host: '{api_host}' (original: '{original_api_host}')") + + conn = http.client.HTTPSConnection(api_host) + headers = { + "api-key": api_key, + "Content-Type": "application/json; charset=utf-8", # Specify UTF-8 charset + } + + # Encode the body as UTF-8 bytes + body = json.dumps(payload, ensure_ascii=False).encode("utf-8") + + try: + conn.request( + "POST", + f"/openai/deployments/{api_model}/chat/completions?api-version=2024-06-01", + body, + headers, + ) + res = conn.getresponse() + response_data = res.read().decode("utf-8") # Decode response as UTF-8 + conn.close() + return response_data + except Exception as e: + logging.error(f"Error during API request: {e}") + conn.close() + raise + + +def get_all_language_slugs(locales_dir: str) -> List[str]: + """Retrieve all language slugs except for 'en'.""" + return [ + lang + for lang in os.listdir(locales_dir) + if os.path.isdir(os.path.join(locales_dir, lang)) and lang.lower() != "en" + ] + + +def load_json_file(filepath: str) -> Dict[str, str]: + """Load a JSON file and return its content as a dictionary.""" + with open(filepath, "r", encoding="utf-8") as file: + try: + return json.load(file) + except json.JSONDecodeError: + # Fallback to json5 if standard json fails + file.seek(0) + return json5.load(file) + + +def save_json_file(data: Dict[str, Any], filepath: str): + """Save a dictionary to a JSON file with pretty formatting.""" + with open(filepath, "w", encoding="utf-8") as file: + json.dump(data, file, indent=2, ensure_ascii=False) + file.write("\n") # Ensure the file ends with a newline for POSIX compliance + + +def clean_response_content(res: str) -> str: + """ + Remove Markdown code block syntax from the response. + Example: + Input: ```json\n{...}\n``` + Output: {...} + """ + res = res.strip() + if res.startswith("```"): + # Remove the opening ``` + res = res.split("```", 1)[1] + if res.endswith("```"): + # Remove the closing ``` + res = res.rsplit("```", 1)[0] + return res.strip() + + +def translate_missing_keys( + en_keys: Dict[str, str], target_keys: Dict[str, str], target_lang: str +) -> Dict[str, str]: + """Translate missing keys from English to the target language.""" + missing = {k: v for k, v in en_keys.items() if k not in target_keys} + if not missing: + return {} + + translated = {} + api_key = get_api_key() + + # Split missing keys into batches of 100 + batches = [ + dict(list(missing.items())[i : i + 100]) for i in range(0, len(missing), 100) + ] + for idx, batch in enumerate(batches, 1): + logging.info( + f"Translating batch {idx}/{len(batches)} for language '{target_lang}'" + ) + prompt = ( + f"Translate the given i18next translation key-value pairs from English to {target_lang}. " + "Provide only the translated JSON object without any additional text or code blocks. Ensure the JSON is valid." + ) + user_message = json.dumps(batch, indent=2, ensure_ascii=False) + payload = create_payload(prompt, user_message) + response = make_api_request(payload, api_key) + + # Basic validation to ensure response starts with '{' + if not response.strip().startswith("{"): + logging.error( + f"Unexpected response format for batch {idx} in language '{target_lang}': {response}" + ) + continue + + try: + parsed = json.loads(response) + res = parsed["choices"][0]["message"]["content"] + + # Clean the response content to remove code blocks + res_clean = clean_response_content(res) + + # Now parse the cleaned response + res_parsed = json5.loads(res_clean) + if not isinstance(res_parsed, dict): + logging.error( + f"Unexpected response format for batch {idx}: {res_clean}" + ) + continue + translated.update(res_parsed) + logging.info(f"Batch {idx} translated successfully.") + except (json.JSONDecodeError, KeyError, ValueError) as e: + logging.error(f"Error parsing response for batch {idx}: {e}") + logging.error(f"Response content: {response}") + continue + + return translated + + +def main(): + api_host = os.getenv("AZURE_API_HOST") + api_model = os.getenv("AZURE_API_MODEL") + if not api_host or not api_model: + raise ValueError( + "AZURE_API_HOST and AZURE_API_MODEL environment variables must be set" + ) + + en_dir = os.path.join(LOCALES_DIR, "en") + if not os.path.exists(en_dir): + raise FileNotFoundError(f"English locale directory not found at {en_dir}") + + language_slugs = get_all_language_slugs(LOCALES_DIR) + logging.info(f"Found languages to process: {language_slugs}") + + for lang_slug in language_slugs: + logging.info(f"\nProcessing language: '{lang_slug}'") + target_dir = os.path.join(LOCALES_DIR, lang_slug) + if not os.path.exists(target_dir): + os.makedirs(target_dir) + logging.info( + f"Created directory for language '{lang_slug}' at {target_dir}" + ) + + for filename in os.listdir(en_dir): + if not filename.endswith(".json"): + continue + + en_file_path = os.path.join(en_dir, filename) + target_file_path = os.path.join(target_dir, filename) + + en_translations = load_json_file(en_file_path) + if os.path.exists(target_file_path): + target_translations = load_json_file(target_file_path) + else: + target_translations = {} + logging.info( + f"Target file '{filename}' does not exist for language '{lang_slug}'. It will be created." + ) + + missing_translations = translate_missing_keys( + en_translations, target_translations, lang_slug + ) + if not missing_translations: + logging.info( + f"No missing translations in '{filename}' for language '{lang_slug}'." + ) + continue + + # Update target translations with the new translations + target_translations.update(missing_translations) + save_json_file(target_translations, target_file_path) + logging.info( + f"Updated '{filename}' with {len(missing_translations)} new translations for language '{lang_slug}'." + ) + + logging.info("\nAll missing translations have been processed.") + + +if __name__ == "__main__": + logging.info("Starting translation process...") + main() diff --git a/shared-module/packages/common/src/locales/ar/cms.json b/shared-module/packages/common/src/locales/ar/cms.json index 78781e62d38..a6570de15fd 100644 --- a/shared-module/packages/common/src/locales/ar/cms.json +++ b/shared-module/packages/common/src/locales/ar/cms.json @@ -9,6 +9,8 @@ "authors-block": "كتلة المؤلفين", "authors-block-description": "تُستخدم كتلة المؤلفين لعرض نبذة مختصرة وصورة للمؤلف(ين) لصفحة معينة", "available-repository-exercises": "تمارين المستودع المتاحة", + "back-card": "ظهر البطاقة القلابة", + "back-card-explanation": "تُستخدم هذه البطاقة كجانب خلفي للبطاقة القلابة", "background": "الخلفية", "background-color": "لون الخلفية", "background-image": "صورة الخلفية", @@ -51,8 +53,15 @@ "exercise-title": "التمرين", "exercises-in-chapter-placeholder": "عنصر نائب للتمارين في الفصل", "exercises-in-chapter-placeholder-explanation": "تُوضع هذه الكتلة في الصفحة الأمامية لكل فصل، مثل /chapter-1/ لعرض والتنقل بين التمارين المختلفة داخل الفصل.", + "expandable-content-explanation": "يحتوي هذا الجزء على عنوان أو عناوين متعددة ولكل منها محتوى يمكن توسيعه/طيه", + "expandable-content-placeholder": "محتوى قابل للتوسيع", "failed-loading-repository-exercises": "فشل تحميل تمارين المستودع", + "flip-card-placeholder": "بطاقة قلابة", + "flip-card-placeholder-explanation": "يُستخدم هذا الجزء لعرض بطاقة قابلة للقلابة ذات وجهين.", + "flip-card-size-customizer": "مخصص حجم البطاقة القلابة", "font-color": "لون الخط", + "front-card": "وجه البطاقة القلابة", + "front-card-explanation": "تُستخدم هذه البطاقة كجانب أمامي للبطاقة القلابة", "glossary-placeholder": "عنصر نائب للقاموس", "glossary-placeholder-explanation": "ستحتوي هذه الكتلة على قاموس الدورة.", "header-export": "تصدير", @@ -104,6 +113,8 @@ "remove": "إزالة", "research-form-checkbox-description": "يستخدم هذا المربع لإضافة سؤال إلى نموذج البحث.", "reset": "إعادة تعيين", + "revealable-content-explanation": "يحتوي هذا الجزء على محتوى عادي وزر يمكن للطالب النقر عليه للكشف عن المحتوى الإضافي المخفي", + "revealable-content-placeholder": "محتوى قابل للكشف", "save": "حفظ", "saved": "تم الحفظ", "saving": "جارٍ الحفظ...", diff --git a/shared-module/packages/common/src/locales/ar/course-material.json b/shared-module/packages/common/src/locales/ar/course-material.json index 86e1d516fd8..0a36d127729 100644 --- a/shared-module/packages/common/src/locales/ar/course-material.json +++ b/shared-module/packages/common/src/locales/ar/course-material.json @@ -7,6 +7,7 @@ "add-country-to-map": "ضع علامتك على الخريطة: أخبرنا من أين تتعلم!", "additional-module": "وحدة إضافية", "american-english": "الإنجليزية", + "an-insight-to-consider": "رؤية للتفكير", "attempted-exercises-required-for-completion": "التمارين المطلوبة لإكمالها", "audio-notification-description": "استمع إلى محتوى الصفحة الحالية بصوت عالٍ", "author": "المؤلفون", @@ -16,8 +17,10 @@ "button-end-exam": "إنهاء الامتحان", "button-label-search-for-pages": "البحث عن الصفحات", "button-text-agree": "موافق", + "button-text-flip": "اقلب", "button-text-give-extra-peer-review": "إعطاء مراجعة إضافية من الأقران", "button-text-manage-course": "إدارة الدورة", + "button-text-proceed-after-thinking": "تابع بعد التفكير", "button-text-refresh": "تحديث", "button-text-reset-exam-progress": "إعادة تعيين تقدم الامتحان", "can-comment-on-portions-of-material-by-highlightig": "يمكنك التعليق على أجزاء محددة من المادة بتحديدها.", @@ -84,6 +87,7 @@ "failed-to-submit": "فشل في الإرسال {{ error }}", "feedback-submitted-succesfully": "تم إرسال الملاحظات بنجاح", "finnish": "الفنلندية", + "flip-card": "اقلب البطاقة", "generate-certicate": "توليد شهادة", "generate-certificate-button-label": "توليد شهادة للإكمال", "give-feedback": "إعطاء ملاحظات", diff --git a/shared-module/packages/common/src/locales/uk/cms.json b/shared-module/packages/common/src/locales/uk/cms.json new file mode 100644 index 00000000000..4d3abca8137 --- /dev/null +++ b/shared-module/packages/common/src/locales/uk/cms.json @@ -0,0 +1,148 @@ +{ + "add-peer-review": "Додати рецензію колеги", + "add-peer-review-question": "Додати питання для рецензії колеги", + "add-self-review": "Додати самооцінку", + "add-slide": "Додати слайд", + "add-task": "Додати завдання", + "answer-required": "Відповідь обов'язкова", + "are-you-sure-you-want-to-discard-changes": "Ви впевнені, що хочете відхилити незбережені зміни?", + "authors-block": "Блок авторів", + "authors-block-description": "Блок авторів використовується для відображення короткої біографії та фото автора(ів) конкретної сторінки", + "available-repository-exercises": "Доступні вправи з репозиторію", + "back-card": "Зворотна сторона картки", + "back-card-explanation": "Ця картка використовується як зворотна сторона картки, що перевертається", + "background": "Фон", + "background-color": "Колір фону", + "background-image": "Фонове зображення", + "block-list": "Поточні блоки", + "block-menu": "Додати блок / Усі доступні блоки", + "block-props": "Властивості блоку", + "button-text-create": "Створити", + "button-text-export-all-pages": "Експортувати всі сторінки", + "button-text-select-media": "Вибрати медіа (не реалізовано)", + "chapter-progress-placeholder": "Заповнювач прогресу розділу", + "chapter-progress-placeholder-explanation": "Цей блок використовується для відображення прогресу розділу. Для відображення прогресу всього курсу слід використовувати блок Прогресу курсу.", + "chapters-grid-placeholder": "Заповнювач сітки розділів", + "chapters-grid-placeholder-explanation": "Цей блок розташований на головній сторінці матеріалу курсу для легкого переходу до різних розділів.", + "close": "Закрити", + "code-giveaway": "Роздача кодів", + "code-giveaway-explanation": "Цей блок вказує, де в матеріалі курсу знаходиться роздача кодів.", + "conditional-block": "Умовно показаний блок", + "conditional-block-explanation": "Цей блок буде показаний студенту, якщо студент виконає всі задані умови.", + "conditionally-shown-content": "Умовно показаний контент", + "configure-review-answers-option": "Налаштувати варіант відповідей на рецензію", + "congratulations-explanation": "Цей блок розташований у матеріалі курсу, де ви бажаєте привітати студента з завершенням курсу. Для курсів, які налаштовані на отримання ECTS, він також надасть посилання на сторінку, де вони можуть зареєструвати своє завершення в Відкритому університеті.", + "congratulations-placeholder": "Заповнювач привітань", + "course-instance-enrollment-condition": "Студент записався на будь-який з наступних курсів:", + "course-progress-placeholder": "Заповнювач прогресу курсу", + "course-progress-placeholder-explanation": "Цей блок розташований у матеріалі курсу, де ви бажаєте показати користувачеві їх поточний прогрес і скільки балів вони отримали за весь курс.", + "default": "За замовчуванням", + "default-question": "Вставте питання тут", + "delete": "Видалити", + "edit": "Редагувати", + "editor-select-sidebar-view": "Перемикання виду", + "error": "Помилка", + "error-cannot-render-editor-for-exercise-service-x": "Неможливо відобразити редактор для сервісу вправ {{slug}}.", + "error-cannot-render-exercise-task-missing-url": "Неможливо відобразити завдання вправи, відсутня URL.", + "error-question-too-short": "Питання занадто коротке.", + "error-spec-not-parseable": "Специфікація не розбирається.", + "exercise-custom-view-block": "Блок користувацького перегляду вправ", + "exercise-custom-view-block-explanation": "Перегляд сервісу вправ, який не пов'язаний з вправою.", + "exercise-max-points": "Максимальна кількість балів", + "exercise-name": "Назва вправи", + "exercise-title": "Вправа", + "exercises-in-chapter-placeholder": "Заповнювач вправ у розділі", + "exercises-in-chapter-placeholder-explanation": "Цей блок розташований на кожній головній сторінці розділу, наприклад, /розділ-1/ для переліку та переходу до різних вправ у розділі.", + "expandable-content-explanation": "Цей блок має один або кілька заголовків, кожен з яких має контент, який можна розгорнути/згорнути", + "expandable-content-placeholder": "Розширюваний контент", + "failed-loading-repository-exercises": "Не вдалося завантажити вправи з репозиторію", + "flip-card-placeholder": "Картка, що перевертається", + "flip-card-placeholder-explanation": "Цей блок використовується для відображення двосторонньої картки, що перевертається.", + "flip-card-size-customizer": "Налаштування розміру картки, що перевертається", + "font-color": "Колір шрифту", + "front-card": "Лицьова сторона картки", + "front-card-explanation": "Ця картка використовується як лицьова сторона картки, що перевертається", + "glossary-placeholder": "Заповнювач глосарію", + "glossary-placeholder-explanation": "Цей блок міститиме глосарій курсу.", + "header-export": "Експорт", + "instructions": "Інструкції", + "label-align-bottom": "Вирівняти по низу", + "label-align-center": "Вирівняти по центру", + "label-default": "За замовчуванням", + "label-email-subject": "Тема електронної пошти", + "label-no-padding": "Без відступів", + "label-points-are-all-or-nothing": "Бали за принципом все або нічого", + "label-question": "Питання", + "label-repeat-background-x": "Повторювати фон по горизонталі", + "label-template-name": "Назва шаблону", + "label-title": "Заголовок", + "label-weight": "Вага", + "landing-page-copy-text": "Текст копії головної сторінки", + "learning-objectives": "Навчальні цілі", + "limit-number-of-tries": "Обмежити кількість спроб", + "link-course-default-peer-review-config": "Типова конфігурація рецензії колеги для курсу", + "loading": "Завантаження...", + "loading-repository-exercises": "Завантаження вправ з репозиторію", + "map-block-placeholder": "Заповнювач блоку карти", + "map-block-placeholder-explanation": "Це заповнювач для карти, яка показує країни студентів, що записалися на курс.", + "menti-height-help-text": "Висота в пікселях. Відрегулюйте висоту вбудованого вікна, щоб зникла смуга прокрутки. Також переконайтеся, що смуга прокрутки не видна в матеріалі курсу.", + "menti-height-label": "Висота", + "menti-panel-instructions": "Будь ласка, вставте URL для вбудовування та надішліть. Після цього ви можете визначити заголовок і висоту.", + "menti-panel-title": "Атрибути Mentimeter", + "menti-title-help-text": "Встановіть заголовок. Це використовується екранними читачами.", + "menti-title-label": "Заголовок", + "module-completion-condition": "Студент завершив будь-який з наступних модулів:", + "needs-peer-review": "потребує рецензії колеги", + "no-repository-exercises-found-for-course": "Не знайдено вправ з репозиторію для курсу", + "open-saved-page-in-new-tab": "Відкрити збережену сторінку в новій вкладці", + "outdated-blocks-migrated-explanation": "{{num}} блоків були створені за допомогою старішої версії редактора, і їх потрібно було мігрувати до нового формату. Збережіть сторінку, щоб зберегти зміни.", + "pages-in-chapter-placeholder": "Заповнювач сторінок у розділі", + "pages-in-chapter-placeholder-explanation": "Цей блок розташований на кожній головній сторінці розділу, наприклад, /розділ-1/ для легкого переходу до різних підрозділів.", + "partially-transparent-background": "Зробити фонове зображення частково прозорим", + "partners-block": "Блок партнерів", + "partners-block-description": "Блок партнерів використовується для відображення логотипів всіх партнерів на цільовій сторінці", + "peer-and-self-review-configuration": "Конфігурація взаємної та самостійної перевірки", + "peer-review-accepting-threshold": "Поріг прийняття взаємної перевірки", + "peer-review-processing-strategy": "Стратегія обробки взаємної перевірки", + "peer-review-question": "Питання взаємної перевірки", + "peer-review-question-type": "Тип питання взаємної перевірки", + "peer-reviews-to-give": "Кількість взаємних перевірок для надання", + "peer-reviews-to-receive": "Кількість взаємних перевірок для отримання", + "peer-reviews-to-receive-and-give-error-message": "Кількість взаємних перевірок для надання повинна бути більшою за кількість взаємних перевірок для отримання", + "please-select-exercise-type": "Будь ласка, виберіть тип вправи:", + "remove": "Видалити", + "research-form-checkbox-description": "Цей блок використовується для додавання питання до дослідницької форми.", + "reset": "Скинути", + "revealable-content-explanation": "Цей блок має звичайний вміст і кнопку, яку студент може натиснути, щоб показати прихований додатковий вміст", + "revealable-content-placeholder": "Прихований вміст", + "save": "Зберегти", + "saved": "Збережено", + "saving": "Збереження...", + "select": "Вибрати", + "select-an-option": "Виберіть опцію", + "select-repository-exercise": "Виберіть вправу з репозиторію", + "selected-exercise-type": "Вибраний тип вправи: {{exerciseType}}", + "separator-color": "Колір розділювача", + "serialize-to-html": "Серіалізувати в HTML", + "slide-title": "Слайд {{ number }}", + "start": "Почати", + "table-box": "Таблиця", + "table-box-description": "Це спеціальний блок таблиці з кольоровим фоном", + "table-width-customizer": "Налаштування ширини таблиці", + "task": "Завдання", + "title-additional-review-instructions": "Додаткові інструкції для перевірки", + "title-assignment": "Завдання", + "title-outdated-blocks-migrated": "Застарілі блоки мігрували", + "title-research-form-question": "Питання дослідницької форми", + "top-level-block-placeholder": "Заповнювач для сторінок верхнього рівня", + "top-level-block-placeholder-explanation": "Цей блок містить список всіх сторінок верхнього рівня в курсі і розміщується на головній сторінці матеріалів курсу.", + "tries-per-slide": "Максимальна кількість спроб на слайд", + "unsupported-block-placeholder": "Заповнювач для непідтримуваних блоків", + "unsupported-block-placeholder-explanation": "Цей блок використовується як заповнювач для блоків, які не підтримуються.", + "upload-or-drag-and-drop-onto-this-block": "Завантажте або перетягніть на цей блок", + "use-course-default-peer-review-config": "Використовувати стандартну конфігурацію взаємної перевірки курсу", + "use-default-text-for-label": "Використовувати стандартний текст для мітки", + "warning-points-are-all-or-nothing-disabled": "Попередження: Рекомендується увімкнути «всі або нічого». Взаємні перевірки, надані студентами, значно різняться за якістю, що може призвести до того, що деякі студенти отримають несправедливі бали за вправу. Увімкнення цієї опції зменшує випадковість у отриманих балах, роблячи процес взаємної перевірки справедливішим для студентів.", + "welcome-message-for-course": "Вітальне повідомлення для курсу...", + "width-of-table": "Ширина таблиці" +} diff --git a/shared-module/packages/common/src/locales/uk/course-material.json b/shared-module/packages/common/src/locales/uk/course-material.json new file mode 100644 index 00000000000..954b4eb2521 --- /dev/null +++ b/shared-module/packages/common/src/locales/uk/course-material.json @@ -0,0 +1,219 @@ +{ + "404-not-found": "404 Не знайдено", + "Deadline-passed-n-days-ago": "Дедлайн минув {{days}} днів тому", + "about-the-chatbot": "Про чатбота", + "action-back-to-front-page": "Повернутися на першу сторінку", + "add-comment": "Додати коментар", + "add-country-to-map": "Зробіть позначку на карті: розкажіть нам, з ви вчитеся!", + "additional-module": "Додатковий модуль", + "american-english": "Англійська", + "an-insight-to-consider": "Інсайт для розгляду", + "attempted-exercises-required-for-completion": "Спроби вправ, необхідних для завершення", + "audio-notification-description": "Прослуховування вмісту поточної сторінки вголос", + "audio-player": "Слухай", + "author": "Автори", + "available-in-languages": "Доступно {{num}} мовами", + "available-on-date-at-time": "Доступно {{ date }} о {{ time }}", + "block-invalid-without-course": "Цей блок не можна використовувати на сторінці, яка не стосується курсу.", + "button-end-exam": "Завершити екзамен", + "button-label-search-for-pages": "Пошук сторінок", + "button-text-agree": "Погоджуюсь", + "button-text-flip": "Перевернути", + "button-text-give-extra-peer-review": "Надайте додаткову експертну оцінку", + "button-text-manage-course": "Керувати курсом", + "button-text-proceed-after-thinking": "Продовжити після обдумування", + "button-text-refresh": "Оновити", + "button-text-reset-exam-progress": "Скинути прогрес екзамену", + "can-comment-on-portions-of-material-by-highlightig": "Ви можете прокоментувати окремі частини матеріалу, виділивши їх.", + "cannot-render-exercise-task-missing-url": "Неможливо відобразити завдання вправи, відсутня url.", + "chapter-chapter-number-chapter-name": "Розділ {{chapterNumber}}: {{chapterName}}", + "chapter-progress": "прогрес розділа", + "chatbot-discalimer-sensitive-information": "Ніколи не розголошуйте будь-яку конфіденційну інформацію чатботу.", + "chatbot-disclaimer-check": "Завжди перевіряйте твердження, зроблені чатботом. Чатботи на основі LLM можуть створювати дуже переконливі, але фактично неправильні заяви.", + "chatbot-disclaimer-disclose-part-1": "Завжди розкривайте використання LLM у ваших дослідженнях. Ви можете знайти керівництво Університету Гельсінкі щодо використання LLM у навчанні", + "chatbot-disclaimer-disclose-part-2": "тут", + "chatbot-disclaimer-start": "Ви відкриваєте чатбот на основі великої мовної моделі (LLM). Щоб використовувати цей чатбот, ви повинні погодитися, що ви...", + "choose-a-language": "Виберіть мову", + "choose-preferred-language": "Виберіть бажану мову", + "claim-code": "Код твердження", + "clear-selection": "Очистити вибір", + "click-on-course-material-to-make-it-editable": "Натисніть на матеріал курсу, щоб зробити його редагованим!", + "close": "Закрити", + "closed": "Зачинено!", + "commenting-on-selection": "Коментуючи: {{selection}}", + "congratulations": "Вітаю", + "continue": "Продовжити", + "could-not-fetch-embed": "Не вдалося отримати {{provider}} oEmbed з URL: {{url}}", + "country-added-successfully": "Країну успішно додано", + "course": "Курс", + "course-has-no-page-at-path": "Цей курс не має сторінки {{path}}", + "course-language-change-warning": "Примітка: матеріал курсу буде переведено на {{newLanguage}} з іншим прогресом курсу.", + "course-overview": "Огляд курсу", + "course-progress": "Прогрес курсу", + "course-title": "Курс: {{title}}", + "custom-view-iframe-title": "Контент, пов'язаний з вправами", + "deadline": "Кінцевий термін:", + "default-course-instance-name": "За замовчуванням", + "definition": "Визначення", + "delete": "Видалити", + "do-you-want-to-send-changes": "Ви бажаєте надіслати свої зміни?", + "dont-know-how-to-render-this-assignment": "Не знаю, як відобразити це завдання.", + "ends-at-time": "Закінчується: {{time}}", + "enroll": "Записатися", + "error-comment-cannot-be-empty": "Коментар не може бути порожнім", + "error-comment-too-long": "Коментар занадто довгий", + "error-missing-course-instance-id": "Відсутній ідентифікатор екземпляра курсу", + "error-no-code-giveaway-id": "Тут повинен бути код роздачі, але не налаштовано, яка роздача повинна бути показана.", + "error-no-exercise-type-selected": "Тип вправи не вибрано", + "error-page-data-in-invalid-format": "Помилка: дані сторінки мають неправильний формат", + "error-page-does-not-belong-to-chapter": "Ця сторінка не належить до розділу", + "error-page-without-course": "Помилка: сторінка не пов'язана з жодним курсом", + "error-submission-failed": "Відправлення не вдалося", + "error-title": "Помилка", + "exam-can-be-started-after": "Іспит можна розпочати після {{ starts-at }}", + "exam-has-not-started-yet": "Іспит ще не почався", + "exam-no-end-time": "Час завершення не встановлено", + "exam-no-start-time": "Час початку не встановлено", + "exam-start-confirmation": "Ви впевнені, що хочете розпочати іспит?\n\nЗверніть увагу, що ви не можете скасувати іспит після його початку. У вас буде {{ time-minutes }} хвилин, щоб скласти іспит.", + "exam-submission-has-been-saved-help-text": "Вашу заявку збережено. Якщо ви хочете змінити свою відповідь, спробуйте ще раз. Під час оцінювання іспиту розглядатиметься лише ваша остання робота.", + "exam-submissions-not-accepted-after": "Подання більше не приймаються після {{ ends-at }}", + "exam-time-running-out-soon-help-text": "Залишилося менше 10 хвилин. Переконайтеся, що ви надіслали всі вправи. Не відкладайте це на останню хвилину!", + "exam-time-to-complete": "У вас є {{ time-minutes }} хвилин, щоб скласти іспит після початку", + "exam-time-up": "Ваш час минув, іспит закрито. Поверніться, щоб побачити результати після {{ ends-at }}.", + "exam-timer-has-run-out": "Час минув, іспит закрито.", + "exercise-task-content": "Вправа {{ exercise-number }}, завдання {{ task-number }} зміст", + "exercises-attempted": "Спроба виконання вправ", + "exercises-in-this-chapter": "Вправи в цьому розділі", + "exit": "Вихід", + "failed-to-submit": "Не вдалося надіслати {{ error }}", + "feedback-submitted-succesfully": "Відгук успішно надіслано", + "finnish": "Фінська", + "flip-card": "Перевернути картку", + "generate-certicate": "Створити сертифікат", + "generate-certificate-button-label": "Створити сертифікат для завершення", + "give-feedback": "Дайте відгук", + "glossary": "Глосарій", + "grade": "Оцінка", + "grading-failed": "Не вдалося оцінити вправу", + "grading-fully-graded": "Вправа повністю оцінена", + "grading-pending": "Оцінювання вправ очікує", + "grading-pending-manual": "Оцінка вправ чекає ручної оцінки", + "heading-chatbot": "Чатбот", + "help-text-answer-has-been-reviewed-and-locked": "Вашу відповідь переглянуто та оцінено. Нові пропозиції більше не допускаються.", + "help-text-exercise-involves-only-peer-review": "Після того, як ви здасте цю вправу, вам потрібно буде провести рецензування {{peer_reviews_to_give}} відповідей інших студентів. Після цього ваші однолітки рецензуватимуть вашу роботу, перш ніж ви отримаєте будь-які бали.", + "help-text-exercise-involves-only-self-review": "Після того, як ви здасте цю вправу, вам потрібно буде самостійно рецензувати свою відповідь. Після цього персонал курсу рецензуватиме вашу роботу, перш ніж ви отримаєте будь-які бали.", + "help-text-exercise-involves-peer-review": "Щоб виконати цю вправу, вам потрібно буде проаналізувати {{peer_reviews_to_give}} відповіді інших студентів після того, як ви подали свою відповідь. Після цього ви отримаєте експертні оцінки від інших студентів, перш ніж отримати бали.", + "help-text-exercise-involves-peer-review-and-self-review": "Після того, як ви здасте цю вправу, вам потрібно буде провести рецензування {{peer_reviews_to_give}} відповідей інших студентів, а потім самостійно рецензувати свою відповідь. Після цього ваші однолітки рецензуватимуть вашу роботу, перш ніж ви отримаєте будь-які бали.", + "help-text-increase-peer-review-priority": "Хочете прискорити процес? Дайте більше рецензій! Чим більше експертних оцінок ви надасте, тим більший пріоритет ми надамо вашій відповіді іншим студентам для перевірки.", + "help-text-no-answers-to-peer-review-yet": "Наразі немає відповідей для рецензування. Будь ласка, поверніться пізніше, щоб надати експертну оцінку.", + "help-text-waiting-for-manual-grading": "Чекаємо, поки вчитель перегляне вашу відповідь", + "help-text-waiting-for-peer-reviews": "Чекаємо, поки інші студенти переглянуть вашу відповідь.", + "heres-a-list-of-all-public-pages-for-this-course": "Ось список усіх загальнодоступних сторінок цього курсу:", + "if-author-of-course-please-create-front-page": "Якщо ви є автором курсу, будь ласка, створіть головну сторінку курсу.", + "impressive-reached-end-of-chapter": "Вражаюче! Ви дійшли до кінця цього розділу.", + "improve-material": "Поліпшити матеріал", + "information-pages": "Інформаційні сторінки", + "label-country": "Країна", + "label-course-instance": "Приклад курсу", + "label-exercise": "Вправи", + "label-feedback": "Відгук", + "label-message": "Повідомлення", + "label-name": "Ім'я", + "language-language": "Мова: {{language}}", + "link-text-open-accessible-view-of-this-content": "Відкрийте доступ для огляду цього контенту.", + "loading": "Завантаження", + "map-disclaimer": "*На карті ви знайдете розподіл студентів по країнах. Інші студенти бачитимуть лише загальну кількість студентів у вашій країні.", + "map-instruction": "Для початку вкажіть свою країну проживання. Після того, як ви зробите свій вибір, на карті з’являться країни, де проживають однокурсники.", + "map-tooltip-students-in-country": "{{country}} - {{count}} студентів", + "max-points": "Максимальна кількість балів", + "max-score-n-marks": "Максимальний бал: <2>{{marks}} бали", + "message-already-on-different-language-version": "Ви вже використовуєте іншу мовну версію цього курсу. Перш ніж відповідати на вправи, будь ласка, поверніться до <1>{{name}} або змініть активну мову в налаштуваннях курсу.", + "message-do-you-want-to-end-the-exam": "Ви впевнені, що хочете завершити екзамен? Переконайтеся, що ви здали всі вправи перед цим. Після цього ви не зможете відправляти відповіді.", + "message-the-exam-has-not-started-yet": "Ви ще не можете почати іспит. Будь ласка, поверніться пізніше.", + "message-you-have-not-met-the-requirements-for-taking-this-exam": "Ви не виконали вимог для складання цього іспиту.", + "n-characters-left": "Залишилося {{n}} символів", + "n-characters-over-limit": "{{n}} символів понад ліміт", + "no-comments-yet": "Поки немає коментарів", + "no-submission-received-for-this-exercise": "Для цієї вправи не отримано жодних заявок.", + "number-of-student": "Кількість студентів", + "open-audio-player-button": "Слухати", + "opens-in-time": "Відкривається через {{ relative-time }}", + "opens-now": "Відчиняється зараз!", + "peer-review": "Експертна оцінка", + "peer-review-instructions": "Ось відповідь іншого студента. Будь ласка, дайте їм відгук і оцініть відповідь за допомогою наведених тверджень.", + "peer-reviews-received-from-other-students": "Оцінки колег, отримані від інших студентів", + "please-log-in-to-answer-exercise": "Будь ласка, увійдіть, щоб відповісти на цю вправу.", + "please-log-in-to-see-your-progress": "Будь ласка, увійдіть, щоб побачити свій прогрес.", + "please-select-course-instance-before-answering-exercise": "Будь ласка, виберіть приклад курсу, перш ніж відповідати на цю вправу.", + "please-wait-until-next-chapter-opens": "Зачекайте, доки відкриється наступний розділ.", + "points-label": "Бали", + "points-required-for-completion": "Бали, необхідні для завершення", + "popular-regions": "Популярні країни", + "preview": "Попередній перегляд", + "preview-changes-or-make-more-edits": "Перегляньте свої зміни або внесіть додаткові зміни", + "proceed-to-next-topic": "Перейдіть до наступної теми", + "proceed-to-the-first-topic": "Перейдіть до першої теми", + "proceed-to-the-next-chapter": "Перейдіть до наступного розділу", + "question": "Питання", + "reached-end-of-course-material": "Ви дійшли до кінця матеріалу курсу!", + "reached-end-of-topic": "Ви дійшли до кінця цієї теми.", + "received-reviews": "Отримані рецензії", + "references": "Література", + "register": "Реєстрація", + "required-points": "Необхідні бали", + "save": "Зберегти", + "screen-reader-opens-in-new-tab": "(відкривається в новій вкладці)", + "search": "Пошук", + "search-field-placeholder": "Пошук...", + "search-pages-container": "Поле для пошуку сторінок", + "select-course-instance-explanation": "Викладачі або адміністративний персонал вибраного вами курсу зможуть бачити ваші бали, подання, статус завершення та іншу інформацію, пов’язану з вашим прогресом курсу.", + "select-course-version-to-see-your-progress": "Виберіть версію курсу, щоб побачити свій прогрес.", + "send": "Надіслати", + "settings": "Налаштування", + "show-answers": "Показати відповіді", + "start-peer-review": "Розпочати рецензування", + "start-self-review": "Почати саморецензування", + "start-studying": "Почніть вивчати...", + "start-the-exam": "Почніть іспит!", + "started-at-time": "Початок: {{time}}", + "student-in-this-region": "Студенти, які навчаються в цих країнах", + "student-points": "Студентські бали", + "submit-button": "Надіслати", + "table-of-contents": "Виберіть сторінку в розділі", + "template-exercise-instructions": "Ви можете надіслати свою відповідь на кожне запитання, щоб зберегти їх стан перед здачею іспиту. Ви побачите результати після того, як здасте іспит або закінчиться таймер.", + "term": "Термін", + "test-version-of-course-text": "Тестовий варіант курсу. Лише для оцінки.", + "things-to-know-before-you-start": "Що потрібно знати, перш ніж почати!", + "this-course-has-no-pages": "Цей курс не має сторінок", + "title-additional-questions": "Додаткові питання", + "title-answer-submitted-by-another-student": "Відповідь, подана іншим студентом", + "title-congratulations": "Вітаю!", + "title-course-settings": "Налаштування курсу", + "title-instructions": "Інструкції", + "title-peer-review": "Експертна оцінка", + "title-peer-review-instructions": "Інструкції щодо рецензування", + "title-select-course-instance": "Виберіть екземпляр курсу", + "title-select-course-version-to-see-your-progress": "Виберіть версію курсу, щоб побачити свій прогрес.", + "title-self-review": "Саморецензування", + "title-self-review-instructions": "Інструкції з саморецензування", + "title-waiting-for-peer-reviews": "Чекаємо на експертні оцінки", + "title-what-youll-learn-in-this-chapter": "Про що ви дізнаєтеся в цьому розділі", + "title-what-youll-learn-in-this-page": "Що ви дізнаєтеся на цій сторінці", + "title-your-answer": "Ваша відповідь", + "title-youtube-video-player": "Відеоплеєр YouTube", + "top-level-pages": "Сторінки верхнього рівня", + "total-points": "Загальна кількість балів", + "track-your-progress": "Відстежуйте свій прогрес", + "tries": "Спроб", + "try-again": "Спробуйте знову", + "unsupported-question-type": "Непідтримуваний тип запитання", + "waiting-for-peer-reviews-explanation": "Інші студенти перевіряють вашу відповідь. Будь ласка, поверніться пізніше, щоб побачити результати.", + "warning-chatbots-can-make-mistakes": "Чатботи можуть помилятися. Завжди перевіряйте їхні твердження.", + "write-your-feedback-here": "Напишіть свій відгук тут", + "written-feedback": "Письмовий відгук", + "you-have-completed-the-course-to-receive-certificate-use-following-links": "Ви успішно пройшли курс! Ви можете скористатися наведеними нижче посиланнями, щоб створити свій сертифікат.", + "you-have-completed-the-course-to-receive-credits-or-certificate-use-following-links": "Ви успішно пройшли курс! Щоб отримати кредити ECTS за завершення, ви можете скористатися наступними посиланнями, щоб зареєструвати своє завершення та отримати сертифікат.", + "your-code-code": "Ваш код: {{code}}", + "youve-made-changes": "Ви внесли зміни", + "youve-selected-material-for-editing": "Ви вибрали матеріал для редагування" +} diff --git a/shared-module/packages/common/src/locales/uk/example-exercise.json b/shared-module/packages/common/src/locales/uk/example-exercise.json new file mode 100644 index 00000000000..d792c303a04 --- /dev/null +++ b/shared-module/packages/common/src/locales/uk/example-exercise.json @@ -0,0 +1,8 @@ +{ + "feedback-text": "відгук", + "input-placeholder-option-text": "Текст опції", + "new": "Новий", + "score-given": "оцінка дана", + "waiting-for-content": "Очікування контенту...", + "waiting-for-port": "Очікування порту..." +} diff --git a/shared-module/packages/common/src/locales/uk/main-frontend.json b/shared-module/packages/common/src/locales/uk/main-frontend.json new file mode 100644 index 00000000000..96a1bc05ea8 --- /dev/null +++ b/shared-module/packages/common/src/locales/uk/main-frontend.json @@ -0,0 +1,712 @@ +{ + "accept-or-reject-proposal": "Прийняти або відхилити пропозицію", + "accepted": "Прийнято", + "actions": "Дії", + "active-courses": "Активні курси ({{ courses }}):", + "add": "Додати", + "add-course": "Додати курс", + "add-new-reference": "Додати нове посилання", + "added-by-user": "Додано користувачем", + "after-completion-has-been-registered-you-can-view-completed-credits-at-url": "Після завершення реєстрації, ви зможете переглянути ваш прогрес в сервісі My StudyInfo: <4>{{url}} Примітка! Є деяка затримка після завершення реєстрації та кредитів, які видно в My StudyInfo", + "american-english": "Англійська", + "answered-at": "Відповідь: {{time}}", + "approve": "Схвалити", + "archived": "Видалені шахраї", + "are-you-sure-you-want-to-reset-everyones-progress-on-the-course": "Ви впевнені, що бажаєте скинути прогрес для всіх студентів цього курсу? Це видалить їхні подання, бали, завершення, надані експертні оцінки тощо. Зверніть увагу, що ця функція призначена для використання лише тоді, коли ви тестуєте курс і ще немає реальних студентів, які проходять курс.", + "are-you-sure-you-want-to-reset-your-own-progress-on-the-course": "Ви впевнені, що бажаєте скинути власний прогрес на курсі? Це видалить ваші відповіді, бали та отримані експертні оцінки тощо.", + "at-the-form-field-fill-in-your-email-address": "У полі форми «Ваша електронна адреса на курсі MOOC» <1>fill in: <2>{{email}}", + "audio-added-successfully": "Аудіо успішно завантажено", + "audio-addedd-successfully": "Аудіо успішно завантажено", + "audio-deleted-successfully": "Аудіо успішно видалено", + "audio-upload": "Завантаження аудіо", + "audio-upload-description": "Натисніть «Огляд», щоб завантажити файл. Бажано завантажити два аудіоформати, один у форматі mp3 та .ogg для сумісності між браузерами.", + "automatic-completion": "Автоматичне завершення", + "automatic-completion-exercise-treshold": "Спроби до вправ завершуються", + "automatic-completion-points-treshold": "Поріг балів", + "automatic-completion-requires-exam": "Вимагає складання іспиту", + "available-in-languages": "Доступно {{num}} мовами", + "bachelor-and-master-degree-students-from-university-of-helsinki-notice": "NB! Студенти бакалавра та магістра з Університету Гельсінкі також повинні зареєструвати свої кредити через Відкритий університет!", + "background-svg": "Фон SVG", + "block-contents": "Вміст блоку: {{text}}", + "block-id": "Ідентифікатор блоку: {{id}}", + "blocks": "Блоки:", + "button-compare": "Порівняти", + "button-details": "Деталі", + "button-mark-as-read": "Відзначити як прочитане", + "button-mark-as-unread": "Відзначити як непрочитане", + "button-reset": "Скинути", + "button-restore": "Відновлення", + "button-set-as-private-spec-input": "Встановити як приватний вхід специфікації", + "button-text-accept": "Прийняти", + "button-text-cancel": "Скасувати", + "button-text-check": "Перевірити", + "button-text-close": "Закрити", + "button-text-create": "Створити", + "button-text-create-or-edit-research-form": "Створення або редагування форми дослідження", + "button-text-custom-points": "Спеціальні точки", + "button-text-delete": "Видалити", + "button-text-done": "Готово", + "button-text-edit-image": "Редагувати зображення", + "button-text-edit-page": "Редагувати сторінку", + "button-text-edit-page-details": "Редагувати деталі сторінки", + "button-text-flag-as-plagiarism": "Позначити як плагіат", + "button-text-full-points": "Повні бали", + "button-text-give-custom-points": "Дайте спеціальні бали", + "button-text-import": "Імпортувати", + "button-text-move-down": "Рухатися вниз", + "button-text-move-up": "Рухатися вгору", + "button-text-new": "Новий", + "button-text-new-chapter": "Новий розділ", + "button-text-new-page": "Нова сторінка", + "button-text-new-regrading": "Нова переоцінка", + "button-text-next-answer": "Наступна відповідь", + "button-text-open-course-front-page": "Відкрити першу сторінку курсу", + "button-text-preview": "Попередній перегляд", + "button-text-reject": "Відхилити", + "button-text-reload": "Перезавантажити", + "button-text-remove": "Видалити", + "button-text-reset-url": "Скинути URL", + "button-text-save": "Зберегти", + "button-text-save-and-next": "Зберегти і далі", + "button-text-search": "Пошук", + "button-text-select-image": "Виберіть зображення", + "button-text-send": "Надіслати", + "button-text-signed-in": "Ви ввійшли", + "button-text-submit": "Надіслати", + "button-text-update": "Оновлення", + "button-text-upload-image": "Завантажити зображення", + "button-text-zero-points": "Нуль балів", + "can-enable-chatbot": "Може увімкнути чат-бота", + "cancel-editing-role": "Скасувати роль редагування", + "certificate-for-completing-a-course-module": "Сертифікат про проходження модуля курсу", + "certificate-generation-confirmation": "Якщо ви продовжите, ваше ім’я на сертифікаті буде \"{{name}}\". Ви не зможете змінити ім’я на сертифікаті пізніше.", + "certificate-generation-instructions": "Введіть назву, яка має відображатися на сертифікаті. Ви не зможете змінити назву пізніше, тому переконайтеся, що ви ввели її правильно.", + "certificate-owner-name": "Ім'я власника сертифіката", + "certificate-validation-url": "URL перевірки сертифіката", + "certificates": "Сертифікати", + "change-request-edited-result-label": "Відредагований результат", + "change-request-for-deleted-block": "Зміна запитів на видалені блоки", + "chapter": "Розділ", + "chapters": "Розділи", + "chatbot": "Чат-бот", + "cheaters": "Шахраї", + "cheaters-list": "Список студентів, підозрюваних у шахрайстві", + "choose-a-language": "Виберіть мову", + "clear-suspicion": "Зняти підозру", + "closing-time": "Час закриття", + "code": "Код", + "column-failed": "Невдача", + "column-passed": "Пропуск", + "column-pending": "В очікуванні", + "completion-registration-link": "Посилання на завершення реєстрації", + "completion-registration-link-not-found": "Реєстрація на цей курс наразі не відкрита. Якщо ви вважаєте, що це помилка, будь ласка, зв’яжіться з mooc@cs.helsinki.fi", + "completions": "Завершення", + "completions-submitted-successfully": "Завершення успішно надіслано.", + "configure-completion-requirements": "Налаштувати вимоги до завершення", + "configure-threshold": "Налаштувати поріг", + "configure-threshold-description": "Цей розділ дозволяє налаштувати пороги балів і тривалості, що використовуються для виявлення студентів, які шахраюють", + "confirm": "Підтвердити", + "confirm-certification-configuration-deletion": "Ви впевнені, що хочете видалити цю конфігурацію?", + "confirm-cheating": "Підтвердити шахрайство", + "confirm-disable-generating-certificates": "Ви впевнені, що бажаєте вимкнути створення сертифікатів?", + "confirm-email-address-instructions-1": "Ви повинні були отримати електронний лист від mooc.fi під назвою:", + "confirm-email-address-instructions-2": "Підтвердьте електронну адресу свого облікового запису mooc.fi.", + "confirm-email-address-instructions-3": "Будь ласка, відкрийте свою електронну пошту та перейдіть за посиланням у листі, щоб підтвердити свою електронну адресу.", + "confirm-enable-generating-certificates": "Ви впевнені, що бажаєте ввімкнути генерацію сертифікатів?", + "confirm-password": "Підтвердьте пароль", + "confirm-your-password": "Підтвердити пароль", + "could-not-find-course-course-instance-or-user-course-settings-for-enrollment": "Не вдалося знайти курс або екземпляр курсу або налаштування курсу користувача для цієї реєстрації.", + "course": "Курс", + "course-id": "Ідентифікатор курсу", + "course-language": "Мова курсу", + "course-list": "Курси:", + "course-module-certification-configuration": "Конфігурації сертифікації модулів курсу", + "course-navigation": "Перейдіть до курсу '{{ title }}'", + "course-pages-for": "Сторінки курсу для {{course-name}}", + "course-status-summary": "Підсумок про стан курсу", + "course-version-selection": "Вибір версії курсу", + "courses": "Курси", + "create-an-acount": "Створити аккаунт", + "create-certificate-configuration": "Створення конфігурації сертифіката", + "create-configuration": "Створення конфігурації", + "create-course-duplicate": "Копіювати вміст з іншого курсу", + "create-course-duplicate-helper-text": "Порада: Ви можете ввести частину курсу в полі, щоб відсортувати варіанти", + "create-module": "Створити модуль", + "create-new-account": "Створити новий обліковий запис", + "create-new-language-version-of": "Створіть нову мовну версію {{course-name}}", + "credit-will-be-registered-within-few-days": "Кредити будуть зареєстровані протягом кількох днів.", + "credits-n-ects": "Кредити: {{n}} ECTS", + "currently": "В даний час", + "custom-points-modal-description": "Використовуйте цю підказку, щоб нарахувати власні бали за відповідь.", + "customize-chatbot": "Налаштувати чат-бота", + "daily-users-with-submissions-visualization-tooltip": "День: {{day}}
Користувачі, які подали: {{users}}", + "data-to-post-to-iframe": "Дані для публікації в IFrame", + "date": "Дата", + "default": "за замовчуванням", + "default-course-instance-name": "За замовчуванням", + "default-module": "Модуль за замовчуванням", + "delete": "Видалити", + "delete-confirmation": "Ви впевнені, що хочете видалити \"{{name}}\"?", + "delete-course-confirmation": "Ви впевнені, що хочете видалити цей курс?", + "delete-course-confirmation-explanation": "Зауважте, що зазвичай видаляти курс не варто, оскільки деякі студенти захочуть повернутися до матеріалу курсу, який вони вивчали раніше. Замість того, щоб видаляти курс, рекомендуємо встановити дату «закінчення» для екземплярів цього курсу. Таким чином студенти побачать, що курс закінчився.", + "delete-current-overlay-svg": "Видалити поточне накладання SVG", + "deleted": "Видалено", + "deleted-cheaters-list": "Список видалених шахраїв", + "derived-specs-explanation": "Похідні специфікації генеруються з приватної специфікації за допомогою спеціальних кінцевих точок у службі вправ. Ці специфікації надаються для різних переглядів сервісу вправ залежно від того, які дані користувачеві дозволено переглядати. Кожна служба вправ самостійно вирішує формат похідних специфікацій.", + "disable-generating-certificates": "Відключити генерацію сертифікатів", + "disable-sandbox": "Вимкнути пісочницю", + "do-not-add-duplicate-completions-for-these-users": "Пропустити цих користувачів без додавання дублікатів завершення.", + "draft": "Чернетка", + "duplicate": "Дублікат", + "duration": "Тривалість", + "duration-in-hours": "Тривалість (в годинах)", + "ects-credits": "Кредити ECTS", + "edit": "Редагувати", + "edit-and-accept": "Редагувати та прийняти", + "edit-exam": "Редагувати іспит", + "edit-module": "Редагувати модуль", + "edit-reference": "Редагувати посилання", + "edit-role": "Редагувати роль", + "edited-by-on": "Відредаговано {{user}} {{time}}", + "enable-automatic-completion": "Увімкнути автоматичне завершення", + "enable-generating-certificates": "Увімкнути генерацію сертифікатів", + "enable-generating-new-certificates": "Увімкнути створення нових сертифікатів", + "enable-module-completion-certificates": "Дозволити студентам створити сертифікат про проходження модуля", + "ends": "Кінці", + "english": "Англійська", + "enter-a-valid-email": "Введіть дійсний email!", + "enter-course-code": "Введіть код курсу", + "enter-first-name": "Введіть ім'я", + "enter-last-name": "Введіть прізвище", + "enter-your-email": "Введіть свою електронну адресу", + "enter-your-password": "Введіть ваш пароль", + "error-cannot-load-with-the-given-inputs": "Неможливо завантажити з указаними введеннями", + "error-cannot-render-exercise-task-missing-submission": "Неможливо відобразити завдання для вправи, бракує подання.", + "error-cannot-render-exercise-task-missing-url": "Неможливо відобразити завдання вправи, відсутня url.", + "error-could-not-find-edit-history-for-page": "Не вдалося знайти історію редагування сторінки", + "error-fetching-service-info": "Помилка отримання інформації про службу", + "error-loading-organizations": "Помилка завантаження організацій.", + "error-modules-chapter-not-in-module": "Розділ {{ chapterNumber }}: {{ chapterName }} не належить до жодного модуля", + "error-modules-default-noncontinuous-chapters": "У модулі за замовчуванням відсутні розділи між {{ prevChapter }} і {{ currChapter }}", + "error-modules-empty-module": "Модуль {{ moduleName }} порожній", + "error-modules-first-chapter-not-in-default-module": "Перший розділ має бути в модулі за замовчуванням", + "error-modules-noncontinuous-chapters": "У модулі {{ moduleName }} відсутні розділи між {{ prevChapter }} і {{ currChapter }}", + "error-no-grading": "Без оцінювання", + "error-no-grading-long": "Оцінки ще не отримано. Будь ласка, надішліть заявку у вікні вправ.", + "error-no-model-solution-spec": "Немає специфікації модельного рішення", + "error-no-public-spec": "Без загальнодоступних специфікацій", + "error-no-user-answer": "Немає відповіді користувача. Будь ласка, надішліть заявку у вікні вправи.", + "error-registering-to-the-uh-open-university-not-enabled-for-this-course-module": "Для цього модуля курсу неможлива реєстрація завершення навчання у Відкритому університеті Гельсінського університету.", + "error-title": "Помилка", + "error-unauthorized": "Несанкціонований", + "error-unknown-in-component": "Невідома помилка під час візуалізації {{component}}", + "estimated-number-of-ects-credits-warning": "УВАГА! Це залежить від поля кредитів ECTS у конфігурації модуля курсу. Оцінка обчислюється шляхом множення цього числа на кількість людей, позначених як такі, що завершили навчання в реєстрі досліджень. Оцінка може бути неправильною, наприклад, якщо кредити ECTS були неправильно введені в модуль курсу, або якщо сума кредитів ECTS змінюється протягом курсу, або якщо кредити ECTS не зареєстровані за допомогою цієї системи. Якщо вам потрібна точна статистика щодо цього, вам потрібно буде використовувати Oodikone.", + "exam-created-succesfully": "Іспит створено успішно", + "exam-duplicated-succesfully": "Іспит успішно продубльовано", + "exam-edited-successfully": "Іспит успішно відредаговано", + "exam-list": "Іспити", + "exercise": "Вправи", + "exercise-repositories-add": "Додайте репозитарій вправ", + "exercise-repositories-added": "Додано репозитарій вправ", + "exercise-repositories-deleted": "Видалений репозиторій вправ", + "exercise-repositories-deploy-key": "Ключ розгортання (залиште порожнім, якщо репозиторій відкритий)", + "exercise-repositories-git-url": "Git URL", + "exercise-repositories-git-url-placeholder": "ex. git@github.com:testmycode/tmc-testcourse.git", + "exercise-repositories-modified": "Модифікований репозиторій вправ", + "exercise-repositories-processed": "Оброблено", + "exercise-repositories-processing": "Обробка", + "exercise-repositories-processing-failed": "Помилка обробки", + "failed-to-authenticate": "Помилка автентифікації", + "false": "Помилковий", + "feedback-given": "Надіслано відгук:", + "field-enter-email": "Введіть адресу електронної пошти", + "fill-in-the-registration-form": "Заповніть реєстраційну форму.", + "finnish": "Фінська", + "first-name": "Ім'я", + "follow-these-instructions": "Дотримуйтесь цих інструкцій", + "font-size": "Розмір шрифту", + "forgot-password": "Забули свій пароль?", + "generate": "Генерувати", + "generate-a-certificate": "Створити сертифікат", + "generate-a-certificate-for-completing-course": "Створити сертифікат про проходження курсу {{course}}", + "generate-a-certificate-for-completing-the-module-of-the-course": "Створіть сертифікат про проходження модуля {{module}} курсу {{course}}", + "generating-new-certificates-disabled": "Створення нових сертифікатів вимкнено", + "generating-new-certificates-enabled": "Увімкнено створення нових сертифікатів", + "give-custom-points-confirmation": "Ви впевнені, що бажаєте надати {{ custom-points }} балів?", + "given-enough-peer-reviews": "З огляду на достатню кількість експертних оцінок", + "given-number-data": "Враховуючи числові дані", + "given-peer-reviews-to-other-students": "Надаючи рецензії іншим студентам", + "given-text-data": "Враховуючи текстові дані", + "global-permissions": "Глобальні дозволи", + "grade": "Оцінка", + "grading": "Оцінювання", + "grading-explanation": "Служба вправ створює ці дані з кінцевої точки оцінки, коли серверна частина публікує в ній завдання для оцінювання.", + "grant-access-to-users-with-permissions-to-original-course": "Надайте доступ до цього курсу всім, хто мав доступ до оригінального", + "guest": "гість", + "header-answers-requiring-attention": "Відповіді, що вимагають уваги", + "header-course-instance-enrollments": "Реєстрація на курси", + "header-course-visitors-by-country": "Відвідувачі курсу за країнами", + "header-dailty-visit-counts": "Підрахунок щоденних відвідувань", + "header-devices": "Пристрої", + "header-grouped-by-referrer": "Згруповано за рефералами", + "header-grouped-by-utm-tags": "Згруповані за тегами UTM", + "header-most-visited-pages": "Найбільш відвідувані сторінки", + "header-n-submissions": "{{n}} подання", + "header-number-of-visitors": "Кількість відвідувачів", + "header-referrer": "реферал", + "header-referrers": "реферали", + "header-slug": "Slug: {{slug}}", + "header-submissions": "Подання", + "header-user-details": "Інформація про користувача", + "header-utm-campaigns": "UTM кампанії", + "header-utm-sources": "Джерела UTM", + "header-visit-date": "Дата відвідування", + "header-visitors-per-day": "Відвідувачів за день", + "heading-add-codes": "Додати коди", + "heading-chapter-front-page": "Головна сторінка", + "heading-code-giveaway-name": "Роздача кодів: {{name}}", + "heading-code-giveaways": "Роздача кодів", + "heading-course-front-page": "Головна сторінка курсу", + "heading-estimated-number-of-ects-credits": "Розрахункова кількість кредитів ECTS", + "heading-my-courses": "Мої курси", + "heading-navigation": "Навігація", + "heading-new-code-giveaway": "Нова роздача кодів", + "heading-number-of-people-completed-course": "Кількість людей, які пройшли курс", + "heading-number-of-people-done-at-least-one-exercise": "Кількість людей, які виконали хоча б одну вправу", + "heading-number-of-people-registered-completion-to-study-registry": "Кількість осіб, зареєстрованих для завершення навчання", + "heading-number-of-people-started-course": "Кількість людей, які розпочали курс", + "heading-pages-in-this-chapter": "Сторінки в цьому розділі", + "heading-text-welcome": "Ласкаво просимо!", + "heading-top-level-pages": "Сторінки верхнього рівня", + "hide": "Сховати", + "home": "Додому", + "hourly-submissions-visualization-tooltip": "Година: {{day}}
Подання: {{submissions}}", + "image-alt-what-to-display-on-chapter": "Що відображати в розділі.", + "image-alt-what-to-display-on-organization": "Що відобразити в організації.", + "incorrect-email-or-password": "Неправильна електронна пошта або пароль.", + "input-field-chapter-color": "Колір розділу", + "instance-ended-at-time": "Примірник закінчився о: {{time}}", + "instance-has-no-set-opening-time": "Примірник не має встановленого часу відкриття", + "instance-is-currently-open-and-has-no-set-ending-time": "Примірник наразі відкритий і не має встановленого часу завершення", + "instance-is-open-and-ends-at-time": "Примірник відкритий і закінчується о {{time}}", + "instance-opens-at-time": "Примірник відкривається о {{time}}", + "invalid-service-info": "Недійсна сервісна інформація", + "invalid-url": "Недійсний URL", + "label-action": "Дія", + "label-actions": "Дії", + "label-add-user": "Додати користувача", + "label-attempted-exercises": "Пробні вправи", + "label-attempted-exercises-required": "Потрібні спроби вправ", + "label-background-svg": "Фон SVG", + "label-background-svg-current": "Фон SVG (зараз {{path}})", + "label-codes-one-per-line": "Коди, по одному на рядок", + "label-completion-date": "Дата завершення (необов’язково) – якщо вказано, буде встановлено за замовчанням для кожного завершення без установленої дати.", + "label-completion-date-short": "Дата Виконання", + "label-completion-granter-user-id": "Ідентифікатор користувача надавача завершення", + "label-completion-language": "Мова завершення", + "label-completion-registration-attempt-date": "Дата завершення спроби реєстрації", + "label-course-instance": "Приклад курсу", + "label-course-module": "Модуль курсу", + "label-course-module-completions": "Завершення модулів курсу", + "label-course-module-id": "Ідентифікатор модуля курсу", + "label-created": "Створено:", + "label-created-at": "Створено в", + "label-csv-completions": "Формат: csv із заголовками з полями: <2>{{csvHeaderFormat}} – необов’язкова дата у форматі ISO 8601.", + "label-current": "Поточний", + "label-current-text": "Поточний текст:", + "label-deadline": "Дедлайн", + "label-default": "За замовчуванням", + "label-delete-current-overlay-svg": "Видалити поточний накладений SVG", + "label-email": "Електронна пошта", + "label-enable-registering-completion-to-uh-open-university": "Увімкнути реєстрацію завершення навчання у Відкритий університет Гельсінського університету", + "label-ends-at": "Закінчується о", + "label-entered-peer-review-queue": "Увійшли в чергу рецензування", + "label-exam": "іспит", + "label-exam-minimum-points": "Мінімальна кількість балів для проходження", + "label-example-name": "Приклад імені", + "label-examples": "Приклади", + "label-exercise-task": "Завдання до вправи", + "label-exercise-task-submission-ids": "Ідентифікатори завдань для вправ, по одному на рядок", + "label-feedback": "Зворотний зв'язок", + "label-font-size": "Розмір шрифту", + "label-grade": "Клас", + "label-grade-exam-manually": "Оцінити іспит вручну", + "label-graded-automatically": "Оцінено автоматично", + "label-hidden": "Прихований", + "label-id-type": "Тип ідентифікатора", + "label-ids-one-per-line": "Ідентифікатори, по одному на рядок", + "label-justification": "Обґрунтування", + "label-link": "Посилання", + "label-locale": "Локаль", + "label-model-solution": "Модельне рішення", + "label-name": "Ім'я", + "label-null": "Не встановлено", + "label-opens-at": "Відчиняється о", + "label-original-text": "Оригінальний текст:", + "label-overlay-svg": "Накладений SVG", + "label-overlay-svg-current": "Накладений SVG (зараз {{path}})", + "label-overlay-svg-optional": "Накладений SVG (необов'язково, наразі не встановлено)", + "label-page": "Сторінка:", + "label-paper-size": "Розмір паперу", + "label-passed": "Пройшов", + "label-password": "Пароль", + "label-points": "бали", + "label-points-required": "Необхідні бали", + "label-position-x": "Позиція (X)", + "label-position-y": "Позиція (Y)", + "label-prerequisite-modules-completed": "Виконано необхідні модулі", + "label-priority": "Пріоритет", + "label-progressing": "Прогресує", + "label-proposed-text": "Пропонований текст:", + "label-pseudonymous-user-id": "Псевдонімний ідентифікатор користувача", + "label-registered": "Зареєстрований", + "label-related-courses-can-be-completed-automatically": "Пов’язані курси можна пройти автоматично", + "label-require-course-specific-consent-form-question-id": "Вимагати ідентифікатор питання згоди для конкретного курсу", + "label-result-after-merging": "Результат після об'єднання:", + "label-review": "Огляд", + "label-role": "Роль", + "label-send-model-solution-spec": "Надіслати специфікацію модельного рішення (трапляється, коли вичерпано спроб або отримано повну кількість балів за вправу)", + "label-send-previous-submission": "Надіслати попередній запит (стається, коли хтось відповів на вправу раніше і намагається відповісти на нього знову)", + "label-starts-at": "Початок о", + "label-student": "Студент", + "label-submission-being-reviewed": "Подання розглядається", + "label-submission-time": "Час подання", + "label-submissions-regraded": "Подання переоцінено", + "label-text-anchor": "Якір тексту", + "label-text-color": "Колір тексту", + "label-time-minutes": "Час у хвилинах", + "label-title": "Назва", + "label-updated": "Оновлено:", + "label-url": "URL", + "label-url-path": "URL-шлях", + "label-user-id": "Ідентифікатор користувача", + "label-user-points-update-strategy": "Стратегія оновлення балів користувача", + "label-valid": "Дійсний", + "label-width": "Ширина", + "laguage-code-validation-error": "Код мови має відповідати формату aa-BB або aa-Bbbb-CC.", + "language-code": "Код мови", + "language-language": "Мова: {{language}}", + "last-name": "Прізвище", + "link": "Посилання", + "link-change-requests": "Запити на зміни", + "link-cheaters": "Шахраї", + "link-course-instances": "Приклади курсу", + "link-edit-exam-instructions": "Редагувати інструкції до іспиту", + "link-exercises": "Вправи", + "link-export-completions": "Експорт завершень як CSV", + "link-export-course-instances": "Експорт екземплярів курсу як CSV", + "link-export-course-user-consents": "Експортувати відповіді на форму згоди на дослідження курсу у форматі CSV", + "link-export-exercise-tasks": "Експортувати завдання-вправи як CSV", + "link-export-given-codes-as-csv": "Експортувати надані коди у форматі CSV", + "link-export-points": "Експорт балів як CSV", + "link-export-submissions": "Експорт матеріалів (завдань) як CSV", + "link-export-user-details": "Експорт даних користувача у формат CSV", + "link-export-user-exercise-states": "Експортувати стани вправ користувачів у форматі CSV", + "link-feedback": "Зворотній зв'язок", + "link-glossary": "Глосарій", + "link-history": "Історія", + "link-language-versions": "Мовні версії", + "link-manage": "Керувати", + "link-manage-certificates": "Керувати сертифікатами", + "link-manage-emails": "Керувати електронними листами", + "link-manage-exercise-services": "Керувати послугами тренувань", + "link-manage-permissions": "Керувати дозволами", + "link-modules": "Модулі", + "link-overview": "Огляд", + "link-pages": "Сторінки", + "link-permissions": "Дозволи", + "link-stats": "Статистика", + "link-test-exam": "Тестовий іспит", + "link-text-all-organizations": "Всі організації", + "link-text-find-more-courses": "Знайти більше курсів", + "link-text-global-stats": "Глобальна статистика", + "link-view-answers-requiring-attention": "Переглянути відповіді, які потребують уваги", + "link-view-completions": "Переглянути завершення", + "link-view-points": "Оглядові точки", + "link-view-submissions": "Переглянути подання", + "list-cheaters-of-cheaters-empty-state": "Наразі немає студентів, підозрюваних у шахрайстві", + "loading-text": "Завантаження...", + "locale": "Локаль", + "login": "Увійти", + "login-description": "Цей сайт використовує", + "login-description2": "облікові записи. Якщо ви раніше проходили курси mooc.fi, ви можете увійти за допомогою наявного облікового запису.", + "logout": "Вийти", + "manage": "Керувати", + "manage-course": "Керувати курсом '{{ title }}'", + "manage-exercise-repositories": "Керувати сховищами вправ", + "manage-glossary": "Керувати глосарієм", + "manage-page": "Керувати сторінкою", + "manually-add-completions": "Додавання завершень вручну", + "message-are-you-sure-you-want-to-delete-this-chapter": "Ви впевнені, що хочете видалити цей розділ? Це також призведе до видалення всіх сторінок у розділі та всіх вправ у розділі.", + "message-are-you-sure-you-want-to-reprocess-submissions": "Ви впевнені, що хочете повторно обробити завершені модулі для цього примірника курсу?", + "message-are-you-sure-you-want-to-update-peer-review-queue-reviews-received": "Ви впевнені, що бажаєте оновити відгуки, отримані для всіх записів, які не позначені як отримані достатньо рецензій? Ця операція стосується лише цього курсу.", + "message-created-succesfully": "Створено успішно", + "message-creating-failed": "Щось пішло не так, не вдалося створити", + "message-deleting-failed": "Щось пішло не так, не вдалося завершити видалення", + "message-deleting-succesful": "Успішно видалено", + "message-do-you-want-to-publish-all-currently-graded-submissions": "Ви хочете опублікувати всі поточні оцінені подання?", + "message-do-you-want-to-save-the-changes-to-the-chapter-ordering": "Бажаєте зберегти зміни в порядку розділів?", + "message-do-you-want-to-save-the-changes-to-the-page-ordering": "Бажаєте зберегти зміни в порядку сторінок?", + "message-invalid-query": "Недійсний запит", + "message-no-current-state-message-received-from-the-iframe-yet": "Від IFrame ще не отримано повідомлення про поточний стан", + "message-please-confirm-your-email-address": "Будь ласка, підтвердіть Вашу електронну адресу.", + "message-saved-succesfully": "Успішно збережено", + "message-saving-failed": "Щось пішло не так, не вдалося завершити збереження", + "message-this-submission-has-been-graded-automatically": "Це подання було оцінено автоматично", + "message-update-failed": "Щось пішло не так, не вдалося завершити оновлення", + "message-update-succesful": "Оновлено успішно", + "message-you-have-not-selected-an-action-for-every-change-yet": "Ви ще не вибрали дію для кожної зміни.", + "message-your-email-has-been-verified": "Вашу електронну адресу перевірено.", + "model-solution-spec-explanation": "Специфікація модельного рішення надається у вікні представлення подання, коли користувачеві дозволено побачити модельне рішення або всі правильні відповіді до вправи. Це трапляється, наприклад, коли користувач уже отримав повну кількість балів за вправу або у нього закінчилися спроби.", + "module": "Модуль", + "module-is-completed-but-requires-completion-of-prerequisite-modules": "Модуль завершено, але все ще вимагає завершення попередніх модулів.", + "name-of-module": "Назва модуля", + "new-course-instance": "Новий екземпляр курсу", + "new-course-instance-dialog": "Діалогове вікно нового екземпляра курсу", + "new-definition": "Нове визначення", + "new-exam": "Новий іспит", + "new-exam-dialog": "Діалогове вікно нового іспиту", + "new-reference": "Нове посилання", + "new-term": "Новий термін", + "no-active-courses": "Немає активних курсів", + "no-answer-provided": "Відповіді не надано.", + "no-answers-requiring-attention": "Не знайдено відповідей, які потребують уваги", + "no-certificate-configured": "Сертифікат не налаштовано", + "no-change-requests": "Жодних запитів на зміни", + "no-chapter-image": "Немає зображення розділу.", + "no-code-giveaways": "Немає роздачі кодів", + "no-courses-in-org": "У цій організації немає курсів.", + "no-data": "Немає даних", + "no-description-available": "Немає опису", + "no-feedback": "Немає зворотного зв'язку", + "no-peer-reviews-given": "Немає наданих експертних оцінок", + "no-peer-reviews-received": "Немає отриманих рецензій", + "no-roles-found": "Ролей не знайдено.", + "no-submissions": "Подання не знайдено", + "no-support-email-set": "Немає електронної пошти служби підтримки", + "not-given": "Не надано", + "nothing-here": "Тут нічого немає!", + "number-of-answered": "Кількість відповідей", + "number-of-graded": "Кількість оцінених", + "number-of-students": "Кількість студентів", + "number-of-unpublished-gradings": "Кількість неопублікованих оцінок", + "number-of-users-attempted-the-exercise": "Кількість користувачів, які спробували виконати вправу", + "number-of-users-with-max-points": "Кількість користувачів з максимальною кількістю балів", + "number-of-users-with-some-points": "Кількість користувачів з кількома балами", + "old": "Старий", + "open-page-in-new-tab": "Відкрити сторінку в новій вкладці", + "open-university-credit-registration-responsibility-disclaimer": "Відкритий університет Гельсінського університету відповідає за реєстрацію кредитів. Запишіться на курс через Відкритий університет, щоб зареєструвати кредити.", + "opening-time": "Час відкриття", + "option-can-add-points-and-can-remove-points": "Може додавати бали та може видаляти бали", + "option-can-add-points-but-cannot-remove-points": "Може додавати бали, але не може видаляти бали", + "option-exercise-id": "Ідентифікатор вправи", + "option-exercise-task-submission-id": "Ідентифікатор подання завдання вправи", + "optional-currently-not-set": "необов'язково, наразі не встановлено", + "organization": "Організація", + "organizations-heading": "Організації", + "other-language": "інше", + "overlay-svg": "Накладання SVG", + "override-completion-registration-link": "Замінити посилання на завершення реєстрації", + "page-deletion-confirmation-message": "Ви впевнені, що хочете видалити сторінку {{title}}?", + "page-number": "сторінка {{номер сторінки}}", + "pages": "Сторінки", + "paper-size": "Розмір паперу", + "password": "Пароль", + "password-must-have-at-least-8-characters": "Пароль має бути не менше 8 символів!", + "passwords-dont-match": "Паролі не збігаються!", + "peer-review-n": "Рецензія №{{n}}", + "peer-review-submission-id": "Ідентифікатор подання рецензування", + "peer-reviews": "Експертні оцінки", + "peer-reviews-given": "Надані експертні оцінки", + "peer-reviews-received": "Отримані експертні оцінки", + "pending": "В очікуванні", + "placeholder-text-reserved-for-course-overview": "Зарезервовано для огляду курсу", + "playground-examples": "Приклади майданчиків", + "please-check-the-following-preview-results-before-submitting": "Перед надсиланням перевірте наведені нижче результати попереднього перегляду.", + "point-summary": "Підсумок балів", + "points": "Бали", + "position-x": "Позиція (X)", + "position-y": "Позиція (Y)", + "previous-title-current-title": "Попередній: {{current-title}} | Поточний: {{selected-title}}", + "private-spec": "Приватна специфікація", + "public-spec-explanation": "Загальнодоступна специфікація використовується для відтворення інтерфейсу користувача, коли користувач починає відповідати на вправу.", + "publish-grading-results": "Опублікувати результати оцінювання", + "publish-grading-results-info": "Студенти не побачать результати оцінювання автоматично. Після публікації результатів оцінювання студенти зможуть побачити бали та зворотний зв'язок, який ви їм надали. Також студенти, які пройдуть курс, зможуть зареєструвати своє завершення в навчальному реєстрі.", + "published": "Опубліковано", + "question": "Питання", + "question-n": "Запитання {{n}}", + "questions": "Питання", + "read": "Читати", + "received-enough-peer-reviews": "Отримано достатньо рецензій", + "received-number-data": "Отримано номер даних", + "received-peer-reviews-from-other-students": "Отримав рецензії від інших студентів", + "received-reviews": "Отримані огляди", + "received-text-data": "Отримані текстові дані", + "reference-added-succesfully": "Посилання успішно додано", + "reference-deleted-succesfully": "Посилання успішно видалено", + "reference-parsing-error": "Помилка: цей формат не підтримується або не розпізнається", + "reference-updated-succesfully": "Посилання успішно оновлено", + "references": "Посилання", + "register-completion": "Завершення реєстрації", + "rejected": "Відхилено", + "remove-role": "Зняти роль", + "reprocess-module-completions": "Повторно обробити завершення модулів", + "required-field": "Це поле є обов'язковим", + "requires-a-finnish-social-security-number": "(Потрібен фінський номер соціального страхування)", + "research-consent-data-from-learning-process-is-used": "У цьому дослідженні використовуються дані процесу навчання та дані, які ви надаєте нам через анкети. Дані включають інформацію про використання навчальних матеріалів, хід виконання та виконання завдань курсу та успішність іспиту. Окремих студентів неможливо ідентифікувати за опублікованими результатами. Участь є добровільною, і якщо ви не бажаєте брати участь у дослідженні, для вас не буде жодних наслідків.", + "research-consent-educational-research-is-conducted-on-the-courses": "На курсах проводяться навчальні дослідження. Це дослідження має кілька цілей:", + "research-consent-goals-advance-knowledge": "поглибити знання та розуміння навчання в онлайн-навчальних середовищах, а також", + "research-consent-goals-develop-learning": "розробляти навчальні матеріали таким чином, щоб вони враховували індивідуальні відмінності в навчанні та могли індивідуалізувати зміст матеріалу залежно від учня,", + "research-consent-goals-provide-research-based-support": "надавати підтримку на основі досліджень іншим розробникам навчальних матеріалів і дослідникам освіти, що сприятиме кращому навчанню для студентів.", + "research-consent-i-do-not-want-participate-in-educational-research": "Я не хочу брати участь в освітньому дослідженні.", + "research-consent-i-want-to-participate-in-educational-research": "Я хочу взяти участь в освітньому дослідженні. Вибираючи це, ви допомагаєте як нинішнім, так і майбутнім студентам.", + "research-consent-responsible": "Університет Гельсінкі відповідає за дослідження. Ви можете будь-коли подати запит на видалення пов’язаних із вами даних, надіславши електронний лист на адресу ", + "research-consent-title": "Щодо досліджень, проведених на курсах,", + "reset-my-own-progress-on-the-course": "Скинути мій власний прогрес на курсі", + "reset-progress-for-all-students-on-the-course-draft": "Скидання прогресу для всіх студентів курсу (працює лише на чернетках курсів)", + "reveal": "Розкрити", + "role-admin": "Адміністратор", + "role-assistant": "помічник", + "role-course-or-exam-creator": "Творець курсів або іспитів", + "role-material-viewer": "Переглядач матеріалів", + "role-reviewer": "Рецензент", + "role-stats-viewer": "Переглядач статистики", + "role-teacher": "Викладач", + "role-teaching-and-learning-services": "Послуги з викладання та навчання", + "roles-for-course": "Ролі для курсу", + "roles-for-course-instance": "Ролі для курсу, наприклад", + "roles-for-exam": "Ролі для іспиту", + "roles-for-organization": "Ролі для організації", + "save": "Зберегти", + "save-as-draft": "Зберегти як чернетку", + "save-as-png": "Зберегти як PNG", + "save-changes": "Зберегти зміни", + "save-edited-role": "Зберегти відредаговану роль", + "score": "Оцінка", + "score-given": "Дана оцінка", + "select-course-module": "Виберіть модуль курсу", + "select-module-start-end-chapters": "Виберіть початковий розділ і кінцевий розділ", + "selected-text": "Виділений текст:", + "sent-by": "Надіслано: {{user}}", + "service-info-url": "URL-адреса інформації про службу", + "set-threshold": "Встановити поріг", + "show-iframe-borders": "Показати межі iframe", + "sign-in-if-you-have-an-account": "Ви вже маєте акаунт? Увійти.", + "sign-up-with-mooc-subtitle": "Цей курс використовує облікові записи mooc.fi. Якщо ви раніше відвідували курси mooc.fi, ви можете використовувати наявні облікові дані на сторінці входу. На цій сторінці ви можете створити новий обліковий запис, який працює в більшості курсів і сервісів mooc.fi.", + "sort-by-email": "Сортувати за електронною поштою", + "sort-by-name": "Сортувати за назвою", + "sort-by-role": "Сортувати за ролями", + "starts": "Починається", + "stats": "Статистика", + "status": "Статус", + "status-graded": "Оцінено", + "status-in-progress": "В процесі", + "status-ungraded": "Не оцінено", + "student-answer": "Відповідь учня", + "student-id": "Ідентифікатор студента", + "student-name": "Ім'я студента", + "support-email": "Електронна адреса служби підтримки", + "support-email-description": "Електронні листи підтримки надсилаються на цю адресу, якщо її встановлено, і на електронну адресу відповідального вчителя в іншому випадку.", + "suspect-approved-successfully": "Підозрюваний шахрай успішно схвалений", + "suspect-archived-successfully": "Підозрюваний шахрай успішно архівований", + "suspected-cheater": "Підозрювані шахраї", + "suspected-student": "Підозрюваний студент", + "swedish": "Шведська", + "teacher-has-graded-this-manually": "Вчитель оцінив це вручну", + "teacher-in-charge-email": "Електронна пошта відповідального викладача", + "teacher-in-charge-name": "П.І.Б. відповідального викладача", + "test-course": "Тестовий курс", + "text-anchor": "Якір тексту", + "text-color": "Колір тексту", + "text-decribe-course-module-completions-count-when-some-modules-completed-more-than-once": "{{count}} у {{numDistinctModules}} модулів (деякі модулі виконано більше одного разу)", + "text-field-label-chapter-number": "Номер розділу", + "text-field-label-description": "Опис", + "text-field-label-name": "Ім'я", + "text-field-label-or-header-slug-or-short-name": "Slug", + "text-field-label-path": "Шлях", + "text-field-label-search": "Електронна адреса або ім'я користувача", + "text-field-label-title": "Назва", + "text-no-results": "Немає результатів", + "text-visible-when-feedback-given": "Текст, який відображається під час надання відгуку", + "this-field-required": "Це поле є обов'язковим", + "threshold-added-successfully": "Поріг успішно додано", + "threshold-created-successfully": "Поріг успішно створено", + "tick-the-box-if-you-want-email-after-credits-have-been-registered": "Якщо ви хочете отримувати сповіщення електронною поштою, коли кредити будуть зареєстровані, поставте прапорець «Повідомлення про завершені навчання буде надіслано на мою електронну адресу (включно з оцінкою)»", + "title-all-course-instances": "Усі випадки курсу", + "title-all-course-language-versions": "Усі мовні версії курсу", + "title-all-exercises": "Вправи в цьому курсі", + "title-browser": "Браузер", + "title-change-request": "Запит на зміну", + "title-change-requests": "Запити на зміни", + "title-chapter": "Розділ {{chapter-number}}: {{chapter-name}}", + "title-chapter-only-number": "Розділ {{chapter-number}}", + "title-communication-with-the-iframe": "Зв'язок з IFrame", + "title-course-specific-research-consents": "Дозволи на дослідження, що стосуються конкретного курсу", + "title-course-users-counts-by-exercise": "Кількість користувачів для кожної вправи", + "title-current-state-received-from-the-iframe": "Поточний стан, отриманий з IFrame", + "title-derived-specs": "Похідні характеристики", + "title-device-type": "Тип пристрою", + "title-dialog-module-save": "Бажаєте зберегти зміни в модулях курсу?", + "title-email-templates": "Шаблони електронної пошти для прикладу курсу.", + "title-feedback": "Зворотній зв'язок", + "title-general-research-consent": "Загальна згода на дослідження", + "title-grading": "Оцінювання", + "title-iframe": "IFrame", + "title-internal-url": "Внутрішня URL-адреса", + "title-list-of-examples": "Список прикладів", + "title-manage-exercise-services": "Керувати сервісами вправ", + "title-model-solution-spec": "Специфікація модельного рішення", + "title-number-of-submissions-per-day": "Кількість подань на день", + "title-number-of-submissions-per-weekday-and-hour": "Кількість подань за день і годину", + "title-number-of-users-with-submissions-per-day": "Кількість користувачів, які надіслали щось на день", + "title-operating-system": "Операційна система", + "title-other": "Інше", + "title-page-edit-history": "Історія редагування сторінки", + "title-page-id": "Сторінка: {{ id }}", + "title-pending-roles": "Очікувані ролі", + "title-playground-exercise-iframe": "Майданчик для вправ IFrame", + "title-public-spec": "Громадська специфікація", + "title-public-url": "Публічна URL-адреса", + "title-regrading": "переоцінка", + "title-regradings": "Перекласифікація", + "title-reprocessing-submissions": "Повторна обробка повідомлень", + "title-scroll-to-a-heading-in-this-page": "Перейдіть до заголовка на цій сторінці.", + "title-self-review": "Самооцінка", + "title-statistics": "статистика", + "title-submission-id": "Подання {{id}}", + "title-user-answer": "Відповідь користувача", + "title-user-search": "Пошук користувачів", + "to-the-registration-form": "До форми реєстрації", + "total-completions-dashboard": "Інформаційна панель загальної кількості виконаних робіт", + "total-point-dashboard": "Інформаційна панель загальної кількості балів", + "uh-course-code": "Код курсу Гельсінського університету", + "undread": "Непрочитаний", + "unlisted": "Не вказано", + "unpublishable-grading-results": "У вас є {{amount}} неопублікованих результатів оцінювання", + "unpublished": "Неопубліковано", + "unread": "Непрочитаний", + "update-peer-review-queue-reviews-received": "Оновити отримані рецензії черги рецензій", + "updated-definition": "Оновлене визначення", + "updated-term": "Оновлений термін", + "upload": "Завантажити", + "upload-audio-file": "Завантажити аудіофайл", + "upload-file": "Завантажити файл", + "url": "URL", + "use-this-email-address-on-the-registration-form": "Використовуйте цю електронну адресу в формі реєстрації", + "user-answer-explanation": "Це дані, які надсилаються на сервер для оцінювання, коли користувач відповідає на вправу. Ви можете заповнити ці дані з перегляду відповіді-вправи, відправивши вправу.", + "user-id": "Ідентифікатор користувача", + "user-id-is-missing": "Відсутній ідентифікатор користувача.", + "users-receiving-a-completion-for-the-first-time": "Користувачі, які проходять перший курс", + "users-that-already-have-a-completion-and-are-about-to-get-a-duplicate-one": "Користувачі, які вже мають пройдений курс і збираються отримати дублікат", + "users-that-will-be-enrolled-on-the-course-as-a-part-of-completion-registration": "Користувачі, які будуть зареєстровані на курсі як підсумок завершення реєстрації", + "valid-service-info": "Дійсна сервісна інформація", + "weekday-friday": "п'ятниця", + "weekday-monday": "понеділок", + "weekday-saturday": "субота", + "weekday-sunday": "неділя", + "weekday-thursday": "четвер", + "weekday-tuesday": "вівторок", + "weekday-wednesday": "середа", + "you-are-being-redirected-to-completion-registration-page-if-nothing-happens-click-here": "Вас автоматично буде перенаправлено на сторінку завершення реєстрації Відкритого університету. Якщо нічого не відбувається, будь ласка, <2>click here.", + "your-name": "Ваше ім'я" +} diff --git a/shared-module/packages/common/src/locales/uk/quizzes.json b/shared-module/packages/common/src/locales/uk/quizzes.json new file mode 100644 index 00000000000..215bdc08069 --- /dev/null +++ b/shared-module/packages/common/src/locales/uk/quizzes.json @@ -0,0 +1,167 @@ +{ + "add": "Додати", + "add-example-string": "Додайте приклад рядка", + "add-new-event": "Додати нову подію", + "add-new-quiz-item": "Додати новий елемент вікторини", + "add-new-quiz-title-text": "Додайте новий {{capitalizedType}}", + "add-option": "Додати варіант", + "additional-correctness-explanation-on-model-solution": "Додаткове пояснення правильності модельного рішення", + "advanced-options": "Розширені опції", + "allow-selecting-multiple-options": "Кілька варіантів", + "allow-selecting-multiple-options-description": "Дозволити вибір кількох варіантів.", + "answer": "Відповідь", + "answer-settings": "Варіанти відповіді", + "aria-label-option-index": "Варіант {{index}}", + "body": "Тіло", + "button-add-example": "Додати приклад", + "choose-quiz-item-option-direction-help-text": "Виберіть напрямок, у якому параметри елементів вікторини використовуватимуться для розміщення у віджеті", + "column": "Колонка", + "correct-answer": "Правильна відповідь", + "correct-option": "Правильно", + "correct-option-tag": "Правильний варіант", + "create-quiz-item-duplicate": "Дублювати попередній елемент вікторини", + "create-quiz-item-same-type": "Створити новий елемент вікторини такого ж типу", + "delete": "Видалити", + "deleted-option": "Видалити варіант", + "description-for-quiz-item": "Опис для цього елемента вікторини", + "direction": "напрямок", + "edit-item": "Редагувати елемент", + "edit-text": "Редагувати текст", + "editing-option": "Можливість редагування", + "error-answer-does-not-match-the-specified-answer-format": "Відповідь не відповідає формату відповіді, визначеному для цієї вправи.", + "error-quiz-item-added-after-answering": "Після відповіді на вправу тут додано запитання.", + "exact-string": "Точний рядок", + "examples-of-grading-policies": "Приклади політики оцінювання", + "explain-add-new-quiz-item": "Якщо ви хочете створити інший тип тесту, створіть нове завдання за допомогою «Додати завдання»", + "failed": "Не вдалося", + "failure-message": "Повідомлення про помилку", + "feedback-display policy": "Політика відображення відгуків", + "feedback-message": "Повідомлення зворотного зв'язку", + "fog-of-war": "Туман війни", + "fog-of-war-description": "Якщо ввімкнено, студент не бачитиме, чи правильні вибрані ним варіанти чи ні, доки він не отримає повністю правильну відповідь або не закінчиться спроба.", + "format": "Формат", + "format-regular-expression": "Форматувати регулярний вираз", + "give-full-points-even-if-answer-incorrect": "Дайте повні бали, навіть якщо відповідь неправильна", + "given-text-does-not-match-regular-expression": "Даний текст не відповідає регулярному виразу", + "given-text-matches-regular-expression": "Даний текст відповідає регулярному виразу", + "grading-strategy": "Стратегія оцінювання", + "grant-only-when-fully-correct": "Надавати лише тоді, коли все правильно", + "grant-whenever-possible": "Надавати, коли це можливо", + "horizontal": "Горизонтальний", + "incorrect-option": "Неправильно", + "input-header": "Вхід:", + "invalid-maximum-value": "Недійсне максимальне значення", + "invalid-minimum-value": "Недійсне мінімальне значення", + "invalid-regular-expression": "Недійсний регулярний вираз", + "label-correct": "Правильно", + "label-correct-event": "Правильна подія", + "label-message-on-model-solution": "Повідомлення про модельне рішення", + "label-null": "Не встановлено", + "label-preview": "Попередній перегляд", + "label-source": "Джерело", + "label-test": "Тест", + "label-year": "Рік", + "layout-of-options": "Розклад варіантів", + "layout-options": "Варіанти компонування", + "layout-options-description": "Виберіть напрямок, у якому параметри елементів вікторини використовуватимуться для розміщення у віджеті", + "limit-tries": "Обмеження спроб", + "limit-tries-explanation": "Позначте це, щоб обмежити кількість спроб цього тесту", + "markdown-editor-help-text": "Це редактор Markdown", + "markdown-preview": "Попередній перегляд Markdown", + "matrix-option-editor-title": "Редактор матриці", + "max": "максимум", + "max-words": "Максимум слів", + "maximum": "Максимум", + "message-after-submission-when-this-option-selected": "Повідомлення після надсилання, коли вибрано цей параметр", + "message-on-model-solution-when-this-option-selected": "Повідомлення про модельне рішення, коли вибрано цей параметр", + "min": "хв", + "min-words": "Мінімум слів", + "minimum": "Мінімум", + "multiple-choice-grading": "Політика оцінювання кількох варіантів", + "multiple-choice-grading-default": "Все правильно, жодної помилки", + "multiple-choice-grading-default-description": "Нараховуйте бали, лише якщо вибрано всі правильні варіанти і не вибрано жодного з неправильних", + "multiple-choice-grading-points-off-incorrect-options": "Зменшити бали від неправильних варіантів", + "multiple-choice-grading-points-off-incorrect-options-description": "Неправильні варіанти зменшать бали", + "multiple-choice-grading-points-off-unselected-options": "Зниження балів від неправильних і невибраних варіантів", + "multiple-choice-grading-points-off-unselected-options-description": "Неправильні варіанти та невибрані правильні варіанти зменшать бали", + "multiple-choice-grading-some-correct-none-incorrect": "Деякі правильні, жодного неправильного", + "multiple-choice-grading-some-correct-none-incorrect-description": "Поставте повні бали, якщо деякі з правильних варіантів були обрані, а жоден з неправильних варіантів не був обраний", + "multiple-choice-header": "Множинний вибір:", + "not-answered": "Без відповіді", + "number-of-tries-allowed": "Дозволена кількість спроб", + "on-each-quiz-item-answer-option": "У кожному пункті тесту - варіант відповіді", + "on-quiz-item": "На пункт вікторини", + "open": "Відчинено", + "option-title": "Назва варіанту", + "part": "Частина", + "passed": "Пройшов", + "placeholder-some-notable-event": "Якась знаменна подія", + "points-granting-policy": "Політика нарахування балів", + "points-to-gain": "Бали для отримання", + "preview-rendered-text": "Попередній перегляд відтвореного тексту", + "quiz-checkbox-description": "Прапорці чи ні – правильні чи неправильні відповіді", + "quiz-checkbox-name": "Прапорець", + "quiz-choose-n-description": "Варіанти (N)", + "quiz-choose-n-name": "Виберіть-n", + "quiz-clickable-multiple-choice-description": "Виберіть n із представлених кнопок", + "quiz-clickable-multiple-choice-name": "Виберіть n", + "quiz-description": "Опис вікторини", + "quiz-edit-title": "Редагувати", + "quiz-essay-description": "Для написання есе або просто тексту", + "quiz-essay-name": "Есе", + "quiz-information": "Інформація про вікторину", + "quiz-item-display-direction": "Напрямок, у якому мають з’являтися елементи", + "quiz-item-type-not-supported": "Цей тип тесту ще не підтримується.", + "quiz-item-type-not-unsupported-title": "Непідтримуваний тип вікторини", + "quiz-items": "Предмети вікторини", + "quiz-matrix-description": "Завдання написати відповідь у вигляді матриці", + "quiz-matrix-name": "Матриця", + "quiz-multiple-choice-description": "Виберіть правильну відповідь зі списку варіантів", + "quiz-multiple-choice-dropdown-description": "Виберіть правильний варіант зі спадного меню", + "quiz-multiple-choice-dropdown-name": "Множинний вибір із спадним меню", + "quiz-multiple-choice-name": "Множинний вибір", + "quiz-open-description": "Студент пише конкретну відповідь, підтверджену регулярним виразом", + "quiz-open-name": "Закрите питання", + "quiz-preview-title": "Попередній перегляд", + "quiz-scale-description": "На кожне запитання можна відповісти за шкалою чисел, наприклад, 1-5", + "quiz-scale-name": "Масштаб", + "quiz-timeline-description": "Зіставте роки з подіями на шкалі часу", + "quiz-timeline-name": "Хронологія", + "quiz-title-invalid-format": "Недійсний формат: перевірте теги", + "quiz-type-not-supported": "Тип вікторини не підтримується", + "regex": "Регулярний вираз", + "regular-expression-tester": "Тестер регулярних виразів", + "remove": "Видалити", + "row": "Рядок", + "section": "Підрозділ", + "select": "Виберіть...", + "select-all-correct-options": "Виберіть усі правильні варіанти.", + "shared-feedback-message": "Поширити повідомлення зворотнього зв'язку", + "shared-feedback-message-option": "Поширити повідомлення зворотнього зв'язку для опції", + "shuffle-option-description": "Змушує кожного студента бачити варіанти в різному порядку.", + "shuffled-checkbox-message": "Параметри перемішування", + "specialized-header": "Спеціалізований:", + "string": "Рядок", + "submit-message": "Надіслати повідомлення", + "success-message": "Повідомлення про успіх", + "switch-to-experimental-mode": "Не натискайте цю кнопку", + "switch-to-original-mode": "Перейти в оригінальний режим", + "test-string": "Тестовий рядок", + "this-feature-is-only-meant-for-closed-end-questions": "На даний момент ця функція призначена лише для закритих запитань під час заповнення кількох коротких полів, як-от векторне представлення.", + "title": "Назва", + "title-advanced-editing": "Розширене редагування", + "title-options": "Опції", + "title-options-description": "Додайте кілька варіантів до цього запитання", + "unsupported": "Не підтримується", + "validation": "Перевірка", + "validity-regular-expression": "Регулярний вираз дійсності", + "validity-regular-expression-not-provided": "Регулярний вираз дійсності не надано", + "vertical": "вертикальний", + "waiting-for-content": "Очікування контенту...", + "waiting-for-port": "Очікування порту...", + "word-count": "Підрахунок слів", + "words": "слова", + "your-answer-was-correct": "Ваша відповідь була правильною.", + "your-answer-was-not-correct": "Ваша відповідь була неправильною.", + "your-answer-was-partially-correct": "Ваша відповідь була частково правильною." +} diff --git a/shared-module/packages/common/src/locales/uk/shared-module.json b/shared-module/packages/common/src/locales/uk/shared-module.json new file mode 100644 index 00000000000..059b752140f --- /dev/null +++ b/shared-module/packages/common/src/locales/uk/shared-module.json @@ -0,0 +1,108 @@ +{ + "about": "Про", + "about-mooc-center": "Про центр MOOC", + "about-mooc-center-description": "Цей веб-сайт працює на основі програмного забезпечення з відкритим вихідним кодом, розробленого Центром MOOC Гельсінського університету. Позначити проект зірочкою на GitHub:", + "about-this-project": "Про цей проект,", + "about-this-project-description": "Цей веб-сайт працює на основі програмного забезпечення з відкритим вихідним кодом, розробленого Центром MOOC Гельсінського університету.", + "accessibility": "Доступність", + "added-text": "Доданий текст", + "available": "В наявності", + "breadcrumb": "Хлібна крихта", + "chapter-chapter-number": "Розділ {{number}}", + "chapter-front-page": "Головна сторінка", + "close": "Закрити", + "close-heading-menu": "Закрити навігацію заголовком", + "closed": "Зачинено", + "courses": "Курси", + "create-new-account": "Створити новий обліковий запис", + "creators": "Творці", + "current-page-x": "Поточна сторінка: {{number}}", + "debug": "Відлагоджувати", + "default-toast-delete-message": "Успішно видалено", + "default-toast-delete-title": "Видалено", + "default-toast-edit-has-been-saved-": "Редагування збережено!", + "default-toast-error-message": "Виникла помилка", + "default-toast-error-title": "Помилка", + "default-toast-loading-message": "Виконання дії...", + "default-toast-request-successful-message": "Запит успішно виконано.", + "default-toast-success-message": "Операція успішна!", + "default-toast-success-title": "Успіх", + "dropdown-menu": "Спадне меню", + "editable": "Можна редагувати", + "email": "Електронна пошта", + "email-templates": "Шаблони електронних листів", + "error-cannot-render-dynamic-content-missing-url": "Неможливо відобразити динамічний вміст: відсутня URL-адреса", + "error-part-of-page-has-crashed-error": "Частина сторінки аварійно завершила роботу: {{error}}", + "error-title": "Помилка", + "essay": "Есе", + "faq": "FAQ", + "go-to-next-page": "Перейти на наступну сторінку", + "go-to-page-x": "Перейдіть на сторінку {{number}}", + "go-to-previous-page": "Перейти на попередню сторінку", + "hide": "Приховати", + "hide-trace": "Приховати слід", + "home-page": "Домашня сторінка", + "in-this-page": "На цій сторінці", + "instruction": "Інструкція", + "label-false": "Брехня", + "label-items-per-page": "Елементів на сторінці", + "label-true": "Істина", + "language": "Мова", + "leave-a-comment": "Залишити коментар", + "license": "Ліцензія", + "likert-scale": "Шкала Лайкерта", + "likert-scale-agree": "Згоден", + "likert-scale-disagree": "Не згоден", + "likert-scale-neither-agree-nor-disagree": "Ні погоджуюсь, ні не погоджуюсь", + "likert-scale-strongly-agree": "Абсолютно згодний", + "likert-scale-strongly-disagree": "Категорично не згоден", + "log-in": "Увійти", + "log-out": "Вийти", + "modules": "Модулі", + "mooc-project-description": "Цей веб-сайт працює на основі програмного забезпечення з відкритим вихідним кодом, розробленого Центром MOOC Гельсінського університету.", + "navigation-menu": "Навігаційне меню", + "next-page": "Наступна сторінка", + "no": "Немає", + "on-date-at-time": "{{date}} о {{time}}", + "open-heading-menu": "Відкрити навігацію за заголовком", + "open-menu": "Відкрити меню", + "opens-in": "Відкривається в", + "opens-now": "Відкривається зараз!", + "partners": "Партнери", + "peer-review-instructions": "Оцініть відповідь за допомогою наведених запитань та тверджень.", + "peer-reviews-given": "Надані експертні оцінки", + "please-choose-a-value": "Будь ласка, виберіть значення", + "please-sign-in-to-view-this-page": "Увійдіть, щоб переглянути цю сторінку", + "points": "Оцінка", + "previous-page": "Попередня сторінка", + "privacy": "Конфіденційність", + "project-github": "Проект Github", + "read-only": "Лише для читання", + "removed-text": "Видалений текст", + "reply": "Відповісти", + "report": "Звіт", + "report-as-spam": "Повідомити про спам", + "required": "Обов‘язково", + "resources": "Ресурси", + "select-question": "Виберіть тип питання", + "set-field-value": "Набір {{name}}", + "show": "Показати", + "show-error-source": "Показати джерело", + "show-trace": "Показати слід", + "shuffle": "Перемішування", + "skip-to-content": "Перейти до вмісту", + "star-the-project-on-github": "Зірка проекту на GitHub", + "start-course": "Почати курс", + "status": "Статус", + "submit": "Надіслати", + "tab-aria-label-default": "Виберіть вкладку для відображення", + "title-debug-view": "Перегляд налагодження", + "title-references": "Література", + "to-complete-this-chapter": "Щоб завершити цю главу,", + "translate": "Перекласти", + "university-of-helsinki": "Університет Гельсінкі", + "user-settings": "Налаштування користувача", + "what-you-will-learn": "Про що ви дізнаєтеся в цьому розділі", + "write-a-review": "Написати відгук", + "yes": "Так" +} diff --git a/shared-module/packages/common/src/locales/uk/tmc.json b/shared-module/packages/common/src/locales/uk/tmc.json new file mode 100644 index 00000000000..b89b64f96d8 --- /dev/null +++ b/shared-module/packages/common/src/locales/uk/tmc.json @@ -0,0 +1,21 @@ +{ + "download-exercise": "Завантажити вправу", + "download-submission-button": "Завантажити", + "file-upload-save-failure": "Не вдалося зберегти завантажений файл", + "file-upload-save-success": "Файл успішно завантажено.", + "no-file-saved-yet": "Файл ще не збережено.", + "reset": "Скинути", + "reset-file": "Скинути файл", + "save-file-for-submission": "Зберегти файл для подання", + "select-file-for-submission": "Виберіть файл для подання", + "select-repository-exercise": "Будь ласка, виберіть вправу з репозиторію.", + "selected-repository-exercise": "Вибрана вправа з репозиторію", + "solve-in-browser": "Вирішити в браузері", + "solve-in-editor-instructions": "Ця вправа призначена для виконання за допомогою розширення TestMyCode для VSCode. Ви також можете завантажити вправу та завантажити рішення за допомогою посилань нижче.", + "solve-in-editor-label": "Вирішити у зовнішньому редакторі", + "submission-archive-download-label": "Поданий архів можна завантажити за наступним посиланням", + "submit": "Подати", + "upload-solution-instructions": "Завантажте архів з рішенням. Підтримувані типи архівів: .tar.zst", + "waiting-for-content": "Очікування вмісту...", + "waiting-for-port": "Очікування порту..." +}