Farsi Docs updated (#1154)

* Create Build_Linux_fa.md

The Persian translation of the file Build_Linux.md has been added.

* Update README_fa.md

* change path of file

* Update README_fa.md

* Farsi Docs updated

* HookJS doc fixed
This commit is contained in:
AA 2024-01-09 19:18:52 +03:30 committed by GitHub
parent 9d8b12ff66
commit 7655f0e16a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 205 additions and 2 deletions

32
docs/Build_Core_fa.md Normal file
View File

@ -0,0 +1,32 @@
## ساخت nekoray_core و nekobox_core
### ساختار دایرکتوری
```
| nekoray
| go/cmd/*
| Xray-core
| sing-box-extra
| sing-box
| ......
```
### ساخت معمولی
1. `bash libs/get_source.sh `(دریافت خودکار ساختار دایرکتوری، خودکار checkout commit)
2. `GOOS=windows GOARCH=amd64 bash libs/build_go.sh`
برای مشاهده GOOS و GOARCH های پشتیبانی شده به `libs/build_go.sh` مراجعه کنید.
در ساخت غیررسمی، نیازی به کامپایل `updater` و `launcher` نیست.
### تگ‌های sing-box
برای مشاهده تگ‌های استفاده شده به `libs/build_go.sh` مراجعه کنید.

View File

@ -71,4 +71,4 @@ ninja
پس از کامپایل، فایل `nekoray` به دست می‌آید. پس از کامپایل، فایل `nekoray` به دست می‌آید.
### کامپایل بخش Go ### کامپایل بخش Go
لطفاً به [Build_Core.md](./Build_Core.md) مراجعه کنید. لطفاً به [Build_Core_fa.md](./Build_Core_fa.md) مراجعه کنید.

65
docs/Build_Windows_fa.md Normal file
View File

@ -0,0 +1,65 @@
کامپایل Nekoray در ویندوز
### git clone
```
git clone https://github.com/MatsuriDayo/nekoray.git --recursive
```
### نصب Visual Studio
با نصب از وب سایت رسمی مایکروسافت، می توانید از نسخه های 2019 و 2022 استفاده کنید و محیط توسعه ++Win32 C را نصب کنید.
پس از نصب، می‌توانید `x64 Native Tools Command Prompt` را در منوی «شروع» پیدا کنید.
دستورات زیر این مقاله همه در این cmd اجرا می شوند. `cmake` `ninja` و ابزارهای دیگر را می توان با VS استفاده کرد.
### دانلود Qt SDK
نسخه ای که در حال حاضر توسط Windows Release استفاده می شود Qt 6.5.x است.
پس از دانلود و خارج کردن از حالت ظش، پوشه bin را به environment variable اضافه کنید.
#### بسته Qt مورد استفاده برای کامپایل نسخه (MSVC2019 x86_64) را دانلود کنید
https://github.com/MatsuriDayo/nekoray_qt_runtime/releases/download/20220503/Qt6.5.0-Windows-x86_64-VS2022-17.5.5-20230507.7z
#### Official signed version of Qt 5.15.2 (optional, known memory leak bugs)
پکیج های `qtbase` `qtsvg` `qttools` را از اینجا دانلود کنید و آن را در همان دایرکتوری استخراج کنید.
https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5152/qt.qt5.5152.win64_msvc2019_64/
### کامپایل جزئی ++c
#### وابستگی های مورد نیاز ++C/C را کامپایل و نصب کنید
(You may have to hang the ladder for this step)
```shell
bash ./libs/build_deps_all.sh
```
در حال حاضر فقط اسکریپت های bash وجود دارد، بدون پردازش دسته ای یا پاورشل، اگر ویندوز همراه bash نیست، توصیه می شود خودتان آن را نصب کنید.
جزئیاتی مانند پارامترهای CMake مشابه لینوکس است. اگر سوالی دارید، لطفاً به داکیومنت [Build_Linux_fa.md](./Build_Linux_fa.md) مراجعه کنید.
#### کامپایل کد اصلی
لطفاً دستورات را با موقعیت QT Sdk خود جایگزین کنید.
```shell
mkdir build
cd build
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=D:/path/to/qt/5.15.2/msvc2019_64 ..
ninja
```
بعد از اتمام کامپایل، فایل `nekoray.exe` را دریافت خواهید کرد.
سپس با اجرای دستور `windeployqt nekoray.exe`، فایل‌های مورد نیاز مانند DLL به صورت خودکار در دایرکتوری فعلی کپی می‌شوند.
### بخش کامپایل Go
لطفاً به [Build_Core_fa.md](./Build_Core_fa.md) مراجعه کنید.

106
docs/HookJS_fa.md Normal file
View File

@ -0,0 +1,106 @@
# استفاده از فایل hook.js
## فعالسازی
1. `Basic Settings - Security - Enable hook.js function` را روشن کنید
2. کد JS را در `config/hook.nekoray.js` یا `config/hook.nekobox.js` قرار دهید.
## Technical Information
* JS engine: QuickJS ES2020.
* Provided interfaces: as shown in the following code
## کد نمونه (typescript)
```ts
const globalAny: any = globalThis
// روش‌های ارائه‌شده در حال حاضر
interface nekoray_in {
log(...a: any): void
}
// نقاط hook ارائه‌شده در حال حاضر
interface nekoray_hook {
hook_core_config(config: string): string
hook_tun_config(config: string): string
hook_tun_script(script: string): string
hook_import(content: string): string
}
class my_hook implements nekoray_hook {
private nekoray = globalAny.nekoray as nekoray_in
hook_core_config(config: string): string {
var json = JSON.parse(config)
var my_rule = {
"geosite": "cn",
"server": "dns-direct",
"disable_cache": true
}
json["dns"]["rules"].push(my_rule)
return JSON.stringify(json)
}
hook_tun_config(config: string): string {
return config // بازگشت ورودی، نشان دهنده عدم تغییر
}
hook_tun_script(script: string): string {
console.log("Script") // خروجی به stdout
this.nekoray.log("Script:", script) // خروجی به لاگ
return script
}
hook_import(content: string): string {
var newContent: Array<any> = []
content.split("\n").forEach((line: any) => {
if (line.startsWith("vmess://")) {
newContent.push(line)
}
})
return newContent.join("\n")
}
}
globalAny.hook = new my_hook
```
## کد نمونه (javascript)
```js
var globalAny = globalThis;
var my_hook = /** @class */ (function () {
function my_hook() {
this.nekoray = globalAny.nekoray;
}
my_hook.prototype.hook_core_config = function (config) {
var json = JSON.parse(config);
var my_rule = {
"geosite": "cn",
"server": "dns-direct",
"disable_cache": true
};
json["dns"]["rules"].push(my_rule);
return JSON.stringify(json);
};
my_hook.prototype.hook_tun_config = function (config) {
return config; // بازگشت ورودی، نشان دهنده عدم تغییر
};
my_hook.prototype.hook_tun_script = function (script) {
console.log("Script"); // خروجی به stdout
this.nekoray.log("Script:", script); // خروجی به لاگ
return script;
};
my_hook.prototype.hook_import = function (content) {
var newContent = [];
content.split("\n").forEach(function (line) {
if (line.startsWith("vmess://")) {
newContent.push(line);
}
});
return newContent.join("\n");
};
return my_hook;
}());
globalAny.hook = new my_hook;
```