Skip to content

Commit b1af103

Browse files
RezaAbjasonsaayman
andauthored
Added Persian translation (axios#54)
* Add Persian language * Persian translation Co-authored-by: Jay <[email protected]>
1 parent 349b5d5 commit b1af103

16 files changed

+1006
-0
lines changed

fa.lang.js

+139
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
/**
2+
* Configuration for the Persian translation
3+
* پیکربندی ترجمه فارسی
4+
*/
5+
6+
module.exports = {
7+
// Language display name. MUST BE THE SAME AS IN [inert.config.js].custom.langs
8+
display: "فارسی",
9+
prefix: "/fa/",
10+
dir: "rtl",
11+
lang: "fa",
12+
// `p` stands for `paragraph`. This will contain translations of full text blocks
13+
p: {
14+
headline: "سرویس گیرنده HTTP مبتنی بر پرامیس (Promise) برای مرورگر و node.js ",
15+
subhead: `Axios یک سرویس گیرنده HTTP مبتنی بر پرامیس (Promise) برای مرورگر و node.js می باشد.
16+
Axios یک کتابخانه ساده حتی برای استفاده در یک بسته کوچک با رابط کاربری بسیار گسترده ارائه شده است.`,
17+
},
18+
// `t` stands fot `translation`. This will contain translations of single words or phrases
19+
t: {
20+
"Get Started": "شروع کنید",
21+
"View on GitHub": "مشاهده در GitHub",
22+
"Languages": "زبان ها",
23+
"Open Source": "متن باز",
24+
"Contribute": "مشارکت",
25+
"Source on GitHub": "منبع در GitHub",
26+
"Fork on GitHub": "فورک در GitHub",
27+
"Fork the Website": "فورک وب سایت",
28+
"Create an Issue": "ایجاد یک مسئله",
29+
"Next": "بعدی",
30+
"Previous": "قبلی",
31+
"Website Copy Right Footer": "پاورقی حق چاپ و استفاده وب سایت",
32+
"View On Github": "مشاهده در Github",
33+
"Axios Project Copy Right Footer": "پاورقی حق استفاده از پروژه Axios",
34+
"License Label Footer": "پاورقی برچسب مجوز"
35+
},
36+
sidebar: [
37+
{
38+
type: "heading",
39+
text: "شروع به کار",
40+
},
41+
{
42+
type: "link",
43+
href: "/docs/intro",
44+
text: "مقدمه",
45+
},
46+
{
47+
type: "link",
48+
href: "/docs/example",
49+
text: "مثال",
50+
},
51+
{
52+
type: "link",
53+
href: "/docs/post_example",
54+
text: "درخواست های ارسال",
55+
},
56+
{
57+
type: "heading",
58+
text: "رابط های برنامه‌نویسی پروژه",
59+
},
60+
{
61+
type: "link",
62+
href: "/docs/api_intro",
63+
text: "APIهای پروژه Axios",
64+
},
65+
{
66+
type: "link",
67+
href: "/docs/instance",
68+
text: "نمونه سازی از Axios",
69+
},
70+
{
71+
type: "link",
72+
href: "/docs/req_config",
73+
text: "پیکربندی درخواست ها",
74+
},
75+
{
76+
type: "link",
77+
href: "/docs/res_schema",
78+
text: "الگوی پاسخ ها",
79+
},
80+
{
81+
type: "link",
82+
href: "/docs/config_defaults",
83+
text: "تنظیمات پیش فرض",
84+
},
85+
{
86+
type: "link",
87+
href: "/docs/interceptors",
88+
text: "رهگیرها",
89+
},
90+
{
91+
type: "link",
92+
href: "/docs/handling_errors",
93+
text: "مدیریت خطاها",
94+
},
95+
{
96+
type: "link",
97+
href: "/docs/cancellation",
98+
text: "لغو درخواست",
99+
},
100+
{
101+
type: "link",
102+
href: "/docs/urlencoded",
103+
text: "بدنه های رمزگذاری آدرس (URL-Encoding)",
104+
},
105+
{
106+
type: "heading",
107+
text: "متفرقه",
108+
},
109+
{
110+
type: "link",
111+
href: "/docs/notes",
112+
text: "نکات",
113+
},
114+
{
115+
type: "heading",
116+
text: "مشارکت کنندگان",
117+
},
118+
{
119+
type: "link",
120+
href: "https://github.com/axios/axios/blob/master/CODE_OF_CONDUCT.md",
121+
text: "قوانین رفتاری",
122+
},
123+
{
124+
type: "link",
125+
href: "https://github.com/axios/axios/blob/master/COLLABORATOR_GUIDE.md",
126+
text: "راهنمای همکار (توسعه دهنده)",
127+
},
128+
{
129+
type: "link",
130+
href: "https://github.com/axios/axios/blob/master/CONTRIBUTING.md",
131+
text: "مشارکت در توسعه Axios"
132+
},
133+
{
134+
type: "link",
135+
href: "/docs/translating",
136+
text: "ترجمه این اسناد"
137+
}
138+
],
139+
};

inert.config.js

+7
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const kuConfig = require("./ku.lang.js");
2323
const esConfig = require('./es.lang.js');
2424
const trConfig = require("./tr.lang.js");
2525
const krConfig = require("./kr.lang.js");
26+
const faConfig = require("./fa.lang.js");
2627

2728
// List of languages
2829
const langs = [
@@ -81,6 +82,12 @@ const langs = [
8182
prefix: "/kr/",
8283
config: krConfig,
8384
},
85+
{
86+
dir: "rtl",
87+
name: "فارسی",
88+
prefix: "/fa/",
89+
config: faConfig,
90+
},
8491
];
8592

8693
/**

posts/fa/api_intro.md

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
title: 'APIهای پروژه Axios'
3+
description: 'مرجع APIهای پروژه Axios'
4+
prev_title: 'درخواست های ارسال'
5+
prev_link: '/docs/post_example'
6+
next_title: 'نمونه سازی از Axios'
7+
next_link: '/docs/instance'
8+
---
9+
10+
با ایجاد پیکربندی مناسب و ارسال به `axios` می توان انواع درخواست ها را انجام داد.
11+
12+
##### axios(config)
13+
14+
```js
15+
// ارسال درخواستی از نوع POST
16+
axios({
17+
method: 'post',
18+
url: '/user/12345',
19+
data: {
20+
firstName: 'Fred',
21+
lastName: 'Flintstone'
22+
}
23+
});
24+
```
25+
26+
```js
27+
// درخواستی از نوع GET برای گرفتن یک عکس از مکانی دیگر در node.js
28+
axios({
29+
method: 'get',
30+
url: 'http://bit.ly/2mTM3nY',
31+
responseType: 'stream'
32+
})
33+
.then(function (response) {
34+
response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
35+
});
36+
```
37+
38+
##### axios(url[, config])
39+
40+
```js
41+
// ارسال درخواستی از نوع GET (متد پیش فرض)
42+
axios('/user/12345');
43+
```
44+
45+
### توابع مختلف یک درخواست
46+
47+
برای راحتی نوشتن کدها، توابعی برای همه روشهای درخواست ارائه شده است.
48+
49+
##### axios.request(config)
50+
##### axios.get(url[, config])
51+
##### axios.delete(url[, config])
52+
##### axios.head(url[, config])
53+
##### axios.options(url[, config])
54+
##### axios.post(url[, data[, config]])
55+
##### axios.put(url[, data[, config]])
56+
##### axios.patch(url[, data[, config]])
57+
58+
###### نکته
59+
هنگام استفاده از توابع گفته شده، نیازی به نوشتن خود کلمات "url" ، "method" و "data" در پیکربندی نیست.

posts/fa/cancellation.md

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: 'لغو درخواست'
3+
prev_title: 'مدیریت خطاها'
4+
prev_link: '/docs/handling_errors'
5+
next_title: 'بدنه های رمزگذاری آدرس (URL-Encoding)'
6+
next_link: '/docs/urlencoded'
7+
---
8+
9+
با یک *توکن لغو* (cancel token) می توانید درخواستی را لغو کنید.
10+
11+
> API توکن لغو Axios بر اساس "withdrawn " نوشته شده است [پیشنهادی برای پرامیس های قابل لغو](https://github.com/tc39/proposal-cancelable-promises).
12+
13+
مانند روش زیر می توانید با استفاده از `CancelToken.source` یک توکن لغو ایجاد کنید:
14+
15+
```js
16+
const CancelToken = axios.CancelToken;
17+
const source = CancelToken.source();
18+
19+
axios.get('/user/12345', {
20+
cancelToken: source.token
21+
}).catch(function (thrown) {
22+
if (axios.isCancel(thrown)) {
23+
console.log('درخواست لغو شد', thrown.message);
24+
} else {
25+
// مدیریت خطا
26+
}
27+
});
28+
29+
axios.post('/user/12345', {
30+
name: 'نام جدید'
31+
}, {
32+
cancelToken: source.token
33+
})
34+
35+
// لغو درخواست (پارامتر پیام اختیاری است)
36+
source.cancel('عملیات توسط کاربر لغو شد');
37+
```
38+
39+
همچنین می توانید با ایجاد یک تابع اجرایی که به تابع سازنده کلاس `CancelToken` می دهید، یک توکن لغو ایجاد کنید:
40+
41+
```js
42+
const CancelToken = axios.CancelToken;
43+
let cancel;
44+
45+
axios.get('/user/12345', {
46+
cancelToken: new CancelToken(function executor(c) {
47+
// تابع مجری یک متغیر را به عنوان پارامتر دریافت می کند که همان تابع لغو است که در اینجا به متغیری که تعریف کرده ایم، اجراع می دهیم.
48+
cancel = c;
49+
})
50+
});
51+
52+
// لغو درخواست
53+
cancel();
54+
```
55+
56+
> Note: you can cancel several requests with the same cancel token.

posts/fa/config_defaults.md

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
title: 'تنظیمات پیش فرض'
3+
prev_title: 'الگوی پاسخ ها'
4+
prev_link: '/docs/res_schema'
5+
next_title: 'رهگیرها'
6+
next_link: '/docs/interceptors'
7+
---
8+
9+
## تنظیمات پیش فرض
10+
11+
می توانید پیش فرض های پیکربندی را که برای هر درخواست اعمال می شود ، مشخص کنید.
12+
13+
### پیش فرض های سراسری axios
14+
15+
```js
16+
axios.defaults.baseURL = 'https://api.example.com';
17+
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
18+
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
19+
```
20+
21+
### پیش فرض برای نمونه سازی سفارشی
22+
23+
```js
24+
// هنگام ایجاد نمونه سازی، پیش فرض های پیکربندی را تنظیم کنید
25+
const instance = axios.create({
26+
baseURL: 'https://api.example.com'
27+
});
28+
29+
// تغییر پیش فرض ها پس از ایجاد نمونه
30+
instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
31+
```
32+
33+
### پیکربندی ترتیب اولویت ها
34+
35+
پیکربندی با ترتیب اولویت ها ادغام می شود. این ترتیب ها از این کتابخانه آورده شده اند: [lib/defaults.js](https://github.com/axios/axios/blob/master/lib/defaults.js#L28), در مثال زیر سپس ویژگی "defaults" از نمونه، و در آخر پارامتر ورودی "config" مقدار دهی شده اند. پارامتر دومی اولویت بیشتری دارد.
36+
37+
```js
38+
// با استفاده از تنظیمات پیش فرض پیکربندی ارائه شده توسط کتابخانه ، یک نمونه ایجاد کنید
39+
// در این مرحله مقدار timeout به صورت پیش فرض `0` است
40+
const instance = axios.create();
41+
42+
// تغییر مقدار پیش فرض timeout
43+
// حالا تمام درخواست هایی که از این نمونه استفاده می کنند، تا حداکثر 2.5 ثانیه برای اجرای درخواست صبر می کنند
44+
instance.defaults.timeout = 2500;
45+
46+
// تغییر دوباره زمان انتظار اجرای درخواست، اگر انتظار داریم که مدت زمان زیادی برای اجرای درخواست طول می کشد
47+
instance.get('/longRequest', {
48+
timeout: 5000
49+
});
50+
```

posts/fa/example.md

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
title: 'یک مثال کوچک'
3+
description: 'یک مثال کوچک در استفاده از axios'
4+
prev_title: 'مقدمه'
5+
prev_link: '/docs/intro'
6+
next_title: 'درخواست های ارسال از نوع POST'
7+
next_link: '/docs/post_example'
8+
---
9+
10+
## نکته: استفاده از کد معمول
11+
برای استفاده از قابلیت های (intellisense / autocomplete) در TypeScript، حین استفاده از «require» به صورت زیر استفاده کنید:
12+
13+
```js
14+
const axios = require('axios').default;
15+
16+
// حالا با تایپ axios.<method> لیست توابع این کتابخانه نمایش داده می شود
17+
```
18+
19+
# مثال
20+
21+
انجام درخواست `GET`
22+
23+
```js
24+
const axios = require('axios');
25+
26+
// ایجاد درخواست برای یک کاربر با آی دی مشخص
27+
axios.get('/user?ID=12345')
28+
.then(function (response) {
29+
// مدیریت پاسخ در زمان موفق بودن درخواست
30+
console.log(response);
31+
})
32+
.catch(function (error) {
33+
// مدیریت خطا
34+
console.log(error);
35+
})
36+
.then(function () {
37+
// این قسمت همیشه اجرا می شود
38+
});
39+
40+
// درخواست بالا را به صورت زیر هم میتوان نوشت
41+
axios.get('/user', {
42+
params: {
43+
ID: 12345
44+
}
45+
})
46+
.then(function (response) {
47+
console.log(response);
48+
})
49+
.catch(function (error) {
50+
console.log(error);
51+
})
52+
.then(function () {
53+
// این قسمت همیشه اجرا می شود
54+
});
55+
56+
// اگر میخواهید از async/await? استفاده کنید، کلمه `async` را در ابتدای تعریف تابع اضافه کنید.
57+
async function getUser() {
58+
try {
59+
const response = await axios.get('/user?ID=12345');
60+
console.log(response);
61+
} catch (error) {
62+
console.error(error);
63+
}
64+
}
65+
```
66+
67+
> **نکته:** `async/await` جزوی از روش ECMAScript 2017 است و در اینترنت اکسپلورر یا همان IE و مرورگرهای قدیمی پشتیبانی نمی شود.
68+
> پس با احتیاط لازم استفاده کنید.

0 commit comments

Comments
 (0)