Two languages are pairs of URLs, not a button that hides half the copy. Each page has an English URL and a Russian one. Both heads point at each other and at x-default.
A pair of addresses
English lives at the root, Russian under /ru/. An article keeps the same path tail in both languages, so the switch lands on the same piece, not on the blog root. x-default usually points at English when English is primary.
Not a stub
An English paragraph inside a Russian page does not make it the English version. Either a separate URL with real copy, or one language. The same text on two addresses gets folded. A translation does not.
The switch
These are ordinary links. A button with no href does not exist for a crawler. On an article the link goes to the same article. If the translation is not ready, that page has no switch — do not point at an empty stub.
The canonical address
Each version canonicals to itself. Do not fold both languages into one canonical: they are different documents. The sitemap lists both, with alternate links to each other.
How those pairs land in the map file — the note on sitemap and robots. What to put in the brief about languages — the note on a brief.