Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SyntheticEvent Translated into Persian #63

Closed
wants to merge 8 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 54 additions & 59 deletions content/docs/reference-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ layout: docs
category: Reference
---

This reference guide documents the `SyntheticEvent` wrapper that forms part of React's Event System. See the [Handling Events](/docs/handling-events.html) guide to learn more.
این صفحه، مرجع `SyntheticEvent` می‌باشد که بخشی از سیستم رویدادهای ری‌اکت (React's Event System) را تشکیل می‌دهد. برای یادگیری بیشتر، [Handling Events](/docs/handling-events.html) را ببینید.

## Overview {#overview}
## مرور کلی {#overview}

Your event handlers will be passed instances of `SyntheticEvent`, a cross-browser wrapper around the browser's native event. It has the same interface as the browser's native event, including `stopPropagation()` and `preventDefault()`, except the events work identically across all browsers.
`SyntheticEvent` روکشی است بر رویدادهای ذاتی خود مرورگر که در تمام مرورگر‌ها کار می‌کند. کنترل کننده‌های رویداد شما (event handlers) به شکل مواردی از `SyntheticEvent` دریافت خواهند شد. رابط آن همانند رویدادهای ذاتی مرورگر است و شامل `stopPropagation()` و `preventDefault()` هم هست. با این تفاوت که رویدادها در تمام مرورگر‌ها عین هم کار می‌کنند.
seven-deuce marked this conversation as resolved.
Show resolved Hide resolved

If you find that you need the underlying browser event for some reason, simply use the `nativeEvent` attribute to get it. Every `SyntheticEvent` object has the following attributes:
اگر فکر می‌کنید که در جایی باید رویداد ذاتی خود مرورگر را استفاده کنید، کافی است که `nativeEvent` را به عنوان یک attribute اضافه کنید تا به آن دسترسی یابید. هر آبجکت `SyntheticEvent`، attribute های زیر دارد:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

اگر فکر می‌کنید که در جایی باید رویداد ذاتی خود مرورگر را استفاده کنید، کافی است که از خصوصیت nativeEvent استفاده کنید. هر شی SyntheticEvent دارای خصوصیات زیر است:

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

فکر می کنی کلمه ی "خصوصیت" برای این اصطلاح واقعا شناخته شده است؟
به نظر من اگر بخواهیم این واژه رو معادل اتربیوت قرار بدیم، دیگه مطلقا در هیچ جای دیگه نباید در معنایی به جز اتربیوت استفاده اش کنی. مثلا دیگه نمی تونیم بگیم "یکی از خصوصیات ری اکت فلان و فلان است".
همین مسئله در مورد اصطلاحی مثل استیت و پراپس هم هست. اگر ما استیت رو مثلا "وضعیت" ترجمه کردیم، دیگه نمی تونیم "وضعیت" رو در فحوا های دیگه استفاده کنیم. و گرنه ترجمه امون کژتابی برای خواننده خواهد داشت.
من پیشنهادم اینه که اتربیوت رو همینطور حفظ کنیم و روزه ی شک دار نگیریم.


```javascript
boolean bubbles
Expand All @@ -30,16 +30,15 @@ DOMEventTarget target
number timeStamp
string type
```

> Note:
> توجه:
>
> As of v0.14, returning `false` from an event handler will no longer stop event propagation. Instead, `e.stopPropagation()` or `e.preventDefault()` should be triggered manually, as appropriate.

### Event Pooling {#event-pooling}
> از نسخه ی v0.14، بازگشت دادن `false` از یک کنترل کننده ی رویداد، مانع انتشار یک رویداد نمی شود. بجای آن، `e.stopPropagation()` یا `e.preventDefault()` ، هر کدام به درخور موقعیت باید اجرا شوند.
seven-deuce marked this conversation as resolved.
Show resolved Hide resolved

The `SyntheticEvent` is pooled. This means that the `SyntheticEvent` object will be reused and all properties will be nullified after the event callback has been invoked.
This is for performance reasons.
As such, you cannot access the event in an asynchronous way.
### برهم گذاری رویداد {#event-pooling}
seven-deuce marked this conversation as resolved.
Show resolved Hide resolved
`SyntheticEvent` برهم گذاری می‌شود. یعنی اینکه آبجکت `SyntheticEvent` پس از آنکه callback اش فراخوانی شد، تمام دارایی‌های خود را از دست خواهد داد و استفاده ی مجدد خواهد شد.
این به خاطر ارتقای کارکرد است.
از همین رو، شما نمی توانید به طور غیرهمزمان (asynchronous) به رویداد دسترسی داشته باشید.

```javascript
function onClick(event) {
Expand All @@ -52,23 +51,19 @@ function onClick(event) {
console.log(eventType); // => "click"
}, 0);

// Won't work. this.state.clickEvent will only contain null values.
// کار نخواهد کرد. this.state.clickEvent فقط حاوی متغیرهای تهی خواهد بود.
this.setState({clickEvent: event});

// You can still export event properties.
// همچنان قادر خواهید بود که دارایی‌های رویداد را صادر کنید
this.setState({eventType: event.type});
}
```

> Note:
> توجه:
>
> If you want to access the event properties in an asynchronous way, you should call `event.persist()` on the event, which will remove the synthetic event from the pool and allow references to the event to be retained by user code.

## Supported Events {#supported-events}
> اگر می‌خواهید که به دارایی‌های رویداد، به طور غیرهمزمان دسترسی داشته باشید باید `event.persist()` را در رویداد فراخوانی کنید. این موجب خواهد شد که رویداد سینتاتیک از روند برهم گذاری خارج شود و ارجاعات داده شده به آن رویداد در کد کاربر حفظ شود.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... این موجب خواهد شد که رویداد ساخته‌شده از ...

شاید معادل خوبی باشه برای synthetic؟

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

شاید تنها جایی که کلمه ی سیناتیک وارد فارسی شده و متداول استفاده میشه، نساجی هست. شنیدم که این لغت رو در مورد پارچه استفاده می کنند. اما نمی دونم معناش رو هم عموم می فهمند که چیه یا نه.
شاید بهتر باشه هر دو مورد رو استفاده کنیم:
رویداد ساخته شده (سینتاتیک)...


React normalizes events so that they have consistent properties across different browsers.

The event handlers below are triggered by an event in the bubbling phase. To register an event handler for the capture phase, append `Capture` to the event name; for example, instead of using `onClick`, you would use `onClickCapture` to handle the click event in the capture phase.
## رویدادهای پشتیبانی شده {#supported-events}

seven-deuce marked this conversation as resolved.
Show resolved Hide resolved
- [Clipboard Events](#clipboard-events)
- [Composition Events](#composition-events)
Expand All @@ -89,17 +84,17 @@ The event handlers below are triggered by an event in the bubbling phase. To reg

* * *

## Reference {#reference}
## مرجع {#reference}

### Clipboard Events {#clipboard-events}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

چرا هیچ کدوم از عنوان ها از این به بعد ترجمه نشده؟ دلیلی داشته؟

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

فکر کردم ترجمه کمکی نمی کنه که هیچ، بدتر هم می کنه
مثلا ترجمه کنم: رویدادهای صفحه کلیدی؟؟!


Event names:
نام رویدادها

```
onCopy onCut onPaste
```

Properties:
دارایی‌ها
seven-deuce marked this conversation as resolved.
Show resolved Hide resolved

```javascript
DOMDataTransfer clipboardData
Expand All @@ -109,13 +104,13 @@ DOMDataTransfer clipboardData

### Composition Events {#composition-events}

Event names:
نام رویدادها

```
onCompositionEnd onCompositionStart onCompositionUpdate
```

Properties:
دارایی‌ها

```javascript
string data
Expand All @@ -126,13 +121,13 @@ string data

### Keyboard Events {#keyboard-events}

Event names:
نام رویدادها

```
onKeyDown onKeyPress onKeyUp
```

Properties:
دارایی‌ها

```javascript
boolean altKey
Expand All @@ -149,21 +144,21 @@ boolean shiftKey
number which
```

The `key` property can take any of the values documented in the [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values).
`key` می‌تواند هر کدام از متغیرهای ذکر شده در [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values) را داشته باشد.

* * *

### Focus Events {#focus-events}

Event names:
نام رویدادها

```
onFocus onBlur
```

These focus events work on all elements in the React DOM, not just form elements.
رویدادهای فوق برای تمام المنت‌های React DOM کار خواهد کرد و نه فقط المنت‌های فرم.

Properties:
دارایی‌ها

```javascript
DOMEventTarget relatedTarget
Expand All @@ -173,29 +168,28 @@ DOMEventTarget relatedTarget

### Form Events {#form-events}

Event names:
نام رویدادها

```
onChange onInput onInvalid onSubmit
```

For more information about the onChange event, see [Forms](/docs/forms.html).
برای اطلاعات بیشتر در مورد رویداد onChange، [Forms](/docs/forms.html) را ببینید.

* * *

### Mouse Events {#mouse-events}

Event names:
نام رویدادها

```
onClick onContextMenu onDoubleClick onDrag onDragEnd onDragEnter onDragExit
onDragLeave onDragOver onDragStart onDrop onMouseDown onMouseEnter onMouseLeave
onMouseMove onMouseOut onMouseOver onMouseUp
```

The `onMouseEnter` and `onMouseLeave` events propagate from the element being left to the one being entered instead of ordinary bubbling and do not have a capture phase.
رویدادهای `onMouseEnter` و `onMouseLeave` از المنت ترک شده به المنت وارد شده تکثیر می‌شوند. آنها فاز capture ندارند و bubbling معمول هم در آنها اتفاق نمی افتد.

Properties:
دارایی‌ها

```javascript
boolean altKey
Expand All @@ -218,18 +212,18 @@ boolean shiftKey

### Pointer Events {#pointer-events}

Event names:
نام رویدادها

```
onPointerDown onPointerMove onPointerUp onPointerCancel onGotPointerCapture
onLostPointerCapture onPointerEnter onPointerLeave onPointerOver onPointerOut
```

The `onPointerEnter` and `onPointerLeave` events propagate from the element being left to the one being entered instead of ordinary bubbling and do not have a capture phase.
رویدادهای `onPointerEnter` و `onPointerLeave` از المنت ترک شده به المنت وارد شده تکثیر می‌شوند. آنها فاز capture ندارند و bubbling معمول هم در آنها اتفاق نمی افتد.

Properties:
دارایی‌ها

As defined in the [W3 spec](https://www.w3.org/TR/pointerevents/), pointer events extend [Mouse Events](#mouse-events) with the following properties:
طبق [W3 spec](https://www.w3.org/TR/pointerevents/)، رویدادهای متعلق به نشانگر ماوس، رویدادهای مربوط به ماوس ([Mouse Events](#mouse-events)) را با دارایی‌های زیر توسعه می‌دهند.

```javascript
number pointerId
Expand All @@ -244,17 +238,18 @@ string pointerType
boolean isPrimary
```

A note on cross-browser support:
نکته ای در مورد پشتیبانی در مرورگرهای مختلف:

Pointer events are not yet supported in every browser (at the time of writing this article, supported browsers include: Chrome, Firefox, Edge, and Internet Explorer). React deliberately does not polyfill support for other browsers because a standard-conform polyfill would significantly increase the bundle size of `react-dom`.
رویدادهای متعلق به نشانگر ماوس در تمام مرورگرها پشتیبانی نمی شوند. در زمان نوشتن این مقاله مرورگرهایی که از آن پشتیبانی می‌کنند عبارتند از: کروم، فایرفاکس، اج، و اینترنت اکسپلورر. ری‌اکت تعمدا از کد جایگزین برای پشتیبانی در مرورگرهای دیگر استفاده نمی کند، چون این کد باعث افزایش چشمگیر حجم `react-dom` می‌شود.

If your application requires pointer events, we recommend adding a third party pointer event polyfill.
اگر اپلیکیشن شما نیازمند رویدادهای نشانگر ماوس است، توصیه می‌کنیم که از کدهای جایگزین اشخاص ثالث استفاده کنید.
seven-deuce marked this conversation as resolved.
Show resolved Hide resolved


* * *

### Selection Events {#selection-events}

Event names:
نام رویدادها

```
onSelect
Expand All @@ -264,13 +259,13 @@ onSelect

### Touch Events {#touch-events}

Event names:
نام رویدادها

```
onTouchCancel onTouchEnd onTouchMove onTouchStart
```

Properties:
دارایی‌ها

```javascript
boolean altKey
Expand All @@ -287,13 +282,13 @@ DOMTouchList touches

### UI Events {#ui-events}

Event names:
نام رویدادها

```
onScroll
```

Properties:
دارایی‌ها

```javascript
number detail
Expand All @@ -304,13 +299,13 @@ DOMAbstractView view

### Wheel Events {#wheel-events}

Event names:
نام رویدادها

```
onWheel
```

Properties:
دارایی‌ها

```javascript
number deltaMode
Expand All @@ -323,7 +318,7 @@ number deltaZ

### Media Events {#media-events}

Event names:
نام رویدادها

```
onAbort onCanPlay onCanPlayThrough onDurationChange onEmptied onEncrypted
Expand All @@ -336,7 +331,7 @@ onTimeUpdate onVolumeChange onWaiting

### Image Events {#image-events}

Event names:
نام رویدادها

```
onLoad onError
Expand All @@ -346,13 +341,13 @@ onLoad onError

### Animation Events {#animation-events}

Event names:
نام رویدادها

```
onAnimationStart onAnimationEnd onAnimationIteration
```

Properties:
دارایی‌ها

```javascript
string animationName
Expand All @@ -364,13 +359,13 @@ float elapsedTime

### Transition Events {#transition-events}

Event names:
نام رویدادها

```
onTransitionEnd
```

Properties:
دارایی‌ها

```javascript
string propertyName
Expand All @@ -382,7 +377,7 @@ float elapsedTime

### Other Events {#other-events}

Event names:
نام رویدادها

```
onToggle
Expand Down