-
Notifications
You must be signed in to change notification settings - Fork 1
Description
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:
- [ ] Some Page (@exampleusername) #12345
When PRs are merged, make sure to mark that page as completed like this:
- [x] Some Page (@exampleusername) #12345
This ensures your translation's progress is tracked correctly at https://translations.react.dev/.
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
-
Quick Start (@mirorauhala) 🎉 Move existing translations to new repo #6
- Tutorial: Tic Tac Toe (@mirorauhala) Translate Tic Tac Toe #33
- Thinking in React (@mirorauhala) 🎉 Move existing translations to new repo #6
-
Installation (@mirorauhala) 🎉 Move existing translations to new repo #6
- Start a New React Project (@mirorauhala) Translate 'Start a new React project' #8
- Add React to an Existing Project (@mirorauhala) Translate 'Add React to an existing page' #9
- Editor Setup (@mirorauhala) 🎉 Move existing translations to new repo #6
- Using TypeScript (@mirorauhala) Translate 'Using TypeScript' #37
- React Developer Tools (@mirorauhala) 🎉 Move existing translations to new repo #6
-
Describing the UI (@mirorauhala) 🎉 Move existing translations to new repo #6
- Your First Component (@mirorauhala) 🎉 Move existing translations to new repo #6
- Importing and Exporting Components (@mirorauhala) 🎉 Move existing translations to new repo #6
- Writing Markup with JSX (@mirorauhala) 🎉 Move existing translations to new repo #6
- JavaScript in JSX with Curly Braces (@mirorauhala) Fix heading level issue #7
- Passing Props to a Component (@mirorauhala) 🎉 Move existing translations to new repo #6
- Conditional Rendering (@mirorauhala) 🎉 Move existing translations to new repo #6
- Rendering Lists (@mirorauhala) 🎉 Move existing translations to new repo #6
- Keeping Components Pure (@mirorauhala) 🎉 Move existing translations to new repo #6
-
Adding Interactivity (@mirorauhala) 🎉 Move existing translations to new repo #6
- Responding to Events (@mirorauhala) 🎉 Move existing translations to new repo #6
- State: A Component's Memory (@mirorauhala) 🎉 Move existing translations to new repo #6
- Render and Commit (@mirorauhala) 🎉 Move existing translations to new repo #6
- State as a Snapshot (@mirorauhala) 🎉 Move existing translations to new repo #6
- Queueing a Series of State Updates (@mirorauhala) 🎉 Move existing translations to new repo #6
- Updating Objects in State (@mirorauhala) 🎉 Move existing translations to new repo #6
- Updating Arrays in State (@mirorauhala) 🎉 Move existing translations to new repo #6
-
Managing State (@mirorauhala) 🎉 Move existing translations to new repo #6
- Reacting to Input with State (@mirorauhala) 🎉 Move existing translations to new repo #6
- Choosing the State Structure (@mirorauhala) 🎉 Move existing translations to new repo #6
- Sharing State Between Components (@mirorauhala) 🎉 Move existing translations to new repo #6
- Preserving and Resetting State (@mirorauhala) 🎉 Move existing translations to new repo #6
- Extracting State Logic into a Reducer (@mirorauhala) 🎉 Move existing translations to new repo #6
- Passing Data Deeply with Context (@mirorauhala) 🎉 Move existing translations to new repo #6
- Scaling Up with Reducer and Context (@mirorauhala) 🎉 Move existing translations to new repo #6
-
Escape Hatches (@mirorauhala) Translate Escape Hatches #27
- Referencing Values with Refs (@mirorauhala) 🎉 Move existing translations to new repo #6
- Manipulating the DOM with Refs (@mirorauhala) 🎉 Move existing translations to new repo #6
- Synchronizing with Effects (@mirorauhala) 🎉 Move existing translations to new repo #6
- You Might Not Need an Effect (@mirorauhala) Translate 'You might not need an Effect' #10
- Lifecycle of Reactive Effects (@mirorauhala) Translate Lifecycle of Reactive Events #22
- Separating Events from Effects (@mirorauhala) Translate separating-events-from-effects #23
- Removing Effect Dependencies (@mirorauhala) Translate Removing Effect Dependencies #25
- Reusing Logic with Custom Hooks (@mirorauhala) Translate Reusing Logic with Custom Hooks #26
API Reference
-
react: Hooks-
useCallback -
useContext -
useDebugValue -
useDeferredValue -
useEffect -
useId -
useImperativeHandle -
useInsertionEffect -
useLayoutEffect -
useMemo -
useReducer -
useRef -
useState -
useSyncExternalStore -
useTransition
-
-
react: Components-
<Fragment> (<>)(@mirorauhala) Translate 'Fragment' #49 -
<Profiler> -
<StrictMode> -
<Suspense>
-
-
react: APIs-
createContext(@mirorauhala) Translate 'createContext' #11 -
forwardRef(@mirorauhala) Translate 'forwardRef' #12 -
lazy -
memo -
startTransition
-
-
Directives (@mirorauhala) Sync with react.dev @ 2390627c #46
-
use client(@mirorauhala) Translate 'use client' #39 -
use server(@mirorauhala) Translate 'use server' #40
-
-
react-dom: Components (@mirorauhala) Translate Components #45- Common (e.g.
<div>) (@mirorauhala) Translate Components #45 -
<input>(@mirorauhala) Translate Components #45 -
<option>(@mirorauhala) Translate Components #45 -
<progress>(@mirorauhala) Translate Components #45 -
<select>(@mirorauhala) Translate Components #45 -
<textarea>(@mirorauhala) Translate Components #45
- Common (e.g.
-
react-dom: APIs-
createPortal -
flushSync -
findDOMNode -
hydrate -
render -
unmountComponentAtNode
-
-
react-dom/client: Client APIs-
createRoot -
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) (@mirorauhala) 🎉 Move existing translations to new repo #6 - Sidebars (currently in
src/sidebar*.json) (@mirorauhala) Translate sidebar #28 - Top-level navigation (currently in
TopNav.tsx) (@mirorauhala) Translate TopNav #29
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
Maintainer List
This translation is maintained by:
If you want to become a maintainer, ask them to add you. If the original maintainers are no longer responsive, raise an issue in the main translations repository.