ar.react.dev
ar.react.dev copied to clipboard
New Arabic Translation Progress
Maintainer List
- @AhmedBaset
- @asantarissy
- @iRayan7
- @aladin002dz
- @Fcmam5
- @mohshbool
- @3imed-jaberi
- @splimter
For New Translators
To translate a page:
- Check that no one else has claimed your page in the checklist and comments below.
- Comment below with the name of the page you would like to translate. Please take only one page at a time.
- Clone this repo, translate your page, and submit a pull request!
Before contributing, read the glossary and style guide (once they exist) to understand how to translate various technical and React-specific terms.
Please be prompt with your translations! If you find that you can't commit anymore, let the maintainers know so they can assign the page to someone else.
For Maintainers
When someone volunteers, edit this issue with the username of the volunteer, and with the PR. Ex:
- [ ] Quick Start (@tesseralis) #12345
When PRs are merged, make sure to mark that page as completed!
Main Content
To do before releasing as an "official" translation. Please translate these pages first.
Note that each section has an index page, which needs to be translated too.
Learn React
-
[x] Quick Start (@Yarob50) #465
- [x] Tutorial: Tic Tac Toe (@AhmedBaset) #469
- [x] Thinking in React (@hAbuMustafa) #466
-
[x] Installation (@AbdulrehmanSuliman) #475
- [ ] Start a New React Project
- [x] Add React to an Existing Project (@AhmedBaset) #473
- [x] Editor Setup (@AhmedBaset) #479
- [ ] Using TypeScript (@mahmood601) #526
- [x] React Developer Tools (@AhmedBaset) #476
- [ ] React Compiler
-
[x] Describing the UI (@algorizr ) #472
- [x] Your First Component (@eihabkhan) #488
- [x] Importing and Exporting Components (@AhmedBaset) #481
- [x] Writing Markup with JSX (@AhmedBaset) #480
- [x] JavaScript in JSX with Curly Braces (@eihabkhan) #498
- [x] Passing Props to a Component (@tmtm8976) #515
- [x] Conditional Rendering (@mrlahmar) #503
- [x] Rendering Lists (@mahmood601) #504
- [x] Keeping Components Pure (@tmtm8976) #518
- [ ] Your UI as a Tree
-
[x] Adding Interactivity (@abdllahdev) #516
- [ ] Responding to Events (@bil3zy)
- [ ] State: A Component's Memory (@tmtm8976) #527
- [x] Render and Commit (@AhmedBaset) #478
- [ ] State as a Snapshot (@Mhmd3ssam)
- [ ] Queueing a Series of State Updates
- [ ] Updating Objects in State
- [ ] Updating Arrays in State
-
[x] Managing State (@Rumbustious) #522
- [x] Reacting to Input with State (@Rumbustious) #532
- [ ] Choosing the State Structure (@Rumbustious)
- [ ] Sharing State Between Components
- [ ] Preserving and Resetting State
- [ ] Extracting State Logic into a Reducer
- [ ] Passing Data Deeply with Context
- [ ] Scaling Up with Reducer and Context
-
[ ] Escape Hatches
- [ ] Referencing Values with Refs
- [ ] Manipulating the DOM with Refs
- [ ] Synchronizing with Effects
- [ ] You Might Not Need an Effect
- [ ] Lifecycle of Reactive Effects
- [ ] Separating Events from Effects
- [ ] Removing Effect Dependencies
- [ ] Reusing Logic with Custom Hooks
API Reference
-
[x] Overview
-
[x]
react
: Hooks (@aalhommada) #477- [ ]
use
- [ ]
useCallback
- [ ]
useContext
- [x]
useDebugValue
(@remahmoud) #489 - [ ]
useDeferredValue
- [ ]
useEffect
- [x]
useId
(@remahmoud) #483 - [ ]
useImperativeHandle
- [ ]
useInsertionEffect
- [ ]
useLayoutEffect
- [ ]
useMemo
- [ ]
useOptimistic
- [ ]
useReducer
- [ ]
useRef
- [ ]
useState
(@r-m169) - [ ]
useSyncExternalStore
- [ ]
useTransition
- [ ]
-
[x]
react
: Components (@AhmedBaset) #509- [ ]
<Fragment> (<>)
- [ ]
<Profiler>
- [ ]
<StrictMode>
- [ ]
<Suspense>
- [ ]
-
[x]
react
: APIs (@AhmedBaset) #507- [ ]
createContext
- [ ]
cache
- [ ]
forwardRef
- [ ]
lazy
- [ ]
memo
- [ ]
startTransition
- [ ]
act
- [ ]
-
[ ] RSC
- [ ] Server Components
- [ ] Server Actions
- [x] Directives (@AhmedBaset) #505
- [ ]
"use client"
- [x]
"use server"
(@AhmedBaset) #505 - [ ]
experimental_taintObjectReference
- [ ]
experimental_taintUniqueValue
-
[ ] Rules
- [ ] Components and Hooks must be pure
- [ ] React calls Components and Hooks
- [ ] Rules of Hooks
-
[x] Hooks
- [ ]
useFormState
- [ ]
useFormStatus
- [ ]
-
[ ]
react-dom
: Components- [ ] Common (e.g.
<div>
) - [ ]
<form>
- [ ]
<input>
- [x]
<option>
(@muh-osman) #487 - [x]
<progress>
(@mrlahmar) #491 - [ ]
<select>
- [ ]
<textarea>
- [ ]
<script>
- [ ]
<meta>
- [ ]
<link>
- [ ]
<style>
- [ ]
<title>
- [ ] Common (e.g.
-
[x]
react-dom
: APIs (@AhmedBaset) #508- [ ]
createPortal
- [ ]
flushSync
- [ ]
findDOMNode
- [ ]
hydrate
- [ ]
preconnect
- [ ]
prefetchDNS
- [ ]
preinit
- [ ]
preinitModule
- [ ]
preload
- [ ]
preloadModule
- [ ]
render
- [ ]
unmountComponentAtNode
- [ ]
-
[ ]
react-dom/client
: Client APIs (@AhmedBaset) #510- [ ]
createRoot
(@AhmedBaset) #510 - [ ]
hydrateRoot
- [ ]
-
[ ]
react-dom/server
: Server APIs- [ ]
renderToNodeStream
- [ ]
renderToPipeableStream
- [ ]
renderToReadableStream
- [ ]
renderToStaticMarkup
- [ ]
renderToStaticNodeStream
- [ ]
renderToString
- [ ]
Navigation and UI
We suggest to leave most of the UI translation until the end. We plan to do some invasive changes to the website folder layout and components, so postponing this until your translation is almost complete would make it easier to merge the changes from our side later. It might make sense to translate the homepage above the fold early, but leave the rest for later. As individual pages get translated, you can change the page titles in the corresponding sidebar files. Finally, when you're translating the navigation, make sure to test both desktop and mobile layouts.
- [ ] Homepage (currently in
HomeContent.js
) - [ ] Sidebars (currently in
src/sidebar*.json
) - [ ] Top-level navigation (currently in
TopNav.tsx
)
When You're Ready...
After everything above is translated, add your language to deployedLanguages
in Seo.tsx
of the original reactjs/react.dev repository.
Secondary Content
These API pages should ideally be translated too, but they're less urgent and can be done after the others:
- [ ] Legacy React APIs
- [ ]
Children
- [ ]
cloneElement
- [ ]
Component
- [ ]
createElement
- [ ]
createFactory
- [ ]
createRef
- [ ]
isValidElement
- [ ]
PureComponent
- [ ]
Optional Content
These aren't the main translation targets, but if you'd like to do them, feel free to expand the list to include their subpages:
- [ ] Community
- [ ] Blog
- [ ] Warnings
@asantarissy @iRayan7 @aladin002dz @Fcmam5 @mohshbool @3imed-jaberi @splimter
Could you please confirm whether you'd be able to steer the effort on this translation? If not, please send a PR to remove yourself from https://github.com/reactjs/translations.react.dev/blob/main/langs/ar.json so that we know which maintainers are active. If there are no active maintainers, we'll put out a call looking for someone to take this on. Thank you!
I would like to transplant the page : API reference/ react:Hooks / useCallback or the Api reference / Hooks index page .
I would like to start by translating the quick start / index
page.
I would start with "Thinking in React". Is there a glossary or style guide ready for use yet?
@gaearon I confirm my participation here as a maintainer. About the team, I will notify them, and once I get feedback I will update the maintainer list.
Thanks!
I would like to transplant the page : API reference/ react:Hooks / useCallback or the Api reference / Hooks index page .
@aalhommada, you should take one page each time. So, can you mention which of them you will take?
@3imed-jaberi I will begin with the index .
I would start with "Thinking in React". Is there a glossary or style guide ready for use yet?
@hAbuMustafa, you can follow our glossary here and don't forget to open PR and feel free to mark it as a draft once you be done.
assigned.
I would like to start by translating the
quick start / index
page.
@Yarob50 waiting for your PR 🔥
assigned.
@aalhommada, waiting for your PR 🔥
assigned.
Please open PR and mark them as DRAFT or with [WIP]
under you're done with it. This will help us on pages managment like identifying which pages are already picked.
Can I ask here if I have a question , or is there any another channel ( slack , Discord..) ?
I see also that there is some efforts have been already done here
is that still effective ?
Hi @3imed-jaberi, I would like to translate Describing the UI
I would like to start by translating the
quick start / index
page.@Yarob50 waiting for your PR 🔥
assigned.
Thanks @3imed-jaberi, I opened a draft PR and here is the link to it: https://github.com/reactjs/ar.react.dev/pull/465
I also added a question about the rtl
issue.
I would like to start by translating the
quick start / index
page.@Yarob50 waiting for your PR 🔥
assigned.
Thanks @3imed-jaberi, I opened a draft PR and here is the link to it: #465
I also added a question about the
rtl
issue.
React Docs use Nextjs and tailwind css , I had this issue in two language blog , and it has been solved like :
<div dir={router.locale === "ar" ? "rtl" : "ltr"}>{children}</div>
and to avoid been the code block to the right , just adjust tailwind style as this :
<article className="prose prose-neutral prose-lg prose-pre:[direction:ltr]">
<MDXRemote {...source} />
</article>
Thanks @aalhommada, but the question is: where is the proper place to add the styling and whether or not we should add it ourselves as I assume that it should be added in one place and shared with all of our branches rather than each one defining it in his own way.
Hi I would like to translate the Installation section @3imed-jaberi
@hAbuMustafa, you can follow our glossary here...
Hello, everyone, I've made this little project using the glossary highlighted here before.
Feel free to give it a visit and contribute to the page code.
I ran across a 'Pitfall' piece that doesn't seem to be translatable in the markdown file.
Since it is a React component anyway, is there a way to pass the translation to the "h3" element inside? (like passing a prop
with the translation local={"مسقط!"}
?)



I'm done with my assignment ("Thinking in React") @3imed-jaberi .
I have a few notes though:
- The page is going to need the RTL styling for sure. Maybe we can suggest adding the following to the Arabic version:
body {
direction: rtl;
}
.sp-editor, code, pre {
direction: initial;
}
Or, we can use the HTML dir
attribute somehow, but it would be rather harder to exclude elements like code
and sandpack components.
-
There are a few un-exposed text for translation. As I mentioned before, the sections like "Pitfall" and "Deep-dive" with its button state "hide/show details". How can we translate those?
-
there are so many terms that are not provided in the glossary provided before (the softvenue one). How can we have a common gorund on that?
@Yarob50 I'd like to translate Tutorial: Tic Tac Toe
.
@Yarob50 @3imed-jaberi I'd like to translate State as a Snapshot
Hi I would like to translate the Installation section @3imed-jaberi
@Yarob50
Hi there! @Yarob50 @3imed-jaberi I would like to translate "Start a New React Project"
All asked pages are assigned.
🚨 Please don't forget to open the PR as a draft to confirm your assignment.
@3imed-jaberi I think you forgot to assign this page Describing the UI
for me
@onlyabdullah done!
I've done my page #469 Could any maintainer review it?
Can I ask here if I have a question , or is there any another channel ( slack , Discord..) ? I see also that there is some efforts have been already done here is that still effective ?
I will create a Slack next week for effective communication between all of us and to clarify the process.
I am working on Add React to an Existing Project
#473