Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#2
What problem does this pull request solve?
The
NodeTranslator
class is large and complex, making it difficult to understand.- When a problem occurs, it is difficult to localize the issue because the class is large and contains many complex interactions between different private fields. The solution to the problem will take more time.
- The code is hard to understand, so developers will have to spend more time reading and comprehending it.
Key changes:
As a result, three classes were created:
LazyTranslator
– encapsulates IntersectionObserver logic; its purpose is to translate nodes lazily when they enter the veiwport.DomTranslationProcessor
– responsible for translating nodes, containing logic for priority determination, prevent repeated translation, methods for managing node translation, and everything necessary for translation. (Internally uses methods from the LazyTranslator class lazy translation)NodeTranslator
– connects the previous two classes and provides methods for DOM translation.