Merge pull request #544 from stillst/feat-ru

feat(docs): add russian lang
This commit is contained in:
Laforge Thomas
2024-01-28 10:55:24 +01:00
committed by GitHub
10 changed files with 452 additions and 0 deletions

View File

@@ -18,6 +18,10 @@ export const locales = {
label: 'Português',
lang: 'pt',
},
ru: {
label: 'Русский',
lang: 'ru',
},
};
// https://astro.build/config
@@ -44,6 +48,7 @@ export default defineConfig({
es: 'Guías',
fr: 'Guides',
pt: 'Guias',
ru: 'Руководство',
},
},
{
@@ -53,6 +58,7 @@ export default defineConfig({
es: 'Desafíos',
fr: 'Challenges',
pt: 'Desafios',
ru: 'Задачи',
},
},
],

View File

@@ -0,0 +1,48 @@
---
title: Изучайте чужие решения
description: Руководство по просмотру чужого ответа.
sidebar:
order: 3
---
Все ответы на испытания Angular представлены в виде Pull Request (PR). Чтобы их просмотреть и изучить, нужно перейти на страницу **Files Changes** на GitHub. Однако, если вы не знакомы с интерфейсом, процесс может быть не очевидным. Иногда посмотреть на решение в вашей любимой IDE может быть удобнее.
Это руководство поможет вам с этим.
## Проверьте чужой PR локально
### Синхронизируйте свой репозиторий
В начале вам нужно синхронизировать вашу копию репозитория, чтобы убедиться, что она находится в актуальном состоянии.
Это можно сделать, нажав на кнопку **Sync fork** на главной странице репозитория.
![Sync project header](../../../../assets/fork-sync.png)
На изображении выше видно, что моя ветка отстает от основной ветки на 8 коммитов, и мне нужно синхронизировать ее, чтобы она была в актуальном состоянии.
![Sync project update modal](../../../../assets/sync-fork-update.png)
### Перейдите к PR
Перейдите к PR, который вы хотите изучить локально, и узнайте его ID. Вы найдете его в заголовке PR (как показано ниже).
![PR header](../../../../assets/PR-header.png)
Далее откройте терминал в каталоге проекта и выполните следующую команду:
```bash
gh pr checkout <ID>
```
Если вы не помните команду, нажмите на кнопку "Code" в правой части заголовка, и вы сможете легко скопировать/вставить команду.
![PR code modal](../../../../assets/PR-code-btn-modal.png)
:::note[Примечание]
Если команда не сработала, Github CLI подскажет, что делать.
:::
🔥Теперь вы можете изучить решение локально и запустить его для тестирования.🔥
<!-- gh repo set-default -->

View File

@@ -0,0 +1,20 @@
---
title: Вносите свой вклад
description: Описание как помочь проекту
sidebar:
order: 4
---
Вы можете помочь проекту многими способами:
🔥 Создавайте новые испытания, следуя инструкциям [тут](/guides/create-challenge).
🔥 Проходите испытания и отправляйте свои решения на ревью (руководство [тут](/guides/resolve-challenge)).
🔥 Проводите ревью чужих решений, оставляя конструктивные и вежливые комментарии.
🔥 Исправляйте опечатки и ошибки в документации.
🔥 Оставляйте issues, чтобы предложить идеи новых испытаний или сообщить об ошибках.
🔥 Поддерживайте проект [тут](https://github.com/sponsors/tomalaforge).

View File

@@ -0,0 +1,54 @@
---
title: Создайте свое испытание
description: Руководство по созданию испытания
sidebar:
order: 5
---
У вас есть идея, которой вы хотите поделиться, интересная ошибка, с которой вы боретесь в одном из своих проектов, или что-то необычное в Angular, что вы обнаружили. Всё это - хорошая отправная точка, чтобы создать испытание и поделиться её решением с другими.
Но как начать создавать испытания?
## Шаблон создания испытания
Чтобы упростить этот процесс, я создал генератор Nx, который настроит все за вас и поможет вам быстрее начать. Проще всего его запустить в консоли Nx: перейдите в раздел <b>Nx Console > generate > @angular-challenges/cli - challenge</b>
### Параметры
#### обязательные параметры
- <b>title</b>: Название, которое вы хотите дать испытанию.
:::note[Примечание]
Название должно быть не больше 25 символов.
:::
- <b>challengeDifficulty</b>: Сложность испытания. Есть три уровня сложности : 🟢 простой / 🟠 средний / 🔴 трудный
- <b>name</b>: Имя NX приложения.
:::note[Примечание]
Имя должно быть написано **kebab-case**
:::
- <b>docRepository</b>: Категория испытания: Nx, Angular, Angular Performance, Rxjs, NgRx, Typescript.
#### необязательные параметры
- <b>directory</b>: Если вы не хотите, чтобы приложение находилось в стандартной папке внутри `apps`.
- <b>addTest</b>: Если хотите добавить конфигурацию теста.
### Что будет создано
- Генератор создаст все файлы, необходимые для нового рабочего приложения. Все эти файлы будут созданы внутри `apps/${directory}/${name}`
- Файл Markdown с минимальными настройками будет создан внутри `docs/src/content/docs/challenges/${docRepository}`
## Создание испытания
Все что осталось - создать испытание. 🚀
:::danger[Опасно]
Не забудьте обновить документацию, чтобы описать свою задачу и дать инструкции.
:::
Дальше действовать будете вы!!! 💪
## Отправка решения
Не забудьте представить своё решение задачи в течение недели.

View File

@@ -0,0 +1,17 @@
---
title: Часто задаваемые вопросы
description: Ответы на вопросы
sidebar:
order: 7
---
<details>
<summary>Почему мое приложение не запускается, или почему я вижу ошибки в терминале при запуске `nx serve`?</summary>
Чаще всего эта проблема возникает из-за того, что node_modules устарели, и вам нужно обновить их, выполнив команду `npm ci`.
Если установка завершилась неудачно, вы можете попробовать решить эту проблему, удалив папку node_modules с помощью команды `rm -rf node_modules` или `npx npkill` а затем снова выполнить `npm ci`.
Если проблема сохранится, пожалуйста, сообщите о ней [тут](https://github.com/tomalaforge/angular-challenges/issues/new).
</details>

View File

@@ -0,0 +1,58 @@
---
title: Первые шаги
description: Руководство о том, как начать работу с испытаниями Angular.
sidebar:
order: 1
---
Чтобы начать работу с <b>испытаниями Angular</b>, выполните следующие шаги:
## Создайте аккаунт на Github
Если вы захотите отправить свое решение для испытания, вам потребуется аккаунт на GitHub. Кроме того, иметь учетную запись на GitHub всегда полезно, тем более это бесплатно.
## Скопируйте github проект
Перейдите в [Angular Challenges Repository](https://github.com/tomalaforge/angular-challenges) и нажмите на кнопку <span class="github-neutral-btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2">
<path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path></svg>Fork</span> в вверху страницы. Это создаст копию репозитория на вашей GitHub странице.
## Клонируйте репозиторий на свой компьютер
Выберите папку на своем компьютере и клонируйте репозиторий.
Откройте терминал, перейдите в выбранный каталог и наберите команду:
```bash
git clone https://github.com/[YOUR_GITHUB_NAME]/angular-challenges.git
```
:::note
Вы можете найти URL адрес клонированного репозитория, нажав на кнопку <span class="github-success-btn"><> Code</span> в <b>вашем собственном</b> экземпляре репозитория Angular Challenges.
![Header of github workpspace](../../../../assets/header-github.png)
:::
## Откройте проект в вашей любимой среде разработки
Откройте проект в любой IDE на ваш выбор.
## Установите все зависимости
```bash
npm ci
```
## Выберите задачу
Ваш проект сейчас поднят и запущен. Осталось только выбрать испытание 🚀
Каждое испытание состоит из:
- <b>Имя</b>: описывает о чем испытание.
- <b>Номер</b>: порядковый номер создания. Этот номер не несет какого-то смысла, но служит для ссылки в секции Github Pull Request.
- <b>Бейдж</b>: показывает уровень сложности. Полностью субъективно 😅
- 🟢 простое
- 🟠 среднее
- 🔴 сложное

View File

@@ -0,0 +1,55 @@
---
title: Сделайте rebase вашей ветки
description: Руководство по rebase ветки на последние изменения
sidebar:
order: 6
---
Иногда в проект могут вноситься изменения. Я стараюсь вносить изменения, которые ничего не сломают, но иногда этого не избежать.
В большинстве случаев вам не придется делать rebase вашего решения, но вот руководство, которое поможет вам понять, как это сделать.
:::note[Примечание]
Это руководство применимо к любому проекту с открытым исходным кодом.
:::
## Шаги rebase
### Синхронизируйте ваш репозиторий
Во-первых, вам нужно синхронизировать вашу копию, чтобы убедиться, что она содержит последние изменения.
Вы можете сделать это, нажав на кнопку Sync fork на главной странице вашего репозитория.
![Sync project header](../../../../assets/fork-sync.png)
На изображении выше видно, что моя ветка отстает от основной ветки на 8 коммитов, и мне нужно синхронизировать ее, чтобы она была в актуальном состоянии.
![Sync project update modal](../../../../assets/sync-fork-update.png)
### Откройте терминал
Откройте любой терминал, будь то терминал в любимой IDE или отдельное приложение.
### Гит
Выполните следующие команды, чтобы сделать rebase локальной ветки:
- git checkout main
- git pull
- git checkout [your branch]
- git rebase main
- Разрешите конфликты
На этом этапе rebase может остановиться, потому что в вашей локальной ветке есть конфликтующие файлы с основной веткой. Исправьте это. После того как закончите:
- git add .
- git rebase --continue
Если в вашей ветке нет конфликтов, будет показано сообщение об успехе.
### Отправьте свою работу в удаленный репозиторий
Наконец, отправьте свою работу на GitHub:
- git push -f

View File

@@ -0,0 +1,93 @@
---
title: Пройдите испытание
description: Инструкция по прохождению испытания
sidebar:
order: 2
---
В этом руководстве вы узнаете, как пройти испытание и отправить свое решение.
## Вступление
Этот репозиторий работает под управлением [Nx](https://nx.dev/getting-started/intro). <b>Nx</b> - это монорепозиторий, который позволяет вам хранить несколько приложений в одном рабочем пространстве.
Каждое испытание - это отдельное приложение. Если вы откроете каталог `apps`, то обнаружите несколько директорий, каждая из которых относится к определенной задаче. Каждый каталог представляет собой полноценное приложение `Nx`. Чтобы запустить и начать работу с одним из них, откройте терминал и выполните команду:
```bash
npx nx serve <ИМЯ_ПРИЛОЖЕНИЯ>
```
:::note[Примечание]
Если вы не уверены в названии испытания МЯ_ПРИЛОЖЕНИЯ`, откройте файл README.md. Там написана команда `serve` со ссылкой на документацию по испытанию.
:::
:::note[Примечание]
Если `nx` установлен глобально на вашем компьютере, вы можете опустить команду `npx`.
Чтобы установить `nx` глобально, выполните
```bash
npm i -g nx
```
:::
## Создайте Git Ветку
Прежде чем приступить к реализации вашего решения испытания, создайте ветку git для фиксации своей работы.
```bash
git checkout -b <BRANCH_NAME>
```
## Пройдите испытание
Изучите инструкции, чтобы пройти испытание.
## Сделайте коммит и отправьте код в репозиторий
Последний шаг - это создание коммита, который следовал бы правилам из [Соглашения о коммитах](https://www.conventionalcommits.org/ru/v1.0.0/).
Наконец, отправьте свою работу в удаленный репозиторий с помощью следующей команды:
```bash
git push --set-upstream origin <BRANCH_NAME>
```
:::tip[Не запоминай команду]
Вам не нужно запоминать команду в точности. Нужно просто запомнить `git push`, и если вы впервые загружаете эту ветку в репозиторий, `git` подскажет вам полную команду.
:::
## Отправьте свое решение в основной репозиторий
Теперь все ваше решение находится в вашем экземпляре репозитория Angular Challenges.
Следующий шаг - перейдите на главную страницу [Angular Challenges](https://github.com/tomalaforge/angular-challenges) и создайте новый запрос на слитие (Pull Request).
Github должен показать уведомление, чтобы помочь вам создать pull request.
Если этого не случилось, то вы либо неправильно выполнили один из предыдущих шагов, либо вам нужно перейти на вкладку Pull Request и нажать кнопку <span class="github-success-btn">New pull request.</span>
После того как вы выберете две ветки для сравнения, вы попадете на следующую страницу:
![New pull request screen](../../../../assets/new-pull-request.png)
В заголовке напишите Answer:, затем номер вашего испытания. После этого можете добавить все, что пожелаете.
:::danger[Опасно]
Порядковый номер очень важен. Он позволит другим узнать, какое испытание вы пытаетесь решить.
:::
В разделе описания вы можете добавить вопросы, проблемы, с которыми столкнулись, или все остальное, чем захотите поделиться. Если нечего написать, можете оставить этот раздел пустым.
Теперь вы можете нажать на кнопку <span class="github-success-btn">Create pull request</span>.
Я прочитаю и проведу ревью вашего решения, <b>когда у меня будет свободное время.</b>
<p class="important-block">Не переживайте если я не прокомментировал ваше решение сразу же. Я делаю это <b>бесплатно</b> в свое <b>свободное время</b>. Если вы хотите меня поддержать, вы можете это сделать с помощью <a href="https://github.com/sponsors/tomalaforge">поддержать на github</a>. Это покажет, что моя работа полезна для вас или вашей команды.</p>
:::note[Примечание]
Все желающие могут оставлять комментарии и читать другие PR.
:::
:::tip[OSS чемпион]
🔥 После того как вы пройдете это руководство, вы сможете внести свой вклад в любой другой публичный репозиторий на Github. Да, это настолько просто.🔥
:::

View File

@@ -0,0 +1,79 @@
---
title: Добро пожаловать в испытания Angular
description: Начните с прохождения этих испытаний и прокачайтесь как Angular разработчик.
template: splash
noCommentSection: true
hero:
tagline: Начните сейчас и станьте экспертом Angular!
image:
file: ../../../assets/angular-challenge.webp
actions:
- text: Начать
link: /ru/guides/getting-started/
icon: right-arrow
variant: primary
- text: Перейти к последней задаче
link: /ru/challenges/angular/39-injection-token/
icon: rocket
- text: Добавить звезду
link: https://github.com/tomalaforge/angular-challenges
icon: github
variant: secondary
---
import { Card, CardGrid } from '@astrojs/starlight/components';
import MyIcon from '../../../components/MyIcon.astro';
<CardGrid>
<Card title="43 Испытания">
Этот репозиторий содержит 43 испытания, связанных с <b>Angular</b>, <b>Nx</b>, <b>RxJS</b>, <b>Ngrx</b> and <b>Typescript</b>.
Испытания основаны на реальных задачах или инструментах для того, чтобы прокачать вас.
</Card>
<Card title="Станьте мейнтейнером открытого программного обеспечения (OSS)">
Одна из целей этого репозитория <b>снизить барьер</b> для разработки
открытого программного обеспечения (OSS). Решив эти задачи, вы поймете,
как начать вносить свой вклад в любой другой проект с открытым исходным кодом.
</Card>
<Card title="Учитесь вместе с другими">
Изучение и использование нового фреймворка всегда сопряжено с трудностями.
В этом наборе испытаний содержатся реальные примеры задач, чтобы закрепить на практике то, чему вы научились.
Любой может оставить комментарий или предложить помощь.
<b>
Учиться одному - здорово, но обучение вместе с другими поможет вам добиться большего.
</b>
</Card>
<Card title="Вносите свой вклад">
У вас есть идея или интересный баг? Не стесняйтесь;{' '}
<b>Создавайте свои собственные испытания</b> не теряя времени.
</Card>
<Card title="Подготовьтесь к собеседованию">
Прохождение этих испытаний подготовит вас к техническим задачам, с которыми вы
можете столкнуться во время собеседований на позицию фронтенд-разработчика.
</Card>
<Card title="Поддержка">
Это бесплатный проект, и он будет оставаться таковым как можно дольше.
Однако вся работа ведется в мое свободное время, включая создание новых испытаний и ревью их решений(PRs).
<b>Спонсорство может поддержать меня и способствовать развитию проекта</b>.
</Card>
</CardGrid>
---
<div class="article-footer">
<a href="https://github.com/sponsors/tomalaforge" alt="Sponsor link">
<MyIcon name="fillHeart" size="1.2rem" color="white" />
Поддержать проект
</a>
</div>
<div class="main-page-footer">
Создано{' '}
<a href="https://github.com/tomalaforge?tab=repositories">Thomas Laforge</a> -
Работает на 🌟 <a href="https://starlight.astro.build/">Starlight</a>
</div>

View File

@@ -0,0 +1,22 @@
{
"page.title.challenge": "Испытание",
"author.createdBy": "Создано",
"buttons.star": "Дать звезду",
"buttons.sponsor": "Спонсор",
"404.text": "Страница не найдена. Проверьте URL-адрес или воспользуйтесь строкой поиска.",
"challenge.footer": {
"note": "Примечание",
"running": "Запустите проект, выполнив команду:",
"start": "Название вашего PR должно начинаться со слов",
"reminder": "Не забудьте",
"communityAnswers": "Решения сообщества",
"authorAnswer": "Решение автора",
"blogPost": "Статья",
"gettingStarted": {
"title": "Чтобы пройти это испытание, прочитайте:",
"link": "Первые шаги"
}
}
}