From b722b8171b6498e167f3292b40d59cc107fec9f7 Mon Sep 17 00:00:00 2001 From: patiencedaur Date: Fri, 17 Dec 2021 16:02:16 +0300 Subject: [PATCH 1/4] Prepare files for translation Fix a formatting issue Bring a link in accordance with the SG Correct a meaning error --- doc/getting_started/change_schema_dynamically.rst | 2 ++ doc/getting_started/connecting_to_cluster.rst | 8 +++++--- doc/getting_started/getting_started_imcp.rst | 4 +++- doc/getting_started/index.rst | 2 ++ doc/getting_started/writing_cluster_code.rst | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/doc/getting_started/change_schema_dynamically.rst b/doc/getting_started/change_schema_dynamically.rst index 742490562b..d9d4d927ab 100644 --- a/doc/getting_started/change_schema_dynamically.rst +++ b/doc/getting_started/change_schema_dynamically.rst @@ -27,3 +27,5 @@ To remove snapshots: and they are located in the Tarantool working directory. To understand how the Tarantool data schema works, read the :ref:`Data model` section. + +test diff --git a/doc/getting_started/connecting_to_cluster.rst b/doc/getting_started/connecting_to_cluster.rst index 549950a668..4bc46322a8 100644 --- a/doc/getting_started/connecting_to_cluster.rst +++ b/doc/getting_started/connecting_to_cluster.rst @@ -60,9 +60,11 @@ Here is an incomplete list: To learn how to call stored procedures in your programming language, see the section "Calling Stored Procedures": -* :ref:`for Python` -* :ref:`for Go` -* :ref:`for PHP` +* :ref:`for Python ` +* :ref:`for Go ` +* :ref:`for PHP ` For connectors to other languages, check the README for the connector of your choice `on GitHub `_. + +test diff --git a/doc/getting_started/getting_started_imcp.rst b/doc/getting_started/getting_started_imcp.rst index aedea54e66..3578cc7824 100644 --- a/doc/getting_started/getting_started_imcp.rst +++ b/doc/getting_started/getting_started_imcp.rst @@ -17,7 +17,7 @@ This is the recommended guide for getting to know the product. and then see the basic tutorial to dive deeper into the product. If you just want to run the complete tutorial code quickly, go to -:ref:`this section `. +:ref:`Launching an application `. Installation ~~~~~~~~~~~~ @@ -495,3 +495,5 @@ See also To continue to the next steps of the tutorial, click the button in the bottom right corner or select the section in the table of contents on the left. + +test diff --git a/doc/getting_started/index.rst b/doc/getting_started/index.rst index 4aa68b8336..26c009bdb0 100644 --- a/doc/getting_started/index.rst +++ b/doc/getting_started/index.rst @@ -37,3 +37,5 @@ to write in/migrate to Tarantool. connecting_to_cluster change_schema_dynamically writing_cluster_code + +test diff --git a/doc/getting_started/writing_cluster_code.rst b/doc/getting_started/writing_cluster_code.rst index 9489368624..c9f22b657c 100644 --- a/doc/getting_started/writing_cluster_code.rst +++ b/doc/getting_started/writing_cluster_code.rst @@ -1,7 +1,7 @@ .. _getting_started-wrirting_cluster-code: ================================================================================= -Writing cluster application code +Writing code in a cluster application ================================================================================= In the "Getting Started" tutorial, @@ -15,3 +15,5 @@ It is also included in the tutorial default application. However, in Tarantool, you can implement absolutely any business logic on top of a cluster. This :doc:`Cartridge getting started section ` covers the cluster roles mechanism and writing a cluster application from scratch. + +test From e4518ad860793a453d3b9c26acdbb33f20e51dce Mon Sep 17 00:00:00 2001 From: patiencedaur Date: Wed, 22 Dec 2021 05:33:48 +0000 Subject: [PATCH 2/4] Update translations --- .../ru/LC_MESSAGES/getting_started/index.po | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/locale/ru/LC_MESSAGES/getting_started/index.po b/locale/ru/LC_MESSAGES/getting_started/index.po index 60b46bfef5..9567ca2a36 100644 --- a/locale/ru/LC_MESSAGES/getting_started/index.po +++ b/locale/ru/LC_MESSAGES/getting_started/index.po @@ -9,12 +9,20 @@ msgid "" "write our first data. You'll get an understanding of the technology and " "learn about the basic terms and features." msgstr "" +"Раздел :ref:`Начало знакомства ` познакомит вас с " +"Tarantool за 15 минут. В этом пошаговом руководстве мы создадим простой " +"микросервис для социальной сети TikTok. Мы запустим Tarantool, создадим " +"схему данных и запишем наши первые данные. Вы получите общее представление о" +" технологии, узнаете об основных терминах и функциональных возможностях." msgid "" "In the :ref:`Connecting to cluster ` section, we'll " "show you how to read or write data to Tarantool from your Python/Go/PHP " "application or another programming language." msgstr "" +"Из раздела :ref:`Подключаемся к кластеру ` вы " +"узнаете, как читать и писать данные в Tarantool с помощью вашего приложения " +"на Python, Go, PHP или другом языке программирования." msgid "" "After connecting to the database for the first time, you might want to " @@ -22,6 +30,10 @@ msgid "" "`, we'll discuss the approaches to changing" " the data schema and the associated limitations." msgstr "" +"После того как вы впервые подключились к базе данных, вам может понадобиться" +" изменить схему данных. В разделе :ref:`Обновление схемы данных " +"` мы расскажем, какие к этому есть подходы " +"и какие существуют ограничения." msgid "" "To make our code work with Tarantool, we may want to transfer some of our " @@ -32,3 +44,13 @@ msgid "" "works. In this way, you'll understand what part of your business logic you " "would like to write in/migrate to Tarantool." msgstr "" +"Чтобы наш код работал с Tarantool, нам может понадобиться перенести часть " +"логики работы с данными в Tarantool. В разделе :ref:`Написание кода в " +"кластерном приложении ` мы создадим " +"на языке Lua программу \"Hello, World!\", которая будет работать в нашем " +"кластере Tarantool. Вы получите базовое представление о том, как работает " +"механизм ролей, и поймете, какую часть бизнес-логики стоит писать на " +"Tarantool или перенести туда." + +msgid "test" +msgstr "test" From d50636bca01daeb74e63f072580baf4a40221e73 Mon Sep 17 00:00:00 2001 From: patiencedaur Date: Thu, 23 Dec 2021 05:48:11 +0000 Subject: [PATCH 3/4] Update translations --- .../change_schema_dynamically.po | 67 ++ .../getting_started/connecting_to_cluster.po | 136 +++ .../getting_started/getting_started_imcp.po | 912 ++++++++++++++++++ .../getting_started/writing_cluster_code.po | 32 + 4 files changed, 1147 insertions(+) create mode 100644 locale/ru/LC_MESSAGES/getting_started/change_schema_dynamically.po create mode 100644 locale/ru/LC_MESSAGES/getting_started/connecting_to_cluster.po create mode 100644 locale/ru/LC_MESSAGES/getting_started/getting_started_imcp.po create mode 100644 locale/ru/LC_MESSAGES/getting_started/writing_cluster_code.po diff --git a/locale/ru/LC_MESSAGES/getting_started/change_schema_dynamically.po b/locale/ru/LC_MESSAGES/getting_started/change_schema_dynamically.po new file mode 100644 index 0000000000..b78d206aad --- /dev/null +++ b/locale/ru/LC_MESSAGES/getting_started/change_schema_dynamically.po @@ -0,0 +1,67 @@ + +msgid "Updating the data schema" +msgstr "Обновление схемы данных" + +msgid "" +"When working with data, it is sometimes necessary to change the original " +"data schema." +msgstr "" +"Во время работы с данными иногда требуется изменить первоначальную схему " +"данных." + +msgid "" +"In the previous sections, we described a cluster-wide data schema in the " +"YAML format. The ``ddl`` module is responsible for applying the schema on " +"the cluster. This module does not allow to modify the schema after applying " +"it." +msgstr "" +"В предыдущих разделах мы описали схему данных через в кластере в формате " +"YAML. За применение схемы на кластере отвечает модуль ``ddl``. Этот модуль " +"не позволяет изменять схему после того, как она была применена." + +msgid "" +"The easiest way to change it is to delete the database snapshots and create " +"a schema from scratch. Of course, this is only acceptable during application" +" development and debugging. For production scenarios, read the section on " +":ref:`migrations`." +msgstr "" +"Самый простой способ изменить ее — это удалить снимки базы данных и создать " +"схему с нуля. Разумеется, это приемлемо только на время разработки и отладки" +" приложения. Для production-сценариев читайте раздел :ref:`Миграции " +"`." + +msgid "To remove snapshots:" +msgstr "Удалить снапшоты можно следующим образом:" + +msgid "" +"If you are using Tarantool in the cloud, click the \"Reset configuration\" " +"button." +msgstr "" +"Если вы используете Tarantool в облаке, вы можете воспользоваться кнопкой " +"\"Reset configuration\"." + +msgid "" +"If you've started Tarantool locally via ``cartridge start``, run ``cartridge" +" clean`` in the application directory." +msgstr "" +"Если вы запускаете Tarantool локально через утилиту ``cartridge start``, вы " +"можете выполнить команду ``cartridge clean`` в директории с приложением." + +msgid "" +"If you've started Tarantool in a different way, delete the snapshots and " +"xlogs manually. These files have the .snap and .xlog extensions " +"respectively, and they are located in the Tarantool working directory." +msgstr "" +"Если вы запускаете Tarantool иным образом, вам необходимо удалить снимки " +"базы данных (файлы ``.snap``) и файлы ``.xlog`` вручную. Эти файлы находятся" +" в рабочей директории Tarantool." + +msgid "" +"To understand how the Tarantool data schema works, read the :ref:`Data " +"model` section." +msgstr "" +"Чтобы понять, как устроена схема данных в Tarantool, читайте раздел " +":ref:`Модель данных`." + +msgid "test" +msgstr "test" diff --git a/locale/ru/LC_MESSAGES/getting_started/connecting_to_cluster.po b/locale/ru/LC_MESSAGES/getting_started/connecting_to_cluster.po new file mode 100644 index 0000000000..561210c8e7 --- /dev/null +++ b/locale/ru/LC_MESSAGES/getting_started/connecting_to_cluster.po @@ -0,0 +1,136 @@ + +msgid "Connecting to the cluster" +msgstr "Подключаемся к кластеру" + +msgid "" +"In the last section, we set up a cluster, created a schema, and wrote data " +"through the HTTP API. Now we can connect to the cluster from code and work " +"with data." +msgstr "" +"В прошлом разделе мы подняли кластер, создали схему и записали данные через " +"HTTP API. Теперь мы сможем подключиться к кластеру из кода и работать с " +"данными." + +msgid "" +"If you are using Tarantool without Cartridge, go to the :ref:`Connecting " +"from your favorite language ` section. If you " +"are undergoing training, read on." +msgstr "" +"Если вы используете Tarantool без Cartridge, то переходите в раздел :ref:`о " +"подключении к базе из разных языков программирования " +"`. Если вы проходите обучение, то читайте " +"дальше." + +msgid "" +"You may have noticed that we used the ``crud`` module in the HTTP handler " +"code. The code looked something like this:" +msgstr "" +"Вы могли обратить внимание, что в коде HTTP обработчиков мы использовали " +"модуль ``crud``. Код выглядел примерно вот так:" + +msgid "" +"local crud = require ('crud')\n" +"\n" +"function add_user(request)\n" +" local result, err = crud.insert_object ('users', {user_id = uuid.new (), fullname = fullname})\n" +"end" +msgstr "" +"local crud = require ('crud')\n" +"\n" +"function add_user(request)\n" +" local result, err = crud.insert_object ('users', {user_id = uuid.new (), fullname = fullname})\n" +"end" + +msgid "" +"This module allows you to work with data in a cluster. The syntax here is " +"similar to what the Tarantool ``box`` module offers. You will learn more " +"about the ``box`` module in the following sections." +msgstr "" +"Этот модуль позволяет работать с данными в кластере и имеет похожий " +"синтаксис, что предлагает модуль ``box`` в Tarantool. Про модуль ``box`` вы " +"узнаете в следующих разделах." + +msgid "" +"The ``crud`` module contains a set of stored procedures. To work with them, " +"we must activate special roles on all routers and storages. We selected " +"those roles in the previous section, so we don't need to do anything. The " +"roles are named accordingly: \"crud-router\" and \"crud-storage\"." +msgstr "" +"Модуль ``crud`` содержит набор хранимых процедур. Чтобы он заработал, мы " +"должны активировать на всех экземплярах router и storage специальные роли. В" +" прошлом разделе мы их выбрали, так что нам делать ничего не нужно. " +"Называются роли соответственно: \"crud-router\", \"crud-storage\"." + +msgid "" +"To write and read data in the Tarantool cluster from code, we will call " +"stored procedures of the ``crud`` module." +msgstr "" +"Чтобы писать и читать данные в кластере Tarantool из кода, мы будем вызывать" +" хранимые процедуры модуля ``crud``." + +msgid "In Python, it looks like this:" +msgstr "На языке Python это выглядит примерно вот так:" + +msgid "" +"res = conn.call('crud.insert', 'users', , 'Jim Carrey')\n" +"users = conn.call('crud.select', 'users', {limit: 100})" +msgstr "" +"res = conn.call('crud.insert', 'users', , 'Jim Carrey')\n" +"users = conn.call('crud.select', 'users', {limit: 100})" + +msgid "" +"All functions of the ``crud`` module are described in the `README of our " +"GitHub repository `_." +msgstr "" +"Список всех функций модуля ``crud`` можно найти в `репозитории на GitHub " +"`_." + +msgid "Here is an incomplete list:" +msgstr "В него входят:" + +msgid "``insert``" +msgstr "``insert``" + +msgid "``select``" +msgstr "``select``" + +msgid "``get``" +msgstr "``get``" + +msgid "``delete``" +msgstr "``delete``" + +msgid "``min``\\/``max``" +msgstr "``min``\\/``max``" + +msgid "``replace``\\/``upsert``" +msgstr "``replace``\\/``upsert``" + +msgid "``truncate``" +msgstr "``truncate``" + +msgid "" +"To learn how to call stored procedures in your programming language, see the" +" section \"Calling Stored Procedures\":" +msgstr "" +"Чтобы узнать, как вызывать хранимые процедуры в вашем языке " +"программирования, смотрите раздел \"Вызов хранимых процедур\":" + +msgid ":ref:`for Python `" +msgstr ":ref:`для Python`" + +msgid ":ref:`for Go `" +msgstr ":ref:`для Go `" + +msgid ":ref:`for PHP `" +msgstr ":ref:`для PHP `" + +msgid "" +"For connectors to other languages, check the README for the connector of " +"your choice `on GitHub `_." +msgstr "" +"Информацию о подключении из других языков вы найдете в README к " +"`соответствующим коннекторам на GitHub `_." + +msgid "test" +msgstr "test" diff --git a/locale/ru/LC_MESSAGES/getting_started/getting_started_imcp.po b/locale/ru/LC_MESSAGES/getting_started/getting_started_imcp.po new file mode 100644 index 0000000000..2af4e33ca7 --- /dev/null +++ b/locale/ru/LC_MESSAGES/getting_started/getting_started_imcp.po @@ -0,0 +1,912 @@ + +msgid "First steps" +msgstr "Начало знакомства" + +msgid "This is the recommended guide for getting to know the product." +msgstr "Это рекомендованное руководство для знакомства с продуктом." + +msgid "" +"You also might want to check out our :ref:`basic Tarantool tutorial " +"`. It shows how to launch one Tarantool instance, create" +" a space, build an index, and write data." +msgstr "" +"Вам может понадобиться ознакомиться с :ref:`базовым руководством по " +"Tarantool `. В нем запускается один экземпляр Tarantool," +" создается спейс, индекс и записываются данные." + +msgid "" +"We recommend that beginners go through the current tutorial first and then " +"see the basic tutorial to dive deeper into the product." +msgstr "" +"Мы советуем новичкам сначала пройти текущее руководство, а затем вернуться к" +" базовому для более глубокого погружения в продукт." + +msgid "" +"If you just want to run the complete tutorial code quickly, go to " +":ref:`Launching an application `." +msgstr "" +"Если вы хотите быстро запустить готовый код, перейдите в раздел :ref:`Запуск" +" приложения `." + +msgid "Installation" +msgstr "Установка" + +msgid "**Launch in the cloud**" +msgstr "**Запуск в облаке**" + +msgid "" +"This tutorial is also available in the cloud. It's free, and it's the " +"fastest way to start. To follow this tutorial in the cloud, go to " +"`try.tarantool.io `__." +msgstr "" +"Данное руководство можно пройти в облаке. Это бесплатный и самый быстрый " +"способ начать знакомство. Переходите на сайт `try.tarantool.io " +"`__ и проходите этот туториал в облаке." + +msgid "" +"However, you will still need to install Tarantool if you want to get better " +"acquainted with it." +msgstr "" +"Однако для дальнейшего знакомства все же будет необходимо установить " +"Tarantool." + +msgid "**Run locally**" +msgstr "**Локальный запуск**" + +msgid "**For Linux/macOS users:**" +msgstr "**Для пользователей Linux/macOS:**" + +msgid "" +"Install Tarantool from the `Download page " +"`__." +msgstr "" +"Установите Tarantool `со страницы установки " +"`__." + +msgid "Install the ``cartridge-cli`` utility through your package manager:" +msgstr "Установите через ваш пакетный менеджер утилиту ``cartridge-cli``:" + +msgid "sudo yum install cartridge-cli" +msgstr "sudo yum install cartridge-cli" + +msgid "brew install cartridge-cli" +msgstr "brew install cartridge-cli" + +msgid "" +"To learn more, check the ``cartridge-cli`` :doc:`installation guide " +"`." +msgstr "" +"Подробности о том, как установить ``cartridge-cli``, читайте в " +":doc:`руководстве по установке " +"`." + +msgid "" +"Clone the `Getting Started tutorial repository " +"`__." +msgstr "" +"Склонируйте `репозиторий пошагового руководства " +"`__." + +msgid "" +"Everything is ready and organized in this repository. In the cloned " +"directory, run the following:" +msgstr "" +"В этом репозитории все готово к работе --- в папке со склонированным " +"примером выполните:" + +msgid "" +"cartridge build\n" +"cartridge start" +msgstr "" +"cartridge build\n" +"cartridge start" + +msgid "" +"You're all set! At http://localhost:8081, you will see the Tarantool " +"Cartridge UI." +msgstr "" +"Готово! По адресу http://localhost:8081 вы увидите UI Tarantool Cartridge." + +msgid "**Running in Docker:**" +msgstr "**Запуск в Docker:**" + +msgid "docker run -p 3301:3301 -p 8081:8081 tarantool/getting-started" +msgstr "docker run -p 3301:3301 -p 8081:8081 tarantool/getting-started" + +msgid "" +"That's it! At http://localhost:8081, you will see the Tarantool Cartridge " +"UI." +msgstr "" +"Готово! По адресу http://localhost:8081 вы увидите UI Tarantool\n" +"Cartridge." + +msgid "**For Windows users:**" +msgstr "**Для пользователей Windows:**" + +msgid "Use Docker to get started." +msgstr "Используйте Docker и читайте раздел выше." + +msgid "Getting to know Tarantool" +msgstr "С чего начнем знакомство" + +msgid "" +"Today, we will solve a high-performance challenge for TikTok using " +"Tarantool." +msgstr "" +"Сегодня мы решим высоконагруженную задачку для сервиса TikTok с помощью " +"Tarantool." + +msgid "" +"You will implement a counter of likes for videos. First, you will create " +"base tables and search indexes. Then you will set up an HTTP API for mobile " +"clients." +msgstr "" +"У такого сервиса обычно самая нагруженная часть --- это сохранение лайков " +"под видео. Нужно будет создать базовые таблицы, индексы для поиска и в конце" +" поднять HTTP API для мобильных клиентов." + +msgid "" +"The challenge doesn't require you to write any additional code. Everything " +"will be implemented on the Tarantool platform." +msgstr "" +"Вам не потребуется писать дополнительный код. Все будет реализовано на " +"платформе Tarantool." + +msgid "" +"If you accidentally do something wrong while following the instructions, " +"there is a magic button to help you reset all changes. It is called " +"**\"Reset Configuration\"**. You can find it at the top of the \"Cluster\" " +"page." +msgstr "" +"Если по ходу выполнения инструкции вы случайно сделали что-то не то, есть " +"волшебная кнопка, которая поможет вам сбросить все изменения. Она называется" +" **\"Reset Configuration\"** и находится на вкладке \"Cluster\" в верхней " +"части страницы." + +msgid "Configuring a cluster [1 minute]" +msgstr "Конфигурируем кластер [1 мин]" + +msgid "**Everything you need to know to get started:**" +msgstr "**Все, что нужно знать для старта:**" + +msgid "A Tarantool cluster has two service roles: router and storage." +msgstr "В кластере Tarantool есть две служебные роли: router, storage." + +msgid "Storage is used to store data." +msgstr "Storage --- это хранилище данных." + +msgid "" +"Router is an intermediary between clients and storages. It accepts a " +"client's request, takes data from the proper storage, and returns it to the " +"client." +msgstr "" +"Router --- это посредник между клиентами и storage. Он принимает запросы от " +"клиентов, ходит к нужным экземплярам storage за данными и возвращает данные " +"клиенту." + +msgid "We see that we have 5 unconfigured instances on the \"Cluster\" tab." +msgstr "" +"На вкладке \"Cluster\" мы видим, что в нашем распоряжении есть 5\n" +"несконфигурированных экземпляров." + +msgid "List of all nodes" +msgstr "Список всех узлов" + +msgid "Let's create one router and one storage for a start." +msgstr "Создадим для начала один router и один storage." + +msgid "" +"First, click the \"Configure\" button on the \"router\" instance and " +"configure it as in the screenshot below:" +msgstr "" +"Сначала нажимаем кнопку \"Configure\" на экземпляре \"router\" и настраиваем" +" его как на скриншоте ниже:" + +msgid "Configuring a router" +msgstr "Настраиваем router" + +msgid "Next, we configure the \"s1-master\" instance:" +msgstr "Далее настраиваем экземпляр \"s1-master\":" + +msgid "Configuring s1-master" +msgstr "Настраиваем s1-master" + +msgid "It will look something like this:" +msgstr "Получится примерно вот так:" + +msgid "Cluster view after first setup" +msgstr "Вид кластера после первой настройки" + +msgid "" +"Let's enable sharding in the cluster using the \"Bootstrap vshard\" button. " +"It is located in the top right corner." +msgstr "" +"Включим шардирование в кластере с помощью кнопки \"Bootstrap vshard\". Она " +"находится справа сверху." + +msgid "Creating a data schema [2 minutes]" +msgstr "Создаем схему данных [2 мин]" + +msgid "" +"Let's start with the data schema---take a look at the \"Code\" tab on the " +"left." +msgstr "" +"Начнем со схемы данных: загляните на вкладку \"Code\". Она находится слева." + +msgid "" +"Here we can create a file called ``schema.yml``. In this file, you can " +"describe the entire cluster's data schema, edit the current schema, validate" +" its correctness, and apply it to the whole cluster." +msgstr "" +"Здесь мы сможем создать файл под названием ``schema.yml``. В нем можно " +"описать схему данных для всего кластера, отредактировать текущую схему, " +"проверить ее на корректность и применить на всем кластере." + +msgid "" +"First, let's create the necessary tables. In Tarantool, they are called " +"spaces." +msgstr "" +"Создадим необходимые таблицы. В Tarantool они называются спейсами (space)." + +msgid "We need to store:" +msgstr "Нам понадобится хранить:" + +msgid "Users" +msgstr "пользователей;" + +msgid "Videos with descriptions" +msgstr "видео с описаниями;" + +msgid "Likes for each video" +msgstr "лайки для каждого видео." + +msgid "" +"Create a ``schema.yml`` file to load the schema into the cluster. Copy and " +"paste schema to this file. Click the \"Apply\" button. After that, the data " +"schema will be described in the cluster." +msgstr "" +"Чтобы загрузить схему в кластер, создайте файл ``schema.yml``.\n" +"Скопируйте и вставьте схему в этот файл. Нажмите на кнопку \"Apply\".\n" +"После этого в кластере будет описана схема данных." + +msgid "This is what our data schema will look like:" +msgstr "Вот как будет выглядеть наша схема данных:" + +msgid "" +"spaces:\n" +" users:\n" +" engine: memtx\n" +" is_local: false\n" +" temporary: false\n" +" sharding_key:\n" +" - \"user_id\"\n" +" format:\n" +" - {name: bucket_id, type: unsigned, is_nullable: false}\n" +" - {name: user_id, type: uuid, is_nullable: false}\n" +" - {name: fullname, type: string, is_nullable: false}\n" +" indexes:\n" +" - name: user_id\n" +" unique: true\n" +" parts: [{path: user_id, type: uuid, is_nullable: false}]\n" +" type: HASH\n" +" - name: bucket_id\n" +" unique: false\n" +" parts: [{path: bucket_id, type: unsigned, is_nullable: false}]\n" +" type: TREE\n" +" videos:\n" +" engine: memtx\n" +" is_local: false\n" +" temporary: false\n" +" sharding_key:\n" +" - \"video_id\"\n" +" format:\n" +" - {name: bucket_id, type: unsigned, is_nullable: false}\n" +" - {name: video_id, type: uuid, is_nullable: false}\n" +" - {name: description, type: string, is_nullable: true}\n" +" indexes:\n" +" - name: video_id\n" +" unique: true\n" +" parts: [{path: video_id, type: uuid, is_nullable: false}]\n" +" type: HASH\n" +" - name: bucket_id\n" +" unique: false\n" +" parts: [{path: bucket_id, type: unsigned, is_nullable: false}]\n" +" type: TREE\n" +"\n" +" likes:\n" +" engine: memtx\n" +" is_local: false\n" +" temporary: false\n" +" sharding_key:\n" +" - \"video_id\"\n" +" format:\n" +" - {name: bucket_id, type: unsigned, is_nullable: false}\n" +" - {name: like_id, type: uuid, is_nullable: false}\n" +" - {name: user_id, type: uuid, is_nullable: false}\n" +" - {name: video_id, type: uuid, is_nullable: false}\n" +" - {name: timestamp, type: string, is_nullable: true}\n" +" indexes:\n" +" - name: like_id\n" +" unique: true\n" +" parts: [{path: like_id, type: uuid, is_nullable: false}]\n" +" type: HASH\n" +" - name: bucket_id\n" +" unique: false\n" +" parts: [{path: bucket_id, type: unsigned, is_nullable: false}]\n" +" type: TREE" +msgstr "" +"spaces:\n" +" users:\n" +" engine: memtx\n" +" is_local: false\n" +" temporary: false\n" +" sharding_key:\n" +" - \"user_id\"\n" +" format:\n" +" - {name: bucket_id, type: unsigned, is_nullable: false}\n" +" - {name: user_id, type: uuid, is_nullable: false}\n" +" - {name: fullname, type: string, is_nullable: false}\n" +" indexes:\n" +" - name: user_id\n" +" unique: true\n" +" parts: [{path: user_id, type: uuid, is_nullable: false}]\n" +" type: HASH\n" +" - name: bucket_id\n" +" unique: false\n" +" parts: [{path: bucket_id, type: unsigned, is_nullable: false}]\n" +" type: TREE\n" +" videos:\n" +" engine: memtx\n" +" is_local: false\n" +" temporary: false\n" +" sharding_key:\n" +" - \"video_id\"\n" +" format:\n" +" - {name: bucket_id, type: unsigned, is_nullable: false}\n" +" - {name: video_id, type: uuid, is_nullable: false}\n" +" - {name: description, type: string, is_nullable: true}\n" +" indexes:\n" +" - name: video_id\n" +" unique: true\n" +" parts: [{path: video_id, type: uuid, is_nullable: false}]\n" +" type: HASH\n" +" - name: bucket_id\n" +" unique: false\n" +" parts: [{path: bucket_id, type: unsigned, is_nullable: false}]\n" +" type: TREE\n" +"\n" +" likes:\n" +" engine: memtx\n" +" is_local: false\n" +" temporary: false\n" +" sharding_key:\n" +" - \"video_id\"\n" +" format:\n" +" - {name: bucket_id, type: unsigned, is_nullable: false}\n" +" - {name: like_id, type: uuid, is_nullable: false}\n" +" - {name: user_id, type: uuid, is_nullable: false}\n" +" - {name: video_id, type: uuid, is_nullable: false}\n" +" - {name: timestamp, type: string, is_nullable: true}\n" +" indexes:\n" +" - name: like_id\n" +" unique: true\n" +" parts: [{path: like_id, type: uuid, is_nullable: false}]\n" +" type: HASH\n" +" - name: bucket_id\n" +" unique: false\n" +" parts: [{path: bucket_id, type: unsigned, is_nullable: false}]\n" +" type: TREE" + +msgid "It's simple. Let's take a closer look at the essential points." +msgstr "Тут все просто. Рассмотрим важные моменты." + +msgid "" +"Tarantool has two built-in storage engines: memtx and vinyl. memtx stores " +"all data in RAM while asynchronously writing to disk so that nothing gets " +"lost." +msgstr "" +"В Tarantool есть два встроенных движка хранения: memtx и vinyl. Первый " +"хранит все данные в оперативной памяти, при этом асинхронно записывая на " +"диск, чтобы ничего не потерялось." + +msgid "" +"Vinyl is a classic engine for storing data on the hard drive. It is " +"optimized for write-intensive scenarios." +msgstr "" +"Второй движок Vinyl --- это классический движок для хранения данных на " +"жестком диске. Он оптимизирован для большого количества операций записи " +"данных." + +msgid "" +"In TikTok, there are a lot of simultaneous readings and posts: users watch " +"videos, like them, and comment on them. Therefore, let's use memtx." +msgstr "" +"Для сервиса TikTok актуально большое количество одновременных чтений и " +"записей: пользователи смотрят видео, ставят им лайки и комментируют их. " +"Поэтому используем memtx." + +msgid "" +"The configuration above describes three memtx spaces (tables) and the " +"necessary indexes for each of the spaces." +msgstr "" +"Мы указали в конфигурации три спейса (таблицы) в memtx и для каждого из " +"спейсов задали необходимые индексы." + +msgid "Each space has two indexes:" +msgstr "Их два для каждого спейса:" + +msgid "The primary key, which is required to read/write data." +msgstr "" +"Первый --- это первичный ключ. Он необходим для того, чтобы читать/писать " +"данные." + +msgid "" +"An index on the bucket_id field, which is a service field used for sharding." +msgstr "" +"Второй --- это индекс для поля ``bucket_id``. Это поле служебное и " +"используется при шардировании." + +msgid "" +"**Important:** The name ``bucket_id`` is reserved. If you choose another " +"name, sharding won't work for this space. If you don't use sharding in your " +"project, you can remove the second index." +msgstr "" +"**Важно:** название ``bucket_id`` --- зарезервированное. Если вы выберите " +"другое название, то шардирование для этого спейса работать не будет. Если в " +"проекте шардирование не используется, то второй индекс можно убрать." + +msgid "" +"To understand which field to shard data by, Tarantool uses ``sharding_key``." +" ``sharding_key`` points to fields in the space by which database records " +"will be sharded. There can be more than one such field, but in this example," +" we will only use one. When some data is inserted, Tarantool forms a hash " +"from this field, calculates the bucket number, and selects the storage to " +"record the data into." +msgstr "" +"Чтобы понять, по какому полю шардировать данные, Tarantool использует " +"``sharding_key``. ``sharding_key`` указывает на поле в спейсе, по которому " +"будут шардироваться записи. Таких полей может быть и несколько. В данном " +"примере мы будем использовать только одно поле. Tarantool возьмет хеш от " +"этого поля при вставке, вычислит номер бакета и подберет для записи нужный " +"storage." + +msgid "" +"Yes, buckets can repeat, and each storage stores a specific range of " +"buckets." +msgstr "" +"Да, бакеты могут повторяться, а каждый storage хранит определенный диапазон " +"бакетов." + +msgid "Here are a couple more interesting facts:" +msgstr "Еще пара мелочей для любопытных:" + +msgid "" +"The ``parts`` field in the index description can contain several fields, " +"which allows building a composite index. You won't need it in this tutorial." +msgstr "" +"Поле ``parts`` в описании индекса может содержать несколько полей для того, " +"чтобы построить составной индекс. В данной задаче он не требуется." + +msgid "" +"Tarantool does not support foreign keys, so you have to check manually upon " +"insertion that ``video_id`` and ``user_id`` exist in the ``likes`` space." +msgstr "" +"Tarantool не поддерживает Foreign key или \"внешний ключ\", поэтому в спейсе" +" ``likes`` нужно при вставке вручную проверять, что такие ``video_id`` и " +"``user_id`` существуют." + +msgid "Writing data [5 minutes]" +msgstr "Записываем данные [5 мин]" + +msgid "" +"We will write data to the Tarantool cluster using the CRUD module. You don't" +" have to specify the shard you want to read from or write to---the module " +"does it for you." +msgstr "" +"Записывать данные в кластер Tarantool будем с помощью модуля CRUD. Этот " +"модуль сам определяет, с какого шарда читать и на какой шард записывать, и " +"делает это за вас." + +msgid "" +"**Important:** All cluster operations must be performed only on the router " +"and using the CRUD module." +msgstr "" +"Важно: все операции по кластеру необходимо производить только на экземпляре " +"router и с помощью модуля CRUD." + +msgid "Let's connect the CRUD module in the code and write three procedures:" +msgstr "Подключим модуль CRUD в коде и напишем три процедуры:" + +msgid "User creation" +msgstr "создание пользователя;" + +msgid "Adding a video" +msgstr "добавление видео;" + +msgid "Liking a video" +msgstr "лайк видео." + +msgid "" +"The procedures must be described in a special file. To do this, go to the " +"\"Code\" tab. Create a new directory called ``extensions``, and in this " +"directory, create the file ``api.lua``." +msgstr "" +"Процедуры нужно описать в специальном файле. Для этого перейдите на вкладку " +"\"Code\". Создайте новую директорию под названием ``extensions``, а в ней " +"создайте файл ``api.lua``." + +msgid "Paste the code below into ``api.lua`` and click \"Apply\"." +msgstr "Вставьте в этот файл следующий код, а затем нажмите \"Apply\"." + +msgid "" +"local cartridge = require('cartridge')\n" +"local crud = require('crud')\n" +"local uuid = require('uuid')\n" +"local json = require('json')\n" +"\n" +"function add_user(request)\n" +" local fullname = request:post_param(\"fullname\")\n" +" local result, err = crud.insert_object('users', {user_id = uuid.new(), fullname = fullname})\n" +" if err ~ = nil then\n" +" return {body = json.encode({status = \"Error!\", error = err}), status = 500}\n" +" end\n" +"\n" +" return {body = json.encode({status = \"Success!\", result = result}), status = 200}\n" +"end\n" +"\n" +"function add_video(request)\n" +" local description = request:post_param(\"description\")\n" +" local result, err = crud.insert_object('videos', {video_id = uuid.new(), description = description})\n" +" if err ~= nil then\n" +" return {body = json.encode({status = \"Error!\", error = err}), status = 500}\n" +" end\n" +"\n" +" return {body = json.encode({status = \"Success!\", result = result}), status = 200}\n" +"end\n" +"\n" +"function like_video(request)\n" +" local video_id = request: post_param(\"video_id\")\n" +" local user_id = request: post_param(\"user_id\")\n" +"\n" +" local result, err = crud.insert_object('likes', {like_id = uuid.new(),\n" +" video_id = uuid.fromstr(video_id),\n" +" user_id = uuid.fromstr(user_id)})\n" +" if err ~= nil then\n" +" return {body = json.encode({status = \"Error!\", error = err}), status = 500}\n" +" end\n" +"\n" +" return {body = json.encode({status = \"Success!\", result = result}), status = 200}\n" +"end\n" +"\n" +"return {\n" +" add_user = add_user,\n" +" add_video = add_video,\n" +" like_video = like_video,\n" +"}" +msgstr "" +"local cartridge = require('cartridge')\n" +"local crud = require('crud')\n" +"local uuid = require('uuid')\n" +"local json = require('json')\n" +"\n" +"function add_user(request)\n" +" local fullname = request:post_param(\"fullname\")\n" +" local result, err = crud.insert_object('users', {user_id = uuid.new(), fullname = fullname})\n" +" if err ~ = nil then\n" +" return {body = json.encode({status = \"Error!\", error = err}), status = 500}\n" +" end\n" +"\n" +" return {body = json.encode({status = \"Success!\", result = result}), status = 200}\n" +"end\n" +"\n" +"function add_video(request)\n" +" local description = request:post_param(\"description\")\n" +" local result, err = crud.insert_object('videos', {video_id = uuid.new(), description = description})\n" +" if err ~= nil then\n" +" return {body = json.encode({status = \"Error!\", error = err}), status = 500}\n" +" end\n" +"\n" +" return {body = json.encode({status = \"Success!\", result = result}), status = 200}\n" +"end\n" +"\n" +"function like_video(request)\n" +" local video_id = request: post_param(\"video_id\")\n" +" local user_id = request: post_param(\"user_id\")\n" +"\n" +" local result, err = crud.insert_object('likes', {like_id = uuid.new(),\n" +" video_id = uuid.fromstr(video_id),\n" +" user_id = uuid.fromstr(user_id)})\n" +" if err ~= nil then\n" +" return {body = json.encode({status = \"Error!\", error = err}), status = 500}\n" +" end\n" +"\n" +" return {body = json.encode({status = \"Success!\", result = result}), status = 200}\n" +"end\n" +"\n" +"return {\n" +" add_user = add_user,\n" +" add_video = add_video,\n" +" like_video = like_video,\n" +"}" + +msgid "Setting up HTTP API [2 minutes]" +msgstr "Поднимаем HTTP API [2 мин]" + +msgid "" +"Clients will visit the Tarantool cluster using the HTTP protocol. The " +"cluster already has a built-in HTTP server." +msgstr "" +"Клиенты будут ходить в кластер Tarantool по протоколу HTTP. В кластере уже " +"есть свой встроенный HTTP-сервер." + +msgid "" +"To configure HTTP paths, you need to write a configuration file. Go to the " +"\"Code\" tab. Create the file ``config.yml`` in the ``extensions`` " +"directory, which you created on the last step." +msgstr "" +"Чтобы сконфигурировать HTTP-пути, необходимо написать конфигурационный файл." +" Для этого перейдите на вкладку \"Code\". Создайте файл ``config.yml`` в " +"директории ``extensions`` (вы ее создали на прошлом шаге)." + +msgid "" +"Paste the configuration example below into ``config.yml`` and click " +"\"Apply\"." +msgstr "" +"Вставьте в этот файл следующий пример конфигурации и нажмите на кнопку " +"\"Apply\"." + +msgid "" +"---\n" +" functions:\n" +"\n" +" customer_add:\n" +" module: extensions.api\n" +" handler: add_user\n" +" events:\n" +" - http: {path: \"/add_user\", method: POST}\n" +"\n" +" account_add:\n" +" module: extensions.api\n" +" handler: add_video\n" +" events:\n" +" - http: {path: \"/add_video\", method: POST}\n" +"\n" +" transfer_money:\n" +" module: extensions.api\n" +" handler: like_video\n" +" events:\n" +" - http: {path: \"/like_video\", method: POST}\n" +"..." +msgstr "" +"---\n" +" functions:\n" +"\n" +" customer_add:\n" +" module: extensions.api\n" +" handler: add_user\n" +" events:\n" +" - http: {path: \"/add_user\", method: POST}\n" +"\n" +" account_add:\n" +" module: extensions.api\n" +" handler: add_video\n" +" events:\n" +" - http: {path: \"/add_video\", method: POST}\n" +"\n" +" transfer_money:\n" +" module: extensions.api\n" +" handler: like_video\n" +" events:\n" +" - http: {path: \"/like_video\", method: POST}\n" +"..." + +msgid "Done! Let's make test requests from the console:" +msgstr "Готово! Сделаем тестовые запросы из консоли:" + +msgid "curl -X POST --data \"fullname = Taran Tool\" /add_user" +msgstr "curl -X POST --data \"fullname = Taran Tool\" /add_user" + +msgid "We've just created a user and got their UUID. Let's remember it." +msgstr "Создали пользователя и получили его UUID. Запомним его." + +msgid "curl -X POST --data \"description = My first tiktok\" /add_video" +msgstr "curl -X POST --data \"description = My first tiktok\" /add_video" + +msgid "" +"Let's say a user has added their first video with a description. The video " +"clip also has a UUID. Let's remember it, too." +msgstr "" +"Представим, что пользователь добавил свое первое видео с описанием. Мы также" +" получили UUID видеоролика. Его тоже запомним." + +msgid "" +"In order to \"like\" the video, you need to specify the user UUID and the " +"video UUID. Substitute the ellipses in the command below with the " +"corresponding UUIDs:" +msgstr "" +"Чтобы \"лайкнуть\" видео, нужно указать UUID пользователя и UUID\n" +"видео. Подставим эти данные, полученные за первые два шага, вместо многоточий ниже." + +msgid "" +"curl -X POST --data \"video_id = ... & user_id = ...\" /like_video" +msgstr "" +"curl -X POST --data \"video_id = ... & user_id = ...\" /like_video" + +msgid "The result will be something like this:" +msgstr "Получится примерно вот так:" + +msgid "Test queries in the console" +msgstr "Тестовые запросы в консоли" + +msgid "" +"In our example, you can \"like\" the video as many times as you want. It " +"makes no sense in the real life, but it will help us understand how sharding" +" works---more precisely, the ``sharding_key`` parameter." +msgstr "" +"В нашем примере \"лайкать\" видео можно сколько угодно раз. Хоть в\n" +"реальной жизни это и лишено смысла, но это поможет нам понять, как работает шардирование --- а точнее, параметр ``sharding_key``." + +msgid "" +"Our ``sharding_key`` for the ``likes`` is ``video_id``. We also specified a " +"``sharding_key`` for the ``videos`` space. It means that likes will be " +"stored on the same storage as videos. This ensures data locality with regard" +" to storage and allows getting all the information you need in one network " +"trip to Storage." +msgstr "" +"Для спейса ``likes`` мы указали ``sharding_key`` --- ``video_id``. Такой\n" +"же ``sharding_key`` мы указали и для спейса ``videos``. Это означает,\n" +"что лайки будут храниться на том же storage, где и видео. Это обеспечивает локальность по данным при хранении и позволяет\n" +"за один сетевой поход в storage получить необходимую информацию." + +msgid "More details are described on the next step." +msgstr "Подробности описаны на следующем шаге." + +msgid "Looking at the data [1 minute]" +msgstr "Смотрим на данные [1 мин]" + +msgid "" +"Go to the \"Space-Explorer\" tab to see all the nodes in the cluster. As we " +"have only one storage and one router started so far, the data is stored on " +"only one node." +msgstr "" +"Переходим на вкладку \"Space-Explorer\" и видим все узлы в кластере. Так как" +" у нас пока поднят всего один storage и один router, данные хранятся только " +"на одном узле." + +msgid "" +"Let's go to the node ``s1-master``: click \"Connect\" and select the " +"necessary space." +msgstr "" +"Переходим в узел ``s1-master`` : нажимаем \"Connect\" и выбираем нужный нам " +"спейс." + +msgid "Check that everything is in place and move on." +msgstr "Смотрим, что все на месте, и переходим дальше." + +msgid "Space Explorer, host list" +msgstr "Space-Explorer, список хостов" + +msgid "Space Explorer, view likes" +msgstr "Space-Explorer, просмотр лайков" + +msgid "Space Explorer, viewing likes" +msgstr "Space-Explorer, просмотр лайков" + +msgid "" +"Please note that the Space-Explorer tool is only available in the Enterprise" +" version of the product and in the Try Tarantool cloud service. In the open-" +"source version, use the console to view data." +msgstr "" +"Обратите внимание: инструмент ``space-explorer`` доступен только в\n" +"Enterprise-версии продукта и в облачном сервисе Try Tarantool. В open-source-версии данные можно посмотреть через консоль." + +msgid "" +"Check our documentation to learn more about :doc:`data viewing " +"`. To learn how to connect to a " +"Tarantool instance, :ref:`read the basic Tarantool manual " +"`." +msgstr "" +"Подробности о просмотре данных читайте в нашей :doc:`документации " +"`. О том, как подключиться к " +"экземпляру Tarantool, читайте в :ref:`базовом руководстве по Tarantool " +"`." + +msgid "Scaling the cluster [1 minute]" +msgstr "Масштабируем кластер [1 мин]" + +msgid "" +"Let's create a second shard. Click on the \"Cluster\" tab, select " +"``s2-master``, and click \"Configure\". Select the roles as shown in the " +"picture:" +msgstr "" +"Создадим второй шард. Открываем вкладку \"Cluster\", выбираем\n" +"``s2-master`` и нажимаем \"Configure\". Выбираем роли так, как на картинке:" + +msgid "Cluster, new shard configuration screen" +msgstr "Cluster, экран конфигурации нового шарда" + +msgid "Click on the necessary roles and create a shard (replica set)." +msgstr "Щелкаем на нужные роли и создаем шард (набор реплик)." + +msgid "Checking how sharding works [1 minute]" +msgstr "Смотрим, как работает шардирование [1 мин]" + +msgid "" +"Now we have two shards---two logical nodes that share data among themselves." +" The router decides what piece of data goes to what shard. By default, the " +"router uses the hash function from the field ``sharding_key`` we've " +"specified in the DDL." +msgstr "" +"Теперь у нас есть два шарда --- два логических узла, которые будут\n" +"разделять между собой данные. Роутер сам решает, какие данные на какой шард положить. По умолчанию, он просто использует хеш-функцию от поля ``sharding_key`` , которое мы указали в DDL." + +msgid "" +"To enable a new shard, you need to set its weight to one. Go back to the " +"\"Cluster\" tab, open the ``s2-master`` settings, set the Replica set weight" +" to 1, and apply." +msgstr "" +"Чтобы задействовать новый шард, надо выставить для него вес 1. Заходим снова" +" на вкладку \"Cluster\", переходим в настройки ``s2-master``, указываем для " +"Replica set weight значение 1 и применяем." + +msgid "" +"Something has already happened. Let's go to Space-Explorer and check the " +"node ``s2-master``. It turns out that some of the data from the first shard " +"has already migrated here! The scaling is done automatically." +msgstr "" +"Кое-что уже произошло. Зайдем в space-explorer и перейдем на узел\n" +"``s2-master``. Оказывается, часть данных с первого шарда переехала сюда автоматически! Масштабирование происходит автоматически." + +msgid "" +"Now let's try adding more data to the cluster via the HTTP API. We can check" +" back later and make sure that the new data is also evenly distributed " +"across the two shards." +msgstr "" +"Теперь попробуем добавить еще данных в кластер через HTTP API. Можем проверить и убедиться, что новые данные также равномерно\n" +"распределяются на два шарда." + +msgid "Disconnecting a shard for a while [1 minute]" +msgstr "Один шард надо на время выключить [1 мин]" + +msgid "" +"In the ``s1-master`` settings, set Replica set weight to 0 and apply. Wait " +"for a few seconds, then go to Space-Explorer and look at the data in " +"``s2-master``. You will see that all the data has been migrated to the " +"remaining shard automatically." +msgstr "" +"Выставляем в настройках ``s1-master`` значение 0 для Replica set weight и " +"применяем. Ждем пару секунд, заходим в space-explorer и смотрим на данные в " +"``s2-master``: все данные автоматически мигрировали на оставшийся шард." + +msgid "Now we can safely disable the first shard for maintenance." +msgstr "" +"Теперь можно смело отключать первый шард, если вам понадобилось провести " +"служебные работы." + +msgid "See also" +msgstr "Читайте также" + +msgid "" +"README of the `DDL `__ module to create " +"your own data schema." +msgstr "" +"README модуля `DDL `__ для создания своей " +"схемы данных" + +msgid "" +"README of the `CRUD `__ module to learn " +"more about the API and create your own cluster queries." +msgstr "" +"README модуля `CRUD `__, чтобы узнать " +"больше про API и реализовать собственные запросы по кластеру" + +msgid "" +"To continue to the next steps of the tutorial, click the button in the " +"bottom right corner or select the section in the table of contents on the " +"left." +msgstr "" +"Переходите к следующим шагам руководства, нажав кнопку справа внизу или " +"выбрав нужный пункт оглавления слева." + +msgid "test" +msgstr "test" diff --git a/locale/ru/LC_MESSAGES/getting_started/writing_cluster_code.po b/locale/ru/LC_MESSAGES/getting_started/writing_cluster_code.po new file mode 100644 index 0000000000..eac6ad2fb0 --- /dev/null +++ b/locale/ru/LC_MESSAGES/getting_started/writing_cluster_code.po @@ -0,0 +1,32 @@ + +msgid "Writing code in a cluster application" +msgstr "Написание кода в кластерном приложении" + +msgid "" +"In the \"Getting Started\" tutorial, we wrote the application code directly " +"in the browser. We used the file ``config.yml`` to describe HTTP endpoint " +"handlers. This is a convenient and fast way to write code that allows you to" +" use Tarantool as a repository without any additional HTTP service. This " +"functionality is implemented through the ``cartridge-extensions`` module. It" +" is also included in the tutorial default application." +msgstr "" +"В статье \"Начало знакомства\" мы написали код приложения прямо в браузере и" +" с помощью файла ``config.yml`` описали обработчики для адресов HTTP-" +"ресурсов (endpoints). Этот удобный и быстрый способ написать код позволяет " +"использовать Tarantool как хранилище без дополнительного HTTP-сервиса. Эта " +"функциональность реализована за счет модуля ``cartridge-extensions``, " +"который также включен в обучающее приложение по умолчанию." + +msgid "" +"However, in Tarantool, you can implement absolutely any business logic on " +"top of a cluster. This :doc:`Cartridge getting started section " +"` covers the cluster roles " +"mechanism and writing a cluster application from scratch." +msgstr "" +"Однако в Tarantool можно реализовывать совершенно любую бизнес-логику поверх" +" кластера. В разделе :doc:`Создаем свое первое приложение на Tarantool " +"Cartridge ` мы узнаем о " +"механизме кластерных ролей и напишем кластерное приложение с нуля." + +msgid "test" +msgstr "test" From a777a7fef13711edec6248337c359fe89e4a6040 Mon Sep 17 00:00:00 2001 From: patiencedaur Date: Thu, 23 Dec 2021 09:01:27 +0300 Subject: [PATCH 4/4] Prepare files for merging --- doc/getting_started/change_schema_dynamically.rst | 1 - doc/getting_started/connecting_to_cluster.rst | 1 - doc/getting_started/getting_started_imcp.rst | 1 - doc/getting_started/writing_cluster_code.rst | 1 - 4 files changed, 4 deletions(-) diff --git a/doc/getting_started/change_schema_dynamically.rst b/doc/getting_started/change_schema_dynamically.rst index d9d4d927ab..9c3fe3b690 100644 --- a/doc/getting_started/change_schema_dynamically.rst +++ b/doc/getting_started/change_schema_dynamically.rst @@ -28,4 +28,3 @@ To remove snapshots: To understand how the Tarantool data schema works, read the :ref:`Data model` section. -test diff --git a/doc/getting_started/connecting_to_cluster.rst b/doc/getting_started/connecting_to_cluster.rst index 4bc46322a8..4f78b5f92c 100644 --- a/doc/getting_started/connecting_to_cluster.rst +++ b/doc/getting_started/connecting_to_cluster.rst @@ -67,4 +67,3 @@ To learn how to call stored procedures in your programming language, see the sec For connectors to other languages, check the README for the connector of your choice `on GitHub `_. -test diff --git a/doc/getting_started/getting_started_imcp.rst b/doc/getting_started/getting_started_imcp.rst index 3578cc7824..df9b583e6e 100644 --- a/doc/getting_started/getting_started_imcp.rst +++ b/doc/getting_started/getting_started_imcp.rst @@ -496,4 +496,3 @@ To continue to the next steps of the tutorial, click the button in the bottom right corner or select the section in the table of contents on the left. -test diff --git a/doc/getting_started/writing_cluster_code.rst b/doc/getting_started/writing_cluster_code.rst index c9f22b657c..ccfe24b79a 100644 --- a/doc/getting_started/writing_cluster_code.rst +++ b/doc/getting_started/writing_cluster_code.rst @@ -16,4 +16,3 @@ However, in Tarantool, you can implement absolutely any business logic on top of This :doc:`Cartridge getting started section ` covers the cluster roles mechanism and writing a cluster application from scratch. -test