Skip to content

Commit d81e99f

Browse files
authored
docs: Russian language support (#5)
* docs: russian language support * docs: alert headers have been rolled back to English
1 parent 42a7169 commit d81e99f

File tree

8 files changed

+155
-1
lines changed

8 files changed

+155
-1
lines changed

docs/ru-ru/articles/avalonia/index.md

Whitespace-only changes.
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# Вступление
2+
3+
> [!CAUTION]
4+
> До того, как проект будет иметь стабильную версию, он может содержать нестабильные приложения и функции, включая критические изменения. Пожалуйста, используйте его с осторожностью.
5+
6+
## Настройка окружения
7+
8+
> [!NOTE]
9+
> Последующие действия были протестированы только на Windows. Это не было протестировано на Linux/macOS.
10+
11+
* [Zig](https://ziglang.org/) предоставляет `linker/sysroot` поддержку для [OpenHarmony-NET.PublishAotCross](https://github.com/OpenHarmony-NET/PublishAotCross?tab=readme-ov-file#openharmony-netpublishaotcross), чтобы разрешить кросс-компиляцию для `linux-x64/linux-arm64/linux-musl-x64/linux-musl-arm64` в Windows.
12+
13+
```shell
14+
# Установка Zig в Windows с помощью winget
15+
winget install zig.zig
16+
```
17+
18+
> [!WARNING]
19+
> Не рекомендуется добавлять `clang` к переменным среды, так как это может привести к конфликту с процессом сборки.
20+
21+
* [LLVM](https://releases.llvm.org/download.html) необходим для процесса компиляции, в котором используется `llvm-objcopy.exe`. Убедитесь, что он существует в переменных вашего окружения
22+
23+
* .NET 9.0 SDK или выше
24+
25+
* Последняя версия DevEco Studio
26+
27+
* _Необязательно_ `Visual Studio 2022`
28+
29+
* _Необязательно_ `JetBrains Rider`
30+
31+
## Сборка и запуск
32+
33+
* Склонируйте [OpenHarmony.Avalonia](https://github.com/OpenHarmony-NET/OpenHarmony.Avalonia). Убедитесь, что для клонирования используется параметр `--recursive`, чтобы включить подмодули.
34+
35+
```shell
36+
git clone https://github.com/OpenHarmony-NET/OpenHarmony.Avalonia.git --recursive # Включение подмодулей
37+
```
38+
39+
* Откройте каталог проекта `OpenHarmony.Avalonia`
40+
41+
```shell
42+
|-- Directory.Build.props
43+
|-- OHOS_Project
44+
|-- OpenHarmony.Avalonia.sln
45+
|-- README.md
46+
|-- Src
47+
|-- ThirdParty
48+
49+
3 directories, 3 files
50+
```
51+
52+
Затем выполните следующую команду или используйте `Visual Studio 2022`, чтобы открыть `OpenHarmony.Решение Avalonia.sln`, щелкните правой кнопкой мыши на проекте `Entry` и опубликуйте.
53+
54+
> [!NOTE]
55+
> `arm64-v8a` подходит для физических устройств, в то время как `x86_64` предназначен для эмуляторов. Пожалуйста, выбирайте в соответствии с типом вашего устройства.
56+
57+
### [Физическое устройство](#tab/physical)
58+
59+
```shell
60+
dotnet publish ./Src/Entry/Entry.csproj -c Release -r linux-musl-arm64 -p:PublishAot=true -o OHOS_Project/entry/libs/arm64-v8a
61+
```
62+
63+
Или выберите `PublishArm64.pubxml` на странице публикации, затем нажмите кнопку опубликовать.
64+
65+
### [Эмулятор](#tab/virtual)
66+
67+
```shell
68+
dotnet publish ./Src/Entry/Entry.csproj -c Release -r linux-musl-x64 -p:PublishAot=true -o OHOS_Project/entry/libs/x86_64
69+
```
70+
71+
Или выберите `PublishAmd64.pubxml` на странице публикации, затем нажмите кнопку опубликовать.
72+
73+
---
74+
75+
* Откройте DevEco Studio, откройте каталог `OHOS_Project`, затем нажмите кнопку запустить. DevEco Studio автоматически установит и запустит приложение на вашем физическом устройстве/эмуляторе.
76+
77+
> [!NOTE]
78+
> Запуск на физическом устройстве может потребовать подписания и других процедур, соответствующих обычной разработке программного обеспечения HarmonyOS.
79+
80+
## Запуск вашего проекта
81+
82+
* Добавьте свой проект в зависимости `Entry` проекта (т.е `Entry` проект должен ссылаться на ваш проект)
83+
84+
[И замените это пространство имен пространством имен вашего проекта](https://github.com/OpenHarmony-NET/OpenHarmony.Avalonia/blob/2f0af9d19832c48a69e972eb263caf4a68f381c6/Src/Entry/XComponentEntry.cs#L5)
85+
86+
```diff
87+
using System.Runtime.CompilerServices;
88+
using System.Runtime.InteropServices;
89+
using Avalonia.OpenHarmony;
90+
using OpenHarmony.NDK.Bindings.Native;
91+
- using AOOH_Gallery;
92+
+ using YourProjectNamespace;
93+
94+
namespace Entry;
95+
```
96+
97+
[Также измените принадлежность класса `App` к проекту](https://github.com/OpenHarmony-NET/OpenHarmony.Avalonia/blob/2f0af9d19832c48a69e972eb263caf4a68f381c6/Src/Entry/XComponentEntry.cs#L21)
98+
99+
```diff
100+
try
101+
{
102+
Ace.OH_NativeXComponent_RegisterOnFrameCallback(component, &OnSurfaceRendered);
103+
if (XComponents.TryGetValue((nint)component, out var xComponent))
104+
return;
105+
+ xComponent = new AvaloniaXComponent<App>((nint)component, (nint)window);
106+
XComponents.Add((nint)component, xComponent);
107+
xComponent.OnSurfaceCreated();
108+
}
109+
```

docs/ru-ru/articles/blazor-hybrid/index.md

Whitespace-only changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Вступление

docs/ru-ru/articles/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Начало работы
2+
3+
В этой статье рассказывается о том, как разрабатывать собственные библиотеки для системы Harmony с использованием .NET и NDK. Если вы хотите разрабатывать полноценные приложения Harmony OS с использованием .NET, пожалуйста, обратитесь к разделам [Avalonia](avalonia/introduction.md) **и** [Blazor Hybrid](blazor-hybrid/introduction.md).

docs/ru-ru/index.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
![OpenHarmony.NET](../_images/Header.png "Привет OpenHarmony.NET")
2+
3+
# Вступление
4+
5+
## 🤔Что такое OpenHarmony.NET?
6+
7+
OpenHarmony.NET это решение, разработанное специально для **OpenHarmony** (включая **HarmonyOS Next**), предназначен для поддержки **.NET** приложений в операционной системе Harmony. С OpenHarmony.NET разработчики смогу использовать знакомые **Avalonia** или **Blazor Hybrid** для разработки Harmony приложений, и даже использовать **C#** вместо **C++** для разработки собственных библиотек. Это предоставляет .NET разработчикам новую платформу, позволяющую легко внедрять стек .NET в экосистему Harmony.
8+
9+
## 😲Среда выполнения
10+
11+
### · Статус адаптации
12+
OpenHarmony.NET был успешно адаптирован для **.NET 9**, предоставляя разработчикам стабильную и эффективную среду выполнения.
13+
14+
### · Ограничения среды выполнения
15+
1. **Только Native AOT**:
16+
Из-за ограничений системы Harmony на ассемблерный код, генерируемый во время выполнения (посмотрите [Harmony System Change Notes](https://developer.huawei.com/consumer/cn/doc/harmonyos-releases-V5/changelogs-for-all-apps-b031-V5#%E5%8C%BF%E5%90%8D%E5%86%85%E5%AD%98%E6%89%A7%E8%A1%8C%E6%9D%83%E9%99%90%E7%AE%A1%E6%8E%A7%E7%AD%96%E7%95%A5%E5%8F%98%E6%9B%B4%E8%AF%B4%E6%98%8E)), JIT (Just-In-Time) не может быть использован. Поэтому OpenHarmony.NET использует **NativeAOT (Native Ahead-Of-Time)** компиляцию. Данный метод генерирует машинный код непосредственно во время компиляции, обеспечивая эффективное выполнение приложения в системе Harmony.
17+
18+
2. **Невозможно использовать `Marshal.GetDelegateForFunctionPointer` и связанные с ним функции**:
19+
По той же причине, что и выше, рекомендуется прямое использование указателей на функции.
20+
21+
## 🥰Framework Adaptation
22+
23+
### Поддерживаемые фреймворки разработки
24+
В настоящий момент OpenHarmony.NET успешно работает со следующими фреймворками:
25+
1. **Avalonia**: это кроссплатформенный UI фреймворк, поддерживающий разработку десктоп приложений на C# и XAML. Более подробно можно узнать тут [Докуметация Avalonia](articles/avalonia/introduction.md).
26+
2. **Blazor Hybrid**: гибридный фреймворк разработки, базирующиеся на Blazor. Позволяет создавать кроссплатформенные приложения с использованием C# и Razor. Более подробно можно узнать тут [Документация Blazor Hybrid](articles/blazor-hybrid/introduction.md).
27+
28+
### Другие адаптированные фремворки разработки
29+
Мы приглашаем другие .NET фреймворки присоединиться к OpenHarmony.NET. Если вы заинтересованы в адаптации других фреймворков, мы готовы поделиться ценным опытом, накопленным в ходе адаптации Avalonia и Blazor Hybrid, чтобы помочь вам быстро приступить к работе.

docs/ru-ru/toc.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
- name: Вступление
2+
href: index.md
3+
- name: Начало работы
4+
href: articles/index.md
5+
6+
- name: Фреймворки разработки
7+
- name: Avalonia
8+
href: articles/avalonia/introduction.md
9+
- name: Blazor Hybrid
10+
href: articles/blazor-hybrid/introduction.md

templates/material/partials/footer.tmpl.partial

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
This page also provides in following languages
88
<a href="#" id="zh-cn-link" class="me-2">简体中文</a>
99
<a href="#" id="en-us-link" class="me-2">English</a>
10+
<a href="#" id="ru-ru-link" class="me-2">Русский</a>
1011
</div>
1112
{{/_appFooter}}
1213
</div>
@@ -20,7 +21,8 @@
2021
// Define supported languages with their code and element ID
2122
const languages = {
2223
"zh-cn": { id: "zh-cn-link", name: "简体中文" },
23-
"en-us": { id: "en-us-link", name: "English" }
24+
"en-us": { id: "en-us-link", name: "English" },
25+
"ru-ru": { id: "ru-ru-link", name: "Русский" }
2426
};
2527

2628
function updateLanguageLinks() {

0 commit comments

Comments
 (0)