@startuml actor User participant Browser participant Server User -> Browser: discours.io activate Browser Browser -> Server: GET\nquery { lng }\ncookies { lng } opt lng in query Server -> Server: lng = lng from query else no lng in query opt lng in cookies Server -> Server: lng = lng from cookies else no lng in cookies Server -> Server: lng = 'ru' end opt end opt note right _dafault.page.server.ts render end note opt i18next is not initialized Server -> Server: initialize i18next with lng else i18next not initialized Server -> Server: change i18next language to lng end opt note right all resources loaded synchronously end note Server --> Browser: pageContext { lng } Browser -> Browser: init client side i18next with http backend activate Browser Browser -> Server: get translations for current language Server --> Browser: translations JSON deactivate Browser Browser -> Browser: render page Browser --> User: rendered page deactivate Browser @enduml