Maintainers
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.
- Clone this repo, translate your page, and submit a pull request!
Before contributing, read the glossary and style guide to understand how to translate various technical and React-specific terms.
You can use the Crowdin as a base for your translation. Make sure to compare the content with the current React website to make sure everything is up to date! (NOTE: delete this if the language doesn't have any Crowdin contributions)
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:
* [x] Some Page (@somebody) #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
API Reference
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.
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:
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:
Maintainers
For New Translators
To translate a page:
Before contributing, read the glossary and style guide to understand how to translate various technical and React-specific terms.
You can use the Crowdin as a base for your translation. Make sure to compare the content with the current React website to make sure everything is up to date! (NOTE: delete this if the language doesn't have any Crowdin contributions)
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:
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
Quick Start (@ltmylinh) Translate quick start page #415
Installation (@ninh-nd) Add translation to Installation index page #347
Describing the UI (@KotonoSora) feat(i18n): translate src/content/learn/describing-the-ui.md from English to Vietnamese #475
Adding Interactivity (@KotonoSora) feat(i18n): translate src/content/learn/adding-interactivity.md from English to Vietnamese #471
Managing State (@KotonoSora) feat(i18n): translate src/content/learn/managing-state.md from English to Vietnamese #476
Escape Hatches
API Reference
react: HooksuseCallbackuseContextuseDebugValue(@viettrung9012) Translation: useDebugValue #364useDeferredValueuseEffectuseIduseImperativeHandleuseInsertionEffectuseLayoutEffectuseMemouseReduceruseRefuseStateuseSyncExternalStore(@hoangtrung99) Translate useSyncExternalStore #413useTransitionreact: Components<Fragment> (<>)(@leduc1901) Translation: Fragment #352<Profiler>(@leduc1901) Translation: Profiler #355<StrictMode><Suspense>react: APIscreateContextforwardReflazy(@leduc1901) Translation: Lazy #361memostartTransitionreact-dom: Components<div>)<input><option><progress><select><textarea>react-dom: APIscreatePortalflushSyncfindDOMNodehydraterenderunmountComponentAtNodereact-dom/client: Client APIscreateRoothydrateRootreact-dom/server: Server APIsrenderToNodeStreamrenderToPipeableStreamrenderToReadableStreamrenderToStaticMarkuprenderToStaticNodeStreamrenderToStringNavigation 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.
HomeContent.js)src/sidebar*.json)TopNav.tsx)When You're Ready...
After everything above is translated, add your language to
deployedLanguagesinSeo.tsxof 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:
ChildrencloneElementComponentcreateElementcreateFactorycreateRefisValidElementPureComponentOptional 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: