authors_main:admin_api:admin_api_json

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
authors_main:admin_api:admin_api_json [2021/10/19 12:48]
phaust создано
authors_main:admin_api:admin_api_json [2026/08/16 20:24] (текущий)
Строка 1: Строка 1:
 +{{indexmenu_n>​3}}
 ======Структура JSON ====== ======Структура JSON ======
  
Строка 10: Строка 11:
   "​lines":​ [] /* Список линеек прохождения */,   "​lines":​ [] /* Список линеек прохождения */,
   "​tasks":​ [] /* Список уровней игры*/,   "​tasks":​ [] /* Список уровней игры*/,
 +  "​translations":​ {} /* Переводы игры, по языкам. Только у многоязычной игры */,
 } }
 </​code>​ </​code>​
Строка 86: Строка 88:
         "​answer_prefix":​ "​фф",​         "​answer_prefix":​ "​фф",​
         /* Префикс кодов */         /* Префикс кодов */
-        "​default_line":​ ""​+        "​default_line":​ ""​,
         /* Линейка по умолчанию (название) */         /* Линейка по умолчанию (название) */
 +        "​lang":​ "​ru",​
 +        /* Язык игры - язык, на котором написаны все тексты.
 +        Пустой,​ если локализация не включена */
 +        "​langs":​ "​{\"​en\":​null,​\"​uk\":​null,​\"​*\":​\"​en\"​}"​
 +        /* Языки перевода:​ строка с JSON вида
 +        "​язык перевода"​ -> "​язык,​ на который он падает"​ (null - на язык игры).
 +        Ключ "​*"​ - куда отправлять все остальные языки.
 +        Подробнее:​ authors_main:​game_management:​localization */
     }     }
 } }
Строка 132: Строка 142:
 } }
 </​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!''​. Перевод,​ который их не сохраняет,​ импорт отклоняет целиком. Что это за строки,​ откуда берутся и как их переводить — [[authors_main:​game_management:​localization|Многоязычная игра]] и [[authors_main:​game_management:​localization_ai|Перевод игры с помощью AI]].
 +
 +Секция ''​translations''​ заменяет словари языков целиком. Точечная правка — секция ''​translations_edit'':​ список записей ''​{"​lang":​ "​en",​ "​src":​ "​...",​ "​dst":​ "​..."​}'',​ где ''"​delete":​ 1''​ или пустой ''​dst''​ удаляет пару. Две секции в одном импорте вместе не идут.
  
 ===== Уровень ===== ===== Уровень =====
  
 Уровень в игре также имеет составную структуру:​ Уровень в игре также имеет составную структуру:​
 +
 +При [[admin_json_export#​Экспорт с идентификаторами|экспорте с ids=1]] в секции ''​task''​ появляется ещё поле ''​id''​ - идентификатор уровня в базе, по которому его можно адресовать при [[admin_api_import_game#​Точечное редактирование|точечном редактировании]]. У кодов, бонусов и подсказок в этом случае появляются ''​id''​ и ''​number''​.
  
 <code JavaScript [enable_line_numbers="​false"​]>​ <code JavaScript [enable_line_numbers="​false"​]>​
  • authors_main/admin_api/admin_api_json.1634647721.txt.gz
  • Последние изменения: 2021/10/19 12:48
  • phaust