Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Наступна ревізія | Попередня ревізія | ||
|
uk:authors_main:admin_api:admin_api_json [2024/05/09 22:22] sparklingsky создано |
uk:authors_main:admin_api:admin_api_json [2026/08/16 20:24] (поточний) |
||
|---|---|---|---|
| Рядок 11: | Рядок 11: | ||
| "lines": [] /* Список лінійок проходження */, | "lines": [] /* Список лінійок проходження */, | ||
| "tasks": [] /* Список рівнів гри*/, | "tasks": [] /* Список рівнів гри*/, | ||
| + | "translations": {} /* Переклади гри, за мовами. Лише в багатомовної гри */, | ||
| } | } | ||
| </code> | </code> | ||
| Рядок 86: | Рядок 87: | ||
| "answer_prefix": "фф", | "answer_prefix": "фф", | ||
| /* Префікс кодів */ | /* Префікс кодів */ | ||
| - | "default_line": "" | + | "default_line": "", |
| /* Лінійка за замовчуванням (назва) */ | /* Лінійка за замовчуванням (назва) */ | ||
| + | "lang": "ru", | ||
| + | /* Мова гри - мова, якою написані всі тексти. | ||
| + | Порожня, якщо локалізацію не ввімкнено */ | ||
| + | "langs": "{\"en\":null,\"uk\":null,\"*\":\"en\"}" | ||
| + | /* Мови перекладу: рядок із JSON вигляду | ||
| + | "мова перекладу" -> "мова, на яку вона падає" (null - на мову гри). | ||
| + | Ключ "*" - куди відправляти всі інші мови. | ||
| + | Докладніше: uk:authors_main:game_management:localization */ | ||
| } | } | ||
| } | } | ||
| Рядок 132: | Рядок 141: | ||
| } | } | ||
| </code> | </code> | ||
| + | |||
| + | ===== Переклади ===== | ||
| + | |||
| + | Секція з'являється лише в гри, у якої є переклади, і повертається під час імпорту. Ключ — код мови (дві літери) або ''"*"'' — псевдомова з позначками «не перекладати ніде». | ||
| + | |||
| + | <code JavaScript [enable_line_numbers="false"]> | ||
| + | { | ||
| + | "translations": { | ||
| + | "en": [ | ||
| + | { | ||
| + | "src": "Рядок із гри, як він є в тексті", | ||
| + | /* Оригінал. Він же ключ: переклад шукається за текстом, | ||
| + | а не за id завдання чи поля */ | ||
| + | "dst": "The string as the player sees it" | ||
| + | /* Переклад. Порожній - перекладу немає */ | ||
| + | }, | ||
| + | { | ||
| + | "src": "Nokia", | ||
| + | "dst": "", | ||
| + | "skip": true | ||
| + | /* Не перекладати цей рядок цією мовою */ | ||
| + | } | ||
| + | ], | ||
| + | "*": [ | ||
| + | { "src": "Nokia", "dst": "", "skip": true } | ||
| + | /* Не перекладати ніде: позначка на всі мови одразу */ | ||
| + | ] | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | Усередині ''src'' і ''dst'' трапляються плейсхолдери ''⟦N⟧'' та ''⟦/N⟧'' — замість розмітки, посилань і картинок — і підстановки на кшталт ''!username!''. Переклад, який їх не зберігає, імпорт відхиляє цілком. Що це за рядки, звідки беруться і як їх перекладати — [[uk:authors_main:game_management:localization|Багатомовна гра]] та [[uk:authors_main:game_management:localization_ai|Переклад гри за допомогою AI]]. | ||
| + | |||
| + | Секція ''translations'' замінює словники мов цілком. Точкова правка — секція ''translations_edit'': список записів ''{"lang": "en", "src": "...", "dst": "..."}'', де ''"delete": 1'' або порожній ''dst'' видаляє пару. Дві секції в одному імпорті разом не йдуть. | ||
| ===== Рівень ===== | ===== Рівень ===== | ||
| Рівень гри також має блокову структуру: | Рівень гри також має блокову структуру: | ||
| + | |||
| + | При [[uk:authors_main:admin_api:admin_json_export#експорт_з_ідентифікаторами|експорті з ids=1]] у секції ''task'' з'являється ще поле ''id'' - ідентифікатор рівня, за яким його можна адресувати при [[uk:authors_main:admin_api:admin_api_import_game#точкове_редагування|точковому редагуванні]]. У кодів, бонусів і підказок у цьому разі з'являються ''id'' та ''number''. | ||
| <code JavaScript [enable_line_numbers="false"]> | <code JavaScript [enable_line_numbers="false"]> | ||
| Рядок 279: | Рядок 324: | ||
| ====== Приклад усієї гри повністю ====== | ====== Приклад усієї гри повністю ====== | ||
| - | Опис полів [[ua:admin_api_json#Гра|тут]]. | + | Опис полів [[uk:authors_main:admin_api:admin_api_json#Гра|тут]]. |
| Приклад без опису: | Приклад без опису: | ||
| Рядок 379: | Рядок 424: | ||
| ====== Приклад рівня повністю ====== | ====== Приклад рівня повністю ====== | ||
| - | Опис полів [[ua:admin_api_json#Рівень|тут]]. | + | Опис полів [[uk:authors_main:admin_api:admin_api_json#Рівень|тут]]. |
| Приклад без опису нижче: | Приклад без опису нижче: | ||