From da990ad04653c8ffaa48a7f53050485cce18673d Mon Sep 17 00:00:00 2001 From: "a.petraki" <a.petraki@perx.ru> Date: Fri, 16 Aug 2024 13:50:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=BE=D0=B4=D0=BE=D0=B2/=D0=BF=D0=BE=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- proto/items/items.proto | 13 +++++++++---- proto/locales/locales.proto | 35 +++++++++++++++++++++++++++-------- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/proto/items/items.proto b/proto/items/items.proto index a8cc3c8..15b86c6 100644 --- a/proto/items/items.proto +++ b/proto/items/items.proto @@ -87,13 +87,13 @@ message Item { // Для удаления переводов реализована следующая логика: // - {"lang":nil|{}} - СЃР±СЂРѕСЃ перевода для языка // - {"lang":map{...}} - установка перевода для языка - // - {"lang":map{...}, "*":nil} - установка перевода для языка, СЃР±СЂРѕСЃ остальных переводов + // - {"lang":map{...}, "*":nil} - установка перевода для языка (РѕРґРЅРѕРіРѕ или нескольких), СЃР±СЂРѕСЃ остальных переводов // - {"*":nil} - СЃР±СЂРѕСЃ всех переводов map<string, google.protobuf.Struct> translations = 12; // РЎРїРёСЃРѕРє идентификаторов локалей, для которых есть переводы - // Соотвествует СЃРїРёСЃРєСѓ переводов РІ translations, РїСЂРё получении записи всегда возвращается - // полный СЃРїРёСЃРѕРє. Невозможно обновить вручную: формируется системой + // Соответствует СЃРїРёСЃРєСѓ переводов РІ translations, РїСЂРё получении записи всегда возвращается + // полный СЃРїРёСЃРѕРє. Невозможно обновить вручную, формируется системой repeated string translations_ids = 101; } @@ -152,7 +152,12 @@ message FindOptions { bool regular = 4; bool hidden = 5; bool templates = 6; - string locale_id = 7; // Язык перевода который будет использоваться. Если РЅРµ указан, то возвращаются данные для языка РїРѕ умолчанию + + // Язык перевода, для которого РЅСѓР¶РЅРѕ выполнить запрос. РџРѕ умолчанию если перевод для запрашиваемого + // поля РЅРµ существует, то РїРѕРёСЃРє РїСЂРѕС…РѕРґРёС‚ РїРѕ fallback-языку (если указан Рё существует) или РїРѕ основным данным. + // + // Если РЅРµ указан, то возвращаются данные для языка РїРѕ умолчанию + string locale_id = 7; // РЎРїРёСЃРѕРє идентификаторов переводов/локалей, которых должны быть включены РІ результат // Р’РѕР·РјРѕР¶РЅРѕ указание '*' для получения всех переводов diff --git a/proto/locales/locales.proto b/proto/locales/locales.proto index a2aa0e2..883243b 100644 --- a/proto/locales/locales.proto +++ b/proto/locales/locales.proto @@ -6,15 +6,33 @@ option go_package = "git.perx.ru/perxis/perxis-go/proto/locales;locales"; package content.locales; +// Locale содержит информацию Рё настройки для языка message Locale { - string id = 1; // Рдентификатор локали, генерируется автоматически. Для локали РїРѕ умолчанию устанавливается как "default". - string space_id = 2; // Рдентификатор пространства. - string name = 3; // Название локали. Опционально, заполняется автоматически (Пример: russian, english) - string native_name = 4; // Название локали РЅР° языке локали. Опционально, заполняется автоматически (Пример: Р СѓСЃСЃРєРёР№, English) - string code = 5; // РљРѕРґ локали https://en.wikipedia.org/wiki/IETF_language_tag - string fallback = 6; // Рдентификатор локали, который будет использоваться РїСЂРё отсутствии перевода + // Рдентификатор локали, генерируется автоматически. + // + // Р’ пространстве всегда существует РѕРґРЅР° локаль РїРѕ умолчанию, для нее идентификатор устанавливается `default`. + // `default`-локаль содержит настройки основных данных записи. Ее нельзя удалить, сделать `no_publish` или `disabled` + // Рё для нее нельзя установить `fallback`-локаль. + string id = 1; + + // Рдентификатор пространства локали. + string space_id = 2; + + // Название локали. Опционально: заполняется автоматически, если РЅРµ было передано (Пример: russian, english) + string name = 3; + + // Название локали РЅР° языке локали. Опционально, заполняется автоматически (Пример: Р СѓСЃСЃРєРёР№, English) + string native_name = 4; + + // РљРѕРґ локали https://en.wikipedia.org/wiki/IETF_language_tag. РќРµ является уникальным + string code = 5; + + // Рдентификатор локали, который будет использоваться РїСЂРё отсутствии перевода. Допускаются цепочки, РЅРѕ РїСЂРё + // получении перевода Р±СѓРґСѓС‚ использованы только данные РѕСЃРЅРѕРІРЅРѕР№, fallback Рё запрошенной локали. РќРµ допускается + // кольцевая зависимость локалей. + string fallback = 6; string direction = 7; // Направление РїРёСЃСЊРјР° - слева направо (ltr) или справа налево (rtl). РџРѕ умолчанию устанавливается ltr. - int64 weight = 8; // Вес локали. + int64 weight = 8; // Вес локали. Чем больше, тем РЅРёР¶Рµ приоритет bool no_publish = 100; // РќРµ публиковать контент данной локали. РќРµ будет доступен контент через Delivery API. (РєСЂРѕРјРµ default) bool disabled = 101; // Запретить использование локали. Нельзя создавать Рё редактировать контент для данной локали (РєСЂРѕРјРµ default) @@ -51,7 +69,8 @@ service Locales { // Обновить локаль rpc Update(UpdateRequest) returns(google.protobuf.Empty) {} - // Получить СЃРїРёСЃРѕРє локалей + // Получить СЃРїРёСЃРѕРє локалей. Р’ пространстве всегда есть РѕРґРЅР° локаль РїРѕ умолчанию. + // Результат возвращается СЃ сортировкой РїРѕ [ weight, name ] rpc List(ListRequest) returns(ListResponse) {} // Удалить локаль -- GitLab