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
- Tutorial: Tic Tac Toe
- Thinking in React
-
Installation
- Start a New React Project
- Add React to an Existing Project
- Editor Setup
- React Developer Tools
-
Describing the UI
- Your First Component
- Importing and Exporting Components
- Writing Markup with JSX
- JavaScript in JSX with Curly Braces
- Passing Props to a Component
- Conditional Rendering
- Rendering Lists
- Keeping Components Pure
-
Adding Interactivity
- Responding to Events
- State: A Component's Memory
- Render and Commit
- State as a Snapshot
- Queueing a Series of State Updates
- Updating Objects in State
- Updating Arrays in State
-
Managing State
- Reacting to Input with State
- Choosing the State Structure
- 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
-
react
: Hooks-
useCallback
-
useContext
-
useDebugValue
-
useDeferredValue
-
useEffect
-
useId
-
useImperativeHandle
-
useInsertionEffect
-
useLayoutEffect
-
useMemo
-
useReducer
-
useRef
-
useState
-
useSyncExternalStore
-
useTransition
-
-
react
: Components-
<Fragment> (<>)
-
<Profiler>
-
<StrictMode>
-
<Suspense>
-
-
react
: APIs-
createContext
-
forwardRef
-
lazy
-
memo
-
startTransition
-
-
react-dom
: Components- Common (e.g.
<div>
) -
<input>
-
<option>
-
<progress>
-
<select>
-
<textarea>
- 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
) - 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
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.
Click here to see reactjs.org legacy progress
Maintainer List
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. Take only one page at a time.
- Check out prior works in Prior works #4 before you get started.
- Clone this repo, translate your page using with this checker, and submit a pull request!
Before contributing, read the glossary and this wiki page 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 any more, let the maintainers know so they can assign the page to someone else.
Please join in React Korea Slack #translation channel if you are interested in the translation.
For maintainers
When someone volunteers, edit this issue with the username of the volunteer, and with the PR. Ex:
- Home Page (@tesseralis) Korean Translation Progress #1
When PRs are merged, make sure to mark that page as completed!
Core Pages
To do before releasing as an "official" translation. Please translate these pages first.
- Home Page (@chatoo2412) Translate Home Page #8
- Tutorial (@noahluftyang) Translate Tutorial #111
Basics
- Hello World (@chayeoi) Translate Hello world #9
- Introducing JSX (@rkdmen) Translate Introducing JSX #18
- Rendering Elements (@BKJang) Translate rendering elements #21
- Components and Props (@purelledhand) Translate Components and Props #35
- State and Lifecycle (@rlagksruf16) Translate state-and -lifecycle #95
- Handling Events (@Godsenal) Translate Handling Events #19
- Conditional Rendering (@Jonir227) Translate Conditional Rendering #26
- Lists and Keys (@Jravvit) Translate List and Keys #85
- Forms (@hyunalee419) Translate forms #30
- Lifting State Up (@chayeoi) Translate Lifting State Up #109
- Composition vs Inheritance (@hewonjeong) Translate Composition vs Inheritance #22
- Thinking in React (@yesjin-git) Translation for thinking in react #77
API Reference
- React (@cadenzah) Translation for API-Refernce/React #12
- React.Component (@cadenzah) Translation for React.Component #76
- ReactDOM (@noahluftyang) Translate ReactDOM #28
- ReactDOMServer (@Injae-Lee) Translate ReactDOMServer #68
- DOM Elements (@stepover10) Translate DOM Elements #67
- SyntheticEvent (@beingbook) translate SyntheticEvent doc #32
- Test Utilities (@ymin1103) Translate Test Utilities #43
- Shallow Renderer (@hmu332233) Translate Shallow Renderer #40
- Test Renderer (@hiddenest, @toy9910) Translate Test renderer #37, translating reference-test-renderer.md #190
- JS Environment Requirements (@taggon) Translate JavaScript Environment Requirements #34
- Glossary (@gnujoow) Translate reference-glossary #16
Navigation
These are the navigation links that appears in the sidebar. Possibly wait until
the corresponding sections are translated to do these.
- tutorial/nav.yml (@taehwanno) Translate tutorial navigation #87
- docs/nav.yml (@taehwanno, @rkdmf1026) Translate docs navigation #84, Translating "nav.yml" to Korean #189
Next Steps
These are the next most important translations, ordered by importance:
Installation
- Getting Started (@MDJuniooor) Translate Getting Started #50
- Add React to a Website (@ymin1103) Translated Add React to a Website. #101
- Create a New React App (@OnesQuared) create-a-new-react-app.md Translation #64
- CDN Links (@gnujoow) translate cdn links #44
- Release Channels (@thinkanddoit) Translate Release Channels #269
Hooks
Everyone is hooked on hooks! People are really excited for these and it would be great for them to be translated.
- Introducing Hooks (@Geon-wooBryanKim) Translate Introducing Hooks #33
- Hooks at a Glance (@chatoo2412) Translate Hooks at a Glance #6
- Using the State Hook (@nghy97) Translate Hooks State #65
- Using the Effect Hook (@yumidev) Add translation of hooks-effect #205
- Rules of Hooks (@BeomyeonAndrewKim) Translate Rules of Hooks #63
- Building Your Own Hooks (@yumidev) Add hooks-custom translation #230
- Hooks API Reference (@hapumee) Translate HOOKS > Hooks API Reference #89
- Hooks FAQ (@seanjun21) Translate to Korean for Hooks FAQ #265
Warnings
These are the pages that you get when you click the links in the console (e.g. https://reactjs.org/warnings/dont-call-proptypes.html). People tend to search these, so please don't translate the error message itself.
- dont-call-proptypes (@simsim0709) Translate dont-call-proptypes #52
- invalid-aria-prop (@simsim0709) Translate Invalid Aria Prop #57
- invalid-hook-call-warning (@simsim0709) Translate Invalid Hook Call Warning #61
- legacy-factories (@simsim0709) Translate Legacy Factories #58
- refs-must-have-owner (@simsim0709) Translate refs-must-have-owner #69
- special-props (@simsim0709) Translate Special Props #59
- unknown-prop (@simsim0709) Translate unknown-prop #70
Advanced Guides
- Accessibility (@hiddenest) Translate Accessibility #46
- Code-Splitting (@liante0904) Translate code-splitting.md #55
- Context (@phoebejhhong) Translate context #79
- Error Boundaries (@anthonyminyungi) Translation for Error-boundary #222
- Forwarding Refs (@hapumee) Translate Advanced Guides > Forwarding Refs #260
- Fragments (@yoeubi) Translate fragments #83
- Higher-Order Components (
@gnujoow@dev-hikun)higher-order-components (partial) #187Translated HOC Page #286 - Integrating with Other Libraries (@yoeubi) Translate integrating-with-other-libraries #121
- JSX In Depth (@hIkipooh) Translate JSX In Depth #100, Translate JSX In Depth #177
- Optimizing Performance (@BeomyeonAndrewKim) Translate Optimizing performance #119
- Portals (@hapumee) Translation of Advanced Guides > Portals #131
- Profiler (@hIkipooh) profiler translation pull request #238
- React Without ES6 (@ymin1103) Translate React Without ES6 #29
- React Without JSX (@shiincs) Translate react-without-jsx #86
- Reconciliation (@hewonjeong) Translate reconciliation #60
- Refs and the DOM (@ENvironmentSet) Translation for Advanced Guides/Refs and the DOM #13
- Render Props (@hg-pyun) Translate render-props #73
- Static Type Checking (@jiwonkirn) Translate Static Type Checking #88
- Strict Mode (@hiddenest) Translate Strict Mode #47
- Typechecking With PropTypes (@sukjae) Translated typechecking-with-proptypes page into Korean #78
- Uncontrolled Components (@hyunalee419) Translate Uncontrolled Components #66
- Web Components (@hiddenest) Translate Web Components #48
FAQ
- APIs and AJAX (@sukjae) Translated docs/faq-ajax into Korean #80
- Babel, JSX, and Build Steps (@sukjae) Translated docs/faq-build into Korean #81
- Passing Functions to Components (@sdu6342) Translate FAQ > Passing Functions to Components #105
- Component State (@ejolie) Translate FAQ > Component State #102
- Styling and CSS (@sukjae) docs: translate-styling-and-css #223
- File Structure (@highspirit7) Translate FAQ > File Structure #107
- Versioning Policy (@hapumee) Translation of FAQ > Versioning Policy #132
- Virtual DOM and Internals (@dl0312) Translate FAQ > Virtual DOM and Internals #113
Contributing
Priority: Low
- How to Contribute (@Kim-Ki-Soo) Translate How-To-Contribute #126
- Codebase Overview (@Kimguyeop) Translate Codebase Overview #123
- Implementation Notes (@baekjuwon) Translate Implementation-notes.md #129
- Design Principles (@hapumee) Translation of Contributing > Design principle #133
Components
Components in src/components
that have some text in them.
- CodeEditor (@taggon) Translate: CodeEditor and CodeExample #361
- CodeExample (@taggon) Translate: CodeEditor and CodeExample #361
- ErrorDecoder (@hIkipooh) ErrorDecoder Translation PR #219
- LayoutFooter (@hoony2520) Translate components/LayoutFooter #122
- LayoutHeader (@AlexKoala) Translate Header text #56
- MarkdownPage (@dexterastin)
Additional Translations
These are not the primary translation targets.
- Blog
- Community
Translations added after this issue creation
Testing
- Testing Overview (@koDaegon) Translate Testing overview page #179
- Testing Recipes (@cdsleaf) Translate to korean for testing-recipes.md #201
- Testing Environments (@BeomYoung) translating "testing-environments.md" to Korean #183
Concurrent Mode (Experimental)
- Introducing Concurrent Mode (@Yohan-Kim2) Translating to korean for concurrent-mode-intro.md(ver 1.0) #186
- Suspense for Data Fetching (@cadenzah) Translation for Suspense for Data Fetching #221
- Concurrent UI Patterns (@beingbook) Translate Concurrent mode UI patterns #224
- Adopting Concurrent Mode (@junsikshim) "Adopting Concurrent Mode" 번역 #182
- Concurrent Mode API Reference (@DDOLDDOL) concurrent-mode-API-reference.md has been commited #192