ar.react.dev icon indicating copy to clipboard operation
ar.react.dev copied to clipboard

New Arabic Translation Progress

Open gaearon opened this issue 1 year ago • 92 comments

Maintainer List

  • @AhmedBaset
  • @asantarissy
  • @iRayan7
  • @aladin002dz
  • @Fcmam5
  • @mohshbool
  • @3imed-jaberi
  • @splimter

For New Translators

To translate a page:

  1. Check that no one else has claimed your page in the checklist and comments below.
  2. Comment below with the name of the page you would like to translate. Please take only one page at a time.
  3. 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>
  • [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

gaearon avatar Apr 25 '23 00:04 gaearon

@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!

gaearon avatar Apr 25 '23 14:04 gaearon

I would like to transplant the page : API reference/ react:Hooks / useCallback or the Api reference / Hooks index page .

aalhommada avatar Apr 25 '23 19:04 aalhommada

I would like to start by translating the quick start / index page. image

Yarob50 avatar Apr 26 '23 05:04 Yarob50

I would start with "Thinking in React". Is there a glossary or style guide ready for use yet?

hAbuMustafa avatar Apr 26 '23 10:04 hAbuMustafa

@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!

3imed-jaberi avatar Apr 26 '23 11:04 3imed-jaberi

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 avatar Apr 26 '23 11:04 3imed-jaberi

@3imed-jaberi I will begin with the index .

aalhommada avatar Apr 26 '23 11:04 aalhommada

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.

3imed-jaberi avatar Apr 26 '23 11:04 3imed-jaberi

I would like to start by translating the quick start / index page. image

@Yarob50 waiting for your PR 🔥

assigned.

3imed-jaberi avatar Apr 26 '23 11:04 3imed-jaberi

@aalhommada, waiting for your PR 🔥

assigned.

3imed-jaberi avatar Apr 26 '23 11:04 3imed-jaberi

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.

3imed-jaberi avatar Apr 26 '23 11:04 3imed-jaberi

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 ?

aalhommada avatar Apr 26 '23 17:04 aalhommada

Hi @3imed-jaberi, I would like to translate Describing the UI

abdllahdev avatar Apr 26 '23 20:04 abdllahdev

I would like to start by translating the quick start / index page. image

@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.

Yarob50 avatar Apr 26 '23 20:04 Yarob50

I would like to start by translating the quick start / index page. image

@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>

aalhommada avatar Apr 27 '23 08:04 aalhommada

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.

Yarob50 avatar Apr 27 '23 08:04 Yarob50

Hi I would like to translate the Installation section @3imed-jaberi

AbdulrehmanSuliman avatar Apr 27 '23 12:04 AbdulrehmanSuliman

@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.

hAbuMustafa avatar Apr 27 '23 12:04 hAbuMustafa

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={"مسقط!"}?)

image image image

hAbuMustafa avatar Apr 28 '23 19:04 hAbuMustafa

I'm done with my assignment ("Thinking in React") @3imed-jaberi .

I have a few notes though:

  1. 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.

  1. 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?

  2. 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?

hAbuMustafa avatar Apr 29 '23 02:04 hAbuMustafa

@Yarob50 I'd like to translate Tutorial: Tic Tac Toe.

AhmedBaset avatar Apr 29 '23 07:04 AhmedBaset

@Yarob50 @3imed-jaberi I'd like to translate State as a Snapshot

Mhmd3ssam avatar Apr 29 '23 13:04 Mhmd3ssam

Hi I would like to translate the Installation section @3imed-jaberi

@Yarob50

AbdulrehmanSuliman avatar Apr 29 '23 13:04 AbdulrehmanSuliman

Hi there! @Yarob50 @3imed-jaberi I would like to translate "Start a New React Project"

I-3B avatar Apr 30 '23 21:04 I-3B

All asked pages are assigned.

🚨 Please don't forget to open the PR as a draft to confirm your assignment.

3imed-jaberi avatar May 01 '23 02:05 3imed-jaberi

@3imed-jaberi I think you forgot to assign this page Describing the UI for me

abdllahdev avatar May 01 '23 02:05 abdllahdev

@onlyabdullah done!

3imed-jaberi avatar May 01 '23 02:05 3imed-jaberi

I've done my page #469 Could any maintainer review it?

AhmedBaset avatar May 01 '23 02:05 AhmedBaset

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.

3imed-jaberi avatar May 01 '23 02:05 3imed-jaberi

I am working on Add React to an Existing Project #473

AhmedBaset avatar May 01 '23 11:05 AhmedBaset