Repository navigation
New Ukrainian Translation Progress #457
Description
Maintainer List
This list of maintainers and active translators was updated on 2025/12/15. uk.react.dev is looking for a maintainer to help review, translate and maintain the documentation!
@vldmrkl@ithompson4@oleksii-polovyi@bkatsevych- @alinkedd (Discord l10n community) ('Apologies for the delayed reviews. I’m doing reviews completely asynchronously and sporadically at the moment.')
For New Translators
To translate a page:
- Check that no one else has claimed your page in the checklist and comments below. AND PLEASE, TAKE A PAGE WHICH IS LOWER IN HIERARCHY, NOT AN INDEX OR INTRO ONE--THESE DEPEND ON INNER PAGES!
- Comment below with the name of the page you would like to translate.
- Fork and clone this repo, translate your page, and submit a pull request back here!
Please take only one page at a time.
Before contributing, read the glossary and style guide 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.
(This list of topics was updated on 2025/10/17)
Learn React
-
Quick Start (@stanislavcodes) Finished translation of Quick Start page #466
- Tutorial: Tic Tac Toe (partially @BlindKai, help is needed to finish) Translate tutorial tic tac toe #532
- Thinking in React
-
Installation (@alinkedd) Finished translation of Installation page #500
Start a New React Project (@undead404) Finished translation of Start a New React Project #547- Creating a React App (mainly a copy from Start a New React Project; @alinkedd) Sync with react.dev @ 49284218 #591
Building a React Framework (@alinkedd) Sync with react.dev @ 49284218 #591- Build a React app from Scratch (partially a copy from Building a React Framework; @alinkedd) Sync with react.dev @ fc296034 #593
- Add React to an Existing Project (@bwv847) Finished translation of add-react-to-existing-project page #459
-
Setup (@alinkedd) Sync with react.dev @ 49284218 #591
- Editor Setup (@undead404) Finished translation of Editor Setup #548
- Using TypeScript (@alinkedd) Finished translation of Using Typescript page #507
- React Developer Tools (@alinkedd) Finished translation of React Developer Tools page #498
-
React Compiler - DO NOT TRANSLATE UNTIL SUBPAGES ARE TRANSLATED!
- Introduction
- Installation
- Incremental Adoption
- Debugging and Troubleshooting
-
Describing the UI (@alinkedd) Finished translation of Describing the UI page #513
- Your First Component (@litovskii-s) Finished translation of your first component page #458
- Importing and Exporting Components (@vadym-oliinyk) Add translation for "Importing and Exporting Components" page #464
- Writing Markup with JSX (@ltlaitoff) Finished translation of "Writing markup with JSX" page #485
- JavaScript in JSX with Curly Braces (@ltlaitoff) Finished translation of "JavaScript in JSX with Curly Braces" page #487
- Passing Props to a Component (@ltlaitoff) Finished translation of "Passing Props to a Component" page #495
- Conditional Rendering (@ltlaitoff) Finished translation of "Conditional rendering" page #497
- Rendering Lists (@alinkedd) Finished translation of Rendering Lists page #511
- Keeping Components Pure
- Your UI as a Tree (@alinkedd) Finished translation of Understanding Your UI as a Tree page #512
-
Adding Interactivity (@MinichMykyta)
Translated "adding interactivity" page #539Sync with react.dev @ 6326e7b1 #595- Responding to Events (@alinkedd) Finished translation of Responding to Events page #515
- State: A Component's Memory (@alinkedd)
Finished translation of State A Component's Memory #535Sync with react.dev @ fc296034 #593 - Render and Commit (@kpripper) Translation of the "Render and Commit" #534
- State as a Snapshot (@undead404) Finished translation of State as a Snapshot #549
- Queueing a Series of State Updates (@undead404) Finished translation of Queueing a Series of State Updates #552
- Updating Objects in State (@Stanislav-prog) Translated "Updating Objects in State" page #631
- Updating Arrays in State (@astropsy999) Updating arrays in state #553
-
Managing State (@tpostolyuk) Translate Managing State page #588 - waiting for subpages to be translated
- Reacting to Input with State (@undead404)
Finish translation of Reacting to Input with State #555Finish translation of Reacting to Input with State #581 - Choosing the State Structure (@undead404)
Finished translating Choosing the state structure #557Finish translation of Choosing the State Structure #582 - Sharing State Between Components (@Dmytrii248) Translate sharing state between components #594
- Preserving and Resetting State (@Dmytrii248) Translate preserving and resetting state #627
- Extracting State Logic into a Reducer (@dolgachio)
- Passing Data Deeply with Context
- Scaling Up with Reducer and Context (@astropsy999) Finished translation of "Scaling up with reducer and context" #561
- Reacting to Input with State (@undead404)
-
Escape Hatches - DO NOT TRANSLATE UNTIL SUBPAGES ARE TRANSLATED!
- 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@19Overview -
react@19: Hooks (@pavlosambur) docs(uk): translate hooks.md to Ukrainian #598-
useActionState(useFormState) (@mokhovyk) -
useCallback(@mokhovyk) docs(uk): translate useCallback.md to Ukrainian #634 -
useContext(@astropsy999) useContext.md finished #560 -
useDebugValue(@tysiachnyi) docs(uk): translate useDebugValue.md to Ukrainian #635 -
useDeferredValue -
useEffect(@Andrii256) docs(uk): translate useEffect.md to Ukrainian #641 -
useEffectEvent(@Andrii256) docs(uk): translate useEffectEvent.md to Ukrainian #642 -
useId(@LeoMorgan113) docs: translation for useId page #633 -
useImperativeHandle(@MaksymMohyla) Translated useImperativeHandlePage #592 -
useInsertionEffect -
useLayoutEffect -
useMemo -
useOptimistic- (prev version - @TanuhaUA translate useOptimistic to Ukrainian #637)
useOptimisticpage requires a new translation because of revamp (Sync with react.dev @ bd87c394 #656)
- (prev version - @TanuhaUA translate useOptimistic to Ukrainian #637)
-
useReducer -
useRef -
useState(@pavlosambur) docs: ✨ translate useState.md + minor terminology fixes #601 -
useSyncExternalStore -
useTransition
-
-
react@19: Components-
<Fragment> (<>)(needs additional translations!) (@syavik2001) (Finished translation of Fragment page #460) -
<Profiler>(@GeorgeShvab) (Finished translation of Profiler page #564) -
<StrictMode> -
<Suspense>(@GeorgeShvab) Finished translation of Suspense page #556 -
<Activity>(@Grenvals) -
<ViewTransition>(canary)
-
-
react@19: APIs-
act -
addTransitionType(canary) -
cache -
captureOwnerStack -
createContext -
lazy -
memo -
startTransition -
use - experimental
experimental_taintObjectReference - experimental
experimental_taintUniqueValue
-
-
react-dom@19: Hooks-
useFormStatus
-
-
react-dom@19: Components- Common (e.g.
<div>) -
<form> -
<input> -
<option> -
<progress> -
<select> -
<textarea> -
<link> -
<meta> -
<script> -
<style> -
<title>
- Common (e.g.
-
react-dom@19: APIs-
createPortal(@GeorgeShvab) (Finished translation of createPortal page #468) -
flushSync findDOMNodehydrate(@GeorgeShvab) (Finished translation of hydrate page #503)-
preconnect -
prefetchDNS -
preinit -
preinitModule -
preload -
preloadModule renderunmountComponentAtNode
-
-
react-dom@19/client: Client APIs-
createRoot -
hydrateRoot
-
-
react-dom@19/server: Server APIsrenderToNodeStream-
renderToPipeableStream -
renderToReadableStream -
renderToStaticMarkup renderToStaticNodeStream-
renderToString -
resume -
resumeToPipeableStream
-
react-dom@19/server: Static APIs-
prerender -
prerenderToNodeStream -
resumeAndPrerender -
resumeAndPrerenderToNodeStream
-
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) (@alinkedd) Sync with react.dev @ ab18d2f0 #596, Sync with react.dev @ 2859efa0 #602 - Sidebars (currently in
src/sidebar*.json) (@undead404) Translate titles in sidebar for pages already in Ukrainian #551 + every next article should be shipped with its title changed in the sidebar and/or footer; Sync with react.dev @ ab18d2f0 #596 - in progress - Top-level navigation (currently in
TopNav.tsx) (@alinkedd) Sync with react.dev @ ab18d2f0 #596 - Other UI
Added Ukrainian localization for Quick Start page #562(@alinkedd) Sync with react.dev @ ab18d2f0 #596 Sync with react.dev @ a3e9466d #609 Sync with react.dev @ 65d297e9 #610
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:
React Compiler
- Configuration
-
compilationMode -
gating -
logger -
panicThreshold -
target
-
- Directives
-
'use memo' -
'use no memo'
-
- Compiling Libraries
React Dev Tools
- React Performance tracks
Lints
- Lints (eslint-plugin-react-hooks)
- exhaustive-deps
- rules-of-hooks
- component-hook-factories
- config
- error-boundaries
- gating
- globals
- immutability
- incompatible-library
- preserve-manual-memoization
- purity
- refs
- set-state-in-effect
- set-state-in-render
- static-components
- unsupported-syntax
- use-memo
Rules of React
- Rules of React
- Components and Hooks must be pure
- React calls Components and Hooks
- Rules of Hooks
React Server Components
- Server Components
- Server Functions
- Directives
-
'use client' -
'use server'
-
Legacy APIs
- Legacy React APIs
-
Children -
cloneElement -
Component -
createElement createFactory-
createRef -
forwardRef(@GeorgeShvab) (Finished translation of forwardRef page #473) -
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:
- Versions (@alinkedd) Sync with react.dev @ 65d297e9 #610
- Community
- ...
- Translations (@alinkedd) Sync with react.dev @ f6d762cb #597
- Blog (intro) (@alinkedd) Sync with react.dev @ 65d297e9 #610
- articles
- Banner (@alinkedd) Sync with react.dev @ 55986965 #607
- Warnings
Activity
Kamilius commentedon May 4, 2023
I'll start translating
Editor Setuppagevadym-oliinyk commentedon May 11, 2023
Hi, I'll start translating
Importing and Exporting Componentspage.It's done in #464
gaearon commentedon May 16, 2023
Hi folks,
While I appreciate everyone’s requests to take a piece of the translation, the main issue right now is that it doesn’t appear that anyone on the original maintainer team is able to steer this translation effort.
Would anyone like to volunteer to do that?
bkatsevych commentedon May 17, 2023
Well, then I'd like to try
gaearon commentedon May 18, 2023
@bkatsevych Do you have some experience doing translations? We'd like to ideally either have maintainers who've done translations before, or to have more than one maintainer per translation.
bkatsevych commentedon May 18, 2023
@gaearon No, unfortunately I don't. But I'm willing to do my best
gaearon commentedon May 18, 2023
Alright, let's give it a try. I've added you to the repo. Thanks!
bkatsevych commentedon May 19, 2023
@eugenetree, go for it!
bkatsevych commentedon May 19, 2023
@PavelVyny go for it!
bkatsevych commentedon May 19, 2023
@sergii-zhuravel it's yours, go for it!
bkatsevych commentedon May 19, 2023
@dolynchuk Sounds good, go for it!
bkatsevych commentedon May 19, 2023
@gymnasy55 Go for it!
gaearon commentedon May 19, 2023
@bkatsevych Please also edit the post to include who's working on what.
bkatsevych commentedon May 19, 2023
I think it would be a good idea to come up with a solid naming convention for PRs. My version is something like "Finished translation of %page_name_in_quotes% page". Any suggestions are highly welcome
bkatsevych commentedon May 19, 2023
@EngiN33R Go for it!
bkatsevych commentedon May 19, 2023
@GeorgeShvab go for it!
bkatsevych commentedon May 19, 2023
@harddownloader go for it!
bkatsevych commentedon May 19, 2023
@stanislavcodes
Please, take only one page at a time.
Unfortunately,
Tutorial: Tic Tac Toewas already picked by @dolynchuk. In this case, I mark onlyQuick Startas claimed by you.Done in #466
bkatsevych commentedon May 19, 2023
@Kamilius that would be awesome!
bkatsevych commentedon May 26, 2023
@eugenetree any progress to share?
heorhiiss commentedon Jun 26, 2023
Hi, I've already translated one page, and I'd like to also translate
forwardRefDone in #473
bkatsevych commentedon Jun 26, 2023
@GeorgeShvab Great! Go for it!
ltlaitoff commentedon Oct 1, 2023
Hi, I would like to translate
Writing Markup with JSXbkatsevych commentedon Oct 1, 2023
Go for it!
ltlaitoff commentedon Oct 5, 2023
Hi, I would like to translate
JavaScript in JSX with Curly Bracesbkatsevych commentedon Oct 9, 2023
Go for it!
ltlaitoff commentedon Oct 11, 2023
Hi, I would like to translate
Passing Props to a ComponentAt this moment, the version of this article in this repository lags behind the main one. Can you update the version for translation, or how should I go about it?
Link to main - passing-props-to-a-component.md
Done in #495
ltlaitoff commentedon Nov 9, 2023
Hi, I would like to translate
Conditional RenderingDone in #497
bkatsevych commentedon Nov 9, 2023
@ltlaitoff Go for it
alinkedd commentedon Nov 19, 2023
Working on
React Developer Tools#498
alinkedd commentedon Nov 20, 2023
Working on
Installation#500
heorhiiss commentedon Nov 20, 2023
Hi, I would like to translate
hydratebkatsevych commentedon Nov 20, 2023
@GeorgeShvab go for it
alinkedd commentedon Nov 23, 2023
Working on
Using TypeScript#507
alinkedd commentedon Dec 6, 2023
Working on Rendering Lists
#511
poznianski commentedon Dec 17, 2023
Hi, I'd like to translate
useCallbackbkatsevych commentedon Dec 17, 2023
@poznianski go for it
alinkedd commentedon Dec 19, 2023
Working on
Your UI as a Tree#512
alinkedd commentedon Dec 22, 2023
Working on
Describing the UI#513
alinkedd commentedon Dec 22, 2023
Working on
Responding to Events#515
alinkedd commentedon Dec 22, 2023
@dolynchuk @gymnasy55 @sergii-zhuravel @Kamilius @EngiN33R @PavelVyny @eugenetree @harddownloader
Please, respond with any emoji to this comment if you're planning to finish your articles in the near future.
Otherwise I will unassign you after New Year's Eve, so we could keep the list relevant and complete some of the sections.
Also you're welcome to change an article by leaving a comment if you want so.
alinkedd commentedon Dec 25, 2023
Working on
State: A Component's Memory#535
alinkedd commentedon Jan 1, 2024
@dolynchuk @gymnasy55 @sergii-zhuravel @Kamilius @PavelVyny @eugenetree @harddownloader
Your articles were unassigned because you did not respond to the related comment above in time.
Nevertheless, we are glad to welcome you back if you wish to translate articles in the future.
heorhiiss commentedon Feb 3, 2024
Hi there, I would like to translate
<Suspense/>page.kpripper commentedon Mar 31, 2024
Hi, I'd like to translate Render and Commit
alinkedd commentedon Apr 1, 2024
I've created discord group https://discord.gg/WM6PmCpp7W to facilitate communication about Ukrainian technical translations, including work on React documentation. Feel free to join
@bkatsevych FYI
BlindKai commentedon Apr 1, 2024
Hello, there!
I would like to translate Tutorial: Tic-Tac-Toe page.
cc: @alinkedd
MinichMykyta commentedon May 14, 2024
Ima translate the "adding interactivity" page.
alinkedd commentedon May 15, 2024
@MinichMykyta
Thanks for the quick PR. Unfortunately, I wasn’t fast enough to mention that your section intro page ‘Adding Interactivity’ includes vocabulary, references, and examples from subpages. It would be better to translate these first and then use that content in your page for the sake of consistency and ease. I will keep this PR as a draft until all or almost all internal articles are translated. Nevertheless, I’m going to add some general feedback regarding common mistakes to help you get started with our translation process.
Please translate the subpages first next time. If you have any questions, feel free to ask me on Discord: https://discord.gg/WM6PmCpp7W.
MinichMykyta commentedon May 16, 2024
Got it, I am new to it. So feel free to take over whenever you think it's suitable (If you can do that on GitHub, of course). Otherwise, I'll start applying your feedback to the subpages right away.
I would like to translate the “Updating Objects in State” Subpage next.
undead404 commentedon Jul 13, 2024
I'd like to translate “Start a New React Project”
undead404 commentedon Jul 13, 2024
I'd like to translate “Editor Setup”
undead404 commentedon Jul 13, 2024
I'd like to translate “State as a Snapshot” (my todo)
undead404 commentedon Jul 14, 2024
I'd like to translate “Queuing a Series of State Updates”
alinkedd commentedon Jul 14, 2024
@undead404 okay, and please, first check my review on the Editor Setup so we encounter fewer issues later
astropsy999 commentedon Jul 15, 2024
Hi, there! I'll take "Updating Arrays in State"
alinkedd commentedon Jul 16, 2024
@astropsy999 Okay, thanks for your effort!
Please, check the README and TRANSLATION files before starting the translation.
Feel free to ask me anything either here or in our chat at Discord
undead404 commentedon Jul 19, 2024
I'd like to translate "Reacting to Input with State"
alinkedd commentedon Jul 19, 2024
@undead404 thanks of choosing other subpage article instead of chapter introductory page. Here is an explanation - #457 (comment). You may finish Managing State, when subpages are ready.
undead404 commentedon Jul 26, 2024
I'd like to translate "Choosing the State Structure"
astropsy999 commentedon Aug 15, 2024
I'll translate "useContext"
astropsy999 commentedon Aug 18, 2024
Next I'll take "Scaling Up with Reducer and Context", because there is a link to it in the previous one
heorhiiss commentedon Aug 23, 2024
Hi there, I would like to translate
<Profiler>. I want to note that I already have one PR in review, would it be okay to take<Profiler>while previous PR in review?dimal-dev commentedon Nov 25, 2024
Hi 👋, I'd like to translate "Extracting State Logic into a Reducer"
alinkedd commentedon Dec 29, 2024
@EngiN33R will you translate Keeping Components Pure?
@MinichMykyta will you translate Updating Objects in State?
@dimal-dev will translate Extracting State Logic into a Reducer?
@poznianski will you translate
useCallback?Please respond with any emoji to this comment if you plan to translate the articles assigned to you in the near future.
Otherwise, I will unassign you after New Year's Eve to keep the list relevant. Nevertheless, you're always welcome to contribute at any time later.
Andygol commentedon Dec 30, 2024
Hi there!
Perhaps this issue has already been discussed, I didn't look deeper, but has the case of using platforms for translation and keeping content up-to-date been considered?
The use of one of these (CAT, Computer-Assisted Translation)1 platforms will avoid the process of booking a separate document by one of the participants, allow for cooperative work on one document, speed up the process of making changes and their review and approval for further publication.
Footnotes
https://phrase.com/blog/posts/cat-tools/ ↩
alinkedd commentedon Dec 31, 2024
@Andygol, thank you for the suggestion. The issue isn't booking a page for translation or the review process itself—those aren't the main challenges. The main problem right now is that I'm the only active maintainer, and I simply don't have enough time. Other challenges include the large size of the Learn articles, the limited availability of other contributors, and PRs requiring my thorough review, which can sometimes take up to three evenings.
It would be very helpful to reduce review time by integrating tools like a language checker in PRs, similar to what the team at webdoky has done. These tools could include language checkers, spell checkers, punctuation validators, and similar features. This way, maintainers wouldn't have to spend time fixing simple issues, such as incorrect dashes or prepositions.
alinkedd commentedon Jan 14, 2025
@EngiN33R @MinichMykyta @dimal-dev @poznianski
Your unstarted articles were unassigned because you did not respond to the related comment above in time.
Nevertheless, we are glad to welcome you back if you wish to translate articles in the future.
MykytaMinich commentedon Jan 14, 2025
Hey @alinkedd, I fell out of the loop after translating the last article. I hope to come back in the future, but I don't think I will be able to translate it any time soon, so it's better to open it for others:)
Sorry for not responding earlier.
alinkedd commentedon Jan 14, 2025
@MinichMykyta welcome anytime :)
p.s. I'll finish #539 myself
dimal-dev commentedon Jan 17, 2025
@alinkedd sorry, I missed your question earlier.
I'm still working on 'Extracting State Logic into a Reducer.'
I've had a lot of other tasks lately, so it's taking longer than I'd like.
Could you please reassign the 'Extracting State Logic into a Reducer' topic to me?
alinkedd commentedon Jan 17, 2025
@dimal-dev reassigned 🤝
Dmytrii248 commentedon Feb 5, 2025
I'd like to translate "Sharing State Between Components"
MaksymMohyla commentedon Feb 21, 2025
Hello! I'd like to translate
useImperativeHandle.pavlosambur commentedon Mar 26, 2025
Hi, I’d like to translate
hooks. Can I take it?alinkedd commentedon Mar 27, 2025
@pavlosambur please, next time take a page which is lower in the hierarchy, a subpage, not an intro or index one, 'cause the last depend on those inner subpages. I won't make your PR a draft, 'cause it is small and easier to review now than to wait, but next time, please, be aware of it
pavlosambur commentedon Mar 27, 2025
can I take
useStatepage?alinkedd commentedon Mar 28, 2025
@pavlosambur sure
Dmytrii248 commentedon May 5, 2025
Hi! I would like to translate
Preserving and Resetting Statedimal-dev commentedon Jun 17, 2025
@alinkedd I'm sorry, I won't be able to finish the "Extracting State Logic into a Reducer" topic. Could you please unassign me so that others could pick it up?
Stanislav-prog commentedon Oct 3, 2025
Hi, I would like to translate
Updating Objects in Statetopicdolgachio commentedon Oct 12, 2025
Hi, I would like to take
Extracting State Logic into a ReducerGrenvals commentedon Oct 14, 2025
Hi! I would like to translate "Activity"
Andrii256 commentedon Oct 17, 2025
Hi!
I would like to translate
useEffectEventanduseEffectLeoMorgan113 commentedon Oct 17, 2025
Hi!
I would like to transtate
useIdpagemokhovyk commentedon Oct 18, 2025
Hi there! I would like to translate
useCallbackDone in #634
mokhovyk commentedon Oct 23, 2025
Hi there! I would like to translate
useActionStatetysiachnyi commentedon Oct 26, 2025
Hey! I would like to translate useDebugValue
TanuhaUA commentedon Oct 29, 2025
Hi! I would like to translate
useOptimisticpage.riddman commentedon Aug 21, 2026
Hello! I would like to translate
Synchronizing with Effectspage