Skip to content

Commit 7d991ef

Browse files
committed
Update russian translations of README.md
1 parent 0c4fe5f commit 7d991ef

File tree

4 files changed

+602
-22
lines changed

4 files changed

+602
-22
lines changed

README.ru.md

Lines changed: 50 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,37 @@
1010

1111
Эта библиотека дает вам возможность преобразовать любую строку, содержащую обозначение связей, в список связей и форматировать этот список обратно в строку после внесения изменений.
1212

13-
Нотация связей основана на двух концепциях: ссылка и связь. Каждая ссылка ссылается на другую связь. Если никакая ссылка не определяет конкретную связь, предполагается, что такая связь является связью-точкой. Нотация поддерживает связи с любым количеством ссылок на другие связи.
13+
Нотация связей основана на двух концепциях: ссылка и связь. Каждая ссылка ссылается на другую связь. Нотация поддерживает связи с любым количеством ссылок на другие связи.
1414

15-
Пространство имён: [Platform.Communication.Protocol.Lino](https://linksplatform.github.io/Communication.Protocol.Lino/api/Platform.Communication.Protocol.Lino.html)
15+
## Реализации для разных языков
1616

17-
NuGet пакет: [Platform.Communication.Protocol.Lino](https://www.nuget.org/packages/Platform.Communication.Protocol.Lino)
17+
Выберите предпочитаемый язык программирования для работы с Нотацией Связей:
18+
19+
- **[Реализация на C#](csharp/README.ru.md)** - Полнофункциональная .NET библиотека с NuGet пакетом
20+
- **[Реализация на JavaScript](js/README.ru.md)** - Современная ES6+ реализация использующая Bun и Peggy.js
21+
- **[Реализация на Rust](rust/README.ru.md)** - Высокопроизводительный парсер использующий библиотеку комбинаторов nom
22+
23+
## Быстрый старт
24+
25+
### C#
26+
```csharp
27+
var parser = new Platform.Protocols.Lino.Parser();
28+
var links = parser.Parse("папа (любитМаму: любит маму)");
29+
```
30+
31+
### JavaScript
32+
```javascript
33+
import { Parser } from '@linksplatform/protocols-lino';
34+
const parser = new Parser();
35+
await parser.initialize();
36+
const links = parser.parse("папа (любитМаму: любит маму)");
37+
```
38+
39+
### Rust
40+
```rust
41+
use lino::parse_lino;
42+
let links = parse_lino("папа (любитМаму: любит маму)").unwrap();
43+
```
1844

1945
## Примеры
2046
### Нотация связей
@@ -24,25 +50,27 @@ NuGet пакет: [Platform.Communication.Protocol.Lino](https://www.nuget.org/p
2450
дочь любитМаму
2551
все (любят маму)
2652
```
27-
### Получаем [IList](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.ilist-1)\<[Link](https://linksplatform.github.io/Communication.Protocol.Lino/api/Platform.Communication.Protocol.Lino.Link.html)\>
28-
```C#
29-
(new Platform.Communication.Protocol.Lino.Parser()).Parse(@string)
30-
```
31-
### Форматируем [IList](https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.ilist-1)\<[Link](https://linksplatform.github.io/Communication.Protocol.Lino/api/Platform.Communication.Protocol.Lino.Link.html)\> обратно в строку
32-
```C#
33-
using Platform.Communication.Protocol.Lino;
34-
```
35-
```C#
36-
links.Format()
37-
```
53+
## Что такое Нотация Связей?
54+
55+
Нотация Связей (Lino) - это простой, интуитивный формат для представления структурированных данных в виде связей между сущностями. Он разработан для того, чтобы быть:
56+
57+
- **Естественным**: Большинство текстов уже может быть распарсено как нотация связей
58+
- **Гибким**: Поддерживает любое количество ссылок в каждой связи
59+
- **Универсальным**: Может представлять дублеты, триплеты и N-кортежи
60+
- **Иерархическим**: Поддерживает вложенные структуры с отступами
61+
62+
Нотация использует две основные концепции:
63+
- **Ссылки**: Указывают на другие связи (как переменные или идентификаторы)
64+
- **Связи**: Соединяют ссылки вместе с опциональными идентификаторами
65+
66+
## Документация
3867

39-
## [Документация](https://linksplatform.github.io/Communication.Protocol.Lino)
40-
* Структура [Link](https://linksplatform.github.io/Communication.Protocol.Lino/api/Platform.Communication.Protocol.Lino.Link.html).
41-
* Метод [Parser](https://linksplatform.github.io/Communication.Protocol.Lino/api/Platform.Communication.Protocol.Lino.Parser.html).[Parse](https://linksplatform.github.io/Communication.Protocol.Lino/api/Platform.Communication.Protocol.Lino.Parser.html#Platform_Communication_Protocol_Lino_Parser_Parse_System_String_System_String_)
42-
* Метод [IListExtensions](https://linksplatform.github.io/Communication.Protocol.Lino/api/Platform.Communication.Protocol.Lino.IListExtensions.html).[Format](https://linksplatform.github.io/Communication.Protocol.Lino/api/Platform.Communication.Protocol.Lino.IListExtensions.html#Platform_Communication_Protocol_Lino_IListExtensions_Format_System_Collections_Generic_IList_Platform_Communication_Protocol_Lino_Link__)
68+
Для подробных руководств по реализации и справочников API смотрите документацию для конкретных языков:
4369

44-
[PDF файл](https://linksplatform.github.io/Communication.Protocol.Lino/Platform.Communication.Protocol.Lino.pdf) с кодом для электронных книг.
70+
- **[Документация C#](https://linksplatform.github.io/Protocols.Lino/csharp/api/Platform.Protocols.Lino.html)** - Полный справочник API
71+
- **[README C#](csharp/README.ru.md)** - Руководство по установке и использованию
72+
- **[README JavaScript](js/README.ru.md)** - Руководство для современной веб-разработки
73+
- **[README Rust](rust/README.ru.md)** - Руководство по высокопроизводительному парсингу
4574

46-
## Зависит напрямую от
47-
* [Pegasus](https://github.com/otac0n/Pegasus)
48-
* [Platform.Collections](https://github.com/linksplatform/Collections)
75+
Дополнительные ресурсы:
76+
- [PDF Документация](https://linksplatform.github.io/Protocols.Lino/csharp/Platform.Protocols.Lino.pdf) - Полный справочник для офлайн чтения

csharp/README.ru.md

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# Парсер протокола Lino для C#
2+
3+
Реализация парсера протокола Lino для C# с использованием генератора парсеров Pegasus и Platform.Collections.
4+
5+
## Установка
6+
7+
### Менеджер пакетов
8+
```
9+
Install-Package Platform.Protocols.Lino
10+
```
11+
12+
### .NET CLI
13+
```bash
14+
dotnet add package Platform.Protocols.Lino
15+
```
16+
17+
### PackageReference
18+
```xml
19+
<PackageReference Include="Platform.Protocols.Lino" Version="0.4.5" />
20+
```
21+
22+
## Сборка из исходного кода
23+
24+
Клонируйте репозиторий и соберите проект:
25+
26+
```bash
27+
git clone https://github.com/linksplatform/Protocols.Lino.git
28+
cd Protocols.Lino/csharp
29+
dotnet build Platform.Protocols.Lino.sln
30+
```
31+
32+
## Тестирование
33+
34+
Запуск тестов:
35+
36+
```bash
37+
dotnet test
38+
```
39+
40+
## Использование
41+
42+
### Базовый парсинг
43+
44+
```csharp
45+
using Platform.Protocols.Lino;
46+
47+
// Создаем парсер
48+
var parser = new Parser();
49+
50+
// Парсим строку в формате Lino
51+
string input = @"папа (любитМаму: любит маму)
52+
сын любитМаму
53+
дочь любитМаму
54+
все (любят маму)";
55+
56+
var links = parser.Parse(input);
57+
58+
// Обращение к распарсенным связям
59+
foreach (var link in links)
60+
{
61+
Console.WriteLine(link.ToString());
62+
}
63+
```
64+
65+
### Преобразование обратно в строку
66+
67+
```csharp
68+
using Platform.Protocols.Lino;
69+
70+
// Форматирование связей обратно в строку
71+
string formatted = links.Format();
72+
Console.WriteLine(formatted);
73+
```
74+
75+
### Работа со связями
76+
77+
```csharp
78+
// Создание связи программно
79+
var link = new Link<string>("идентификатор", new[] { "значение1", "значение2" });
80+
81+
// Доступ к свойствам связи
82+
Console.WriteLine($"ID: {link.Id}");
83+
foreach (var value in link.Values)
84+
{
85+
Console.WriteLine($"Значение: {value}");
86+
}
87+
```
88+
89+
### Расширенное использование с универсальными типами
90+
91+
```csharp
92+
// Использование числовых адресов связей
93+
var parser = new Parser<ulong>();
94+
var numericLinks = parser.Parse("(1: 2 3)");
95+
96+
// Работа с пользовательскими типами адресов
97+
var customParser = new Parser<Guid>();
98+
```
99+
100+
## Примеры синтаксиса
101+
102+
### Дублеты (2-кортежи)
103+
```
104+
папа (любитМаму: любит маму)
105+
сын любитМаму
106+
дочь любитМаму
107+
все (любят маму)
108+
```
109+
110+
### Триплеты (3-кортежи)
111+
```
112+
папа имеет машину
113+
мама имеет дом
114+
(папа и мама) счастливы
115+
```
116+
117+
### N-кортежи со ссылками
118+
```
119+
(нотацияСвязей: нотация связей)
120+
(Это тоже нотацияСвязей)
121+
(нотацияСвязей поддерживает (неограниченное количество (ссылок) в каждой связи))
122+
```
123+
124+
## Справочник API
125+
126+
### Классы
127+
128+
- **Parser\<TLinkAddress\>**: Основной класс парсера для преобразования строк в связи
129+
- **Link\<TLinkAddress\>**: Представляет одну связь с ID и значениями
130+
- **LinksGroup\<TLinkAddress\>**: Контейнер для группировки связанных связей
131+
132+
### Методы расширения
133+
134+
- **IListExtensions.Format()**: Преобразует список связей обратно в строковый формат
135+
- **ILinksGroupListExtensions**: Дополнительные операции для групп связей
136+
137+
## Зависимости
138+
139+
- .NET 8.0
140+
- Microsoft.CSharp (4.7.0)
141+
- Pegasus (4.1.0)
142+
- Platform.Collections (0.3.2)
143+
144+
## Документация
145+
146+
Полная документация API: [Platform.Protocols.Lino Documentation](https://linksplatform.github.io/Protocols.Lino/csharp/api/Platform.Protocols.Lino.html)

0 commit comments

Comments
 (0)