Skip to content

Multilingual#45

Merged
asolntsev merged 2 commits intomasterfrom
multilingual
Apr 14, 2026
Merged

Multilingual#45
asolntsev merged 2 commits intomasterfrom
multilingual

Conversation

@asolntsev
Copy link
Copy Markdown
Member

No description provided.

asolntsev and others added 2 commits April 14, 2026 23:00
Both selenide.org (EN) and ru.selenide.org (RU) now build from this
single project. Shared CSS/JS/images/templates live once; per-language
content sits in content/en/ and content/ru/; UI strings are in i18n/.

Production builds use hugo-en.toml / hugo-ru.toml overrides to disable
the other language so each site serves its language at the root. The
Actions workflow builds both and deploys EN to this repo's Pages and
RU cross-repo to selenide/selenide-ru via RU_SELENIDE_ORG_DEPLOY_TOKEN.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Server-render the EN/RU links using .RelPermalink so each link points
to the same path on the other language's domain. Remove the JS
setupLanguageSelector() that overwrote these hrefs with a broken regex
(which produced ru.ru.selenide.org when already on the RU subdomain).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 14, 2026

Important

Review skipped

Too many files!

This PR contains 300 files, which is 150 over the limit of 150.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0de83eed-e081-45e5-99ec-4dfca77d5ff0

📥 Commits

Reviewing files that changed from the base of the PR and between 0d95b6f and 935c5fa.

📒 Files selected for processing (300)
  • .github/workflows/hugo.yml
  • .gitignore
  • CLAUDE.md
  • content/en/_index.md
  • content/en/archive.md
  • content/en/blog/2013-04-23-what-is-selenide.md
  • content/en/blog/2013-05-09-video-selenide-on-seleniumcamp.md
  • content/en/blog/2013-07-15-can-phantomjs-take-screenshots.md
  • content/en/blog/2013-08-29-selenide-harlem-shake.md
  • content/en/blog/2013-10-04-selenide-tshirt.md
  • content/en/blog/2014-03-11-selenide-in-5-minutes.md
  • content/en/blog/2014-03-12-selenide-downloads.md
  • content/en/blog/2014-03-15-selenide-2.9.md
  • content/en/blog/2014-04-27-selenide-2.10.md
  • content/en/blog/2014-05-23-selenide-2.11.md
  • content/en/blog/2014-07-05-selenide-2.12.md
  • content/en/blog/2014-08-08-shorten-your-code.md
  • content/en/blog/2014-08-25-selenide-usage-notes.md
  • content/en/blog/2014-09-28-selenide-2.13-and-2.14.md
  • content/en/blog/2014-10-01-how-to-start-writing-ui-tests.md
  • content/en/blog/2014-11-03-selenide-2.15.md
  • content/en/blog/2014-12-09-you-find-wrong-bugs.md
  • content/en/blog/2014-12-13-the-fast-and-the-continuous.md
  • content/en/blog/2014-12-17-time-for-refactoring.md
  • content/en/blog/2014-12-28-how-to-test-gmail.md
  • content/en/blog/2015-05-05-selenide-2.16-and-2.17.md
  • content/en/blog/2015-05-06-selenide-2.18.md
  • content/en/blog/2015-06-21-selenide-2.19.md
  • content/en/blog/2015-07-27-selenide-2.20.md
  • content/en/blog/2015-08-29-selenide-2.22.md
  • content/en/blog/2015-09-15-selenide-2.23.md
  • content/en/blog/2015-09-23-selenide-on-seleniumconf.md
  • content/en/blog/2015-11-08-selenide-2.24.md
  • content/en/blog/2015-11-13-selenide-on-devoxx.md
  • content/en/blog/2015-11-16-selenide-changes-license-to-mit.md
  • content/en/blog/2015-11-30-selenide-2.25.md
  • content/en/blog/2015-11-30-selenide-3.0.md
  • content/en/blog/2016-01-17-selenide-3.1.md
  • content/en/blog/2016-01-29-selenide-3.2.md
  • content/en/blog/2016-02-11-selenide-3.3.md
  • content/en/blog/2016-03-31-selenide-3.5.md
  • content/en/blog/2016-06-01-selenide-3.6.md
  • content/en/blog/2016-07-08-selenide-3.7.md
  • content/en/blog/2016-08-06-selenide-3.8.md
  • content/en/blog/2016-08-27-selenide-3.9.1.md
  • content/en/blog/2016-09-03-selenide-3.9.2.md
  • content/en/blog/2016-09-26-selenide-3.10.md
  • content/en/blog/2016-09-28-bdd-with-selenide.md
  • content/en/blog/2016-10-14-selenide-3.11.md
  • content/en/blog/2016-10-15-selenide-4.0.md
  • content/en/blog/2016-10-20-selenide-vs-pure-selenium.md
  • content/en/blog/2016-11-16-selenide-on-topconf.md
  • content/en/blog/2016-12-01-selenide-4.1.md
  • content/en/blog/2016-12-30-selenide-4.2.md
  • content/en/blog/2017-01-26-selenide-4.2.1.md
  • content/en/blog/2017-02-09-selenide-4.3.md
  • content/en/blog/2017-06-26-selenide-4.5.md
  • content/en/blog/2017-09-09-selenide-4.6.md
  • content/en/blog/2017-09-30-selenide-4.7.md
  • content/en/blog/2017-10-08-selenide-4.8.md
  • content/en/blog/2017-12-20-selenide-4.9.md
  • content/en/blog/2018-01-12-selenide-4.10.md
  • content/en/blog/2018-04-02-selenide-4.11.md
  • content/en/blog/2018-04-03-selenide-4.11.1.md
  • content/en/blog/2018-04-25-selenide-4.11.2.md
  • content/en/blog/2018-05-08-selenide-4.11.3.md
  • content/en/blog/2018-05-09-selenide-4.11.4.md
  • content/en/blog/2018-06-02-selenide-4.12.1.md
  • content/en/blog/2018-06-27-selenide-4.12.2.md
  • content/en/blog/2018-07-17-selenide-4.12.3.md
  • content/en/blog/2018-08-20-selenide-4.13.0.md
  • content/en/blog/2018-08-29-selenide-4.14.0.md
  • content/en/blog/2018-10-10-selenide-5.0.0.md
  • content/en/blog/2018-11-07-selenide-5.0.1.md
  • content/en/blog/2018-12-31-selenide-5.1.1.md
  • content/en/blog/2019-02-19-selenide-5.2.0.md
  • content/en/blog/2019-05-07-selenide-5.2.3.md
  • content/en/blog/2019-06-20-selenide-5.2.4.md
  • content/en/blog/2019-07-08-code-simplicity.md
  • content/en/blog/2019-08-01-selenide-5.2.7.md
  • content/en/blog/2019-09-02-selenide-5.3.0.md
  • content/en/blog/2019-09-07-selenide-5.3.1.md
  • content/en/blog/2019-10-16-selenide-5.4.0.md
  • content/en/blog/2019-10-31-selenide-5.5.0.md
  • content/en/blog/2019-11-29-selenide-5.5.1.md
  • content/en/blog/2019-12-01-advent-calendar-main-algorithm.md
  • content/en/blog/2019-12-02-advent-calendar-how-to-abuse-selenide.md
  • content/en/blog/2019-12-03-advent-calendar-set-webdriver-vs-webdriver-provider.md
  • content/en/blog/2019-12-04-advent-calendar-effective-size-check.md
  • content/en/blog/2019-12-06-advent-calendar-visualize-click.md
  • content/en/blog/2019-12-07-advent-calendar-csrf-protection.md
  • content/en/blog/2019-12-09-advent-calendar-statics.md
  • content/en/blog/2019-12-10-advent-calendar-download-files.md
  • content/en/blog/2019-12-12-advent-calendar-actions.md
  • content/en/blog/2019-12-15-advent-calendar-drag-and-drop.md
  • content/en/blog/2019-12-16-advent-calendar-browser-logs.md
  • content/en/blog/2019-12-17-advent-calendar-browser-logs-with-js.md
  • content/en/blog/2019-12-18-advent-calendar-network-logs-with-proxy.md
  • content/en/blog/2019-12-20-advent-calendar-big-wait-theory.md
  • content/en/blog/2019-12-22-advent-calendar-defaulta-lingvo.md
  • content/en/blog/2019-12-24-advent-calendar-javascript-tricks.md
  • content/en/blog/2019-12-26-selenide-5.6.0.md
  • content/en/blog/2020-01-14-selenide-5.6.1.md
  • content/en/blog/2020-02-07-selenide-5.7.0.md
  • content/en/blog/2020-02-28-selenide-5.8.0.md
  • content/en/blog/2020-03-10-selenide-5.9.0.md
  • content/en/blog/2020-03-18-selenide-5.10.0.md
  • content/en/blog/2020-04-19-selenide-5.11.0.md
  • content/en/blog/2020-04-21-selenide-5.11.1.md
  • content/en/blog/2020-05-23-selenide-5.12.0.md
  • content/en/blog/2020-05-25-selenide-5.12.1.md
  • content/en/blog/2020-05-29-selenide-5.12.2.md
  • content/en/blog/2020-07-08-selenide-5.13.0.md
  • content/en/blog/2020-08-17-selenide-5.14.0.md
  • content/en/blog/2020-09-26-selenide-5.15.0.md
  • content/en/blog/2020-11-17-why-proxy-does-not-work-in-selenoid.md
  • content/en/blog/2020-11-20-selenide-5.16.0.md
  • content/en/blog/2020-11-25-selenide-5.16.2.md
  • content/en/blog/2020-12-26-selenide-5.17.0.md
  • content/en/blog/2020-12-30-selenide-5.17.2.md
  • content/en/blog/2021-01-23-selenide-5.18.0.md
  • content/en/blog/2021-02-11-selenide-5.18.1.md
  • content/en/blog/2021-02-24-selenide-5.19.0.md
  • content/en/blog/2021-03-23-selenide-5.20.1.md
  • content/en/blog/2021-05-15-selenide-5.21.0.md
  • content/en/blog/2021-06-08-selenide-5.22.0.md
  • content/en/blog/2021-07-05-selenide-5.22.3.md
  • content/en/blog/2021-07-16-selenide-5.23.0.md
  • content/en/blog/2021-08-29-selenide-5.24.0.md
  • content/en/blog/2021-09-28-selenide-5.25.0.md
  • content/en/blog/2021-10-25-selenide-6.0.1.md
  • content/en/blog/2021-11-23-selenide-6.1.0.md
  • content/en/blog/2021-11-24-selenide-6.1.1.md
  • content/en/blog/2022-01-10-selenide-6.2.0.md
  • content/en/blog/2022-02-07-selenide-6.3.0.md
  • content/en/blog/2022-04-07-selenide-6.4.0.md
  • content/en/blog/2022-05-17-selenide-6.5.0.md
  • content/en/blog/2022-06-08-selenide-6.6.0.md
  • content/en/blog/2022-06-12-selenide-6.6.3.md
  • content/en/blog/2022-06-20-selenide-6.6.4.md
  • content/en/blog/2022-07-01-selenide-6.6.6.md
  • content/en/blog/2022-08-04-selenide-6.7.0.md
  • content/en/blog/2022-08-14-selenide-6.7.2.md
  • content/en/blog/2022-08-22-selenide-puzzler.md
  • content/en/blog/2022-08-27-selenide-6.7.3.md
  • content/en/blog/2022-09-05-selenide-6.7.4.md
  • content/en/blog/2022-09-24-selenide-6.8.0.md
  • content/en/blog/2022-09-27-selenide-6.8.1.md
  • content/en/blog/2022-10-07-selenide-6.9.0.md
  • content/en/blog/2022-11-21-selenide-6.10.0.md
  • content/en/blog/2022-12-08-selenide-6.10.2.md
  • content/en/blog/2023-01-03-selenide-6.11.0.md
  • content/en/blog/2023-01-20-selenide-6.11.1.md
  • content/en/blog/2023-02-24-selenide-6.12.0.md
  • content/en/blog/2023-03-09-selenide-6.12.2.md
  • content/en/blog/2023-03-23-selenide-6.12.4.md
  • content/en/blog/2023-04-01-selenide-6.13.0.md
  • content/en/blog/2023-04-04-selenide-6.13.0.md
  • content/en/blog/2023-05-08-selenide-6.14.0.md
  • content/en/blog/2023-05-29-selenide-6.15.0.md
  • content/en/blog/2023-07-02-selenide-6.16.0.md
  • content/en/blog/2023-07-24-selenide-6.16.1.md
  • content/en/blog/2023-08-02-selenide-6.17.0.md
  • content/en/blog/2023-08-20-selenide-6.17.1.md
  • content/en/blog/2023-08-24-selenide-6.17.2.md
  • content/en/blog/2023-09-06-selenide-6.18.0.md
  • content/en/blog/2023-09-28-selenide-6.19.0.md
  • content/en/blog/2023-10-18-selenide-6.19.1.md
  • content/en/blog/2023-10-25-selenide-7.0.0.md
  • content/en/blog/2023-10-26-selenide-7.0.1.md
  • content/en/blog/2024-02-07-selenide-7.1.0.md
  • content/en/blog/2024-02-27-selenide-7.2.0.md
  • content/en/blog/2024-04-28-selenide-7.3.1.md
  • content/en/blog/2024-09-15-selenide-7.5.0.md
  • content/en/blog/2024-11-24-selenide-7.6.0.md
  • content/en/blog/2025-01-03-year-summary.md
  • content/en/blog/2025-01-07-selenide-7.7.0.md
  • content/en/blog/2025-04-02-selenide-7.8.0.md
  • content/en/blog/2025-04-19-selenide-7.9.0.md
  • content/en/blog/2025-05-08-selenide-7.9.2.md
  • content/en/blog/2025-05-27-selenide-7.9.3.md
  • content/en/blog/2025-07-05-selenide-7.9.4.md
  • content/en/blog/2025-08-20-selenide-7.10.0.md
  • content/en/blog/2025-10-04-selenide-7.11.1.md
  • content/en/blog/2025-10-29-selenide-7.12.0.md
  • content/en/blog/2025-12-14-selenide-7.13.0.md
  • content/en/blog/2026-01-21-selenide-7.14.0.md
  • content/en/blog/2026-03-11-selenide-7.15.0.md
  • content/en/blog/2026-04-10-selenide-7.16.0.md
  • content/en/blog/_index.md
  • content/en/contacts.md
  • content/en/documentation/_index.md
  • content/en/documentation/clouds.md
  • content/en/documentation/page-objects.md
  • content/en/documentation/reports.md
  • content/en/documentation/screenshots.md
  • content/en/documentation/selenide-vs-selenium.md
  • content/en/faq.md
  • content/en/javadoc.md
  • content/en/quick-start.md
  • content/en/quotes.md
  • content/en/thanks.md
  • content/en/users.md
  • content/ru/_index.md
  • content/ru/blog/2013-04-23-what-is-selenide.md
  • content/ru/blog/2013-05-09-video-selenide-on-seleniumcamp.md
  • content/ru/blog/2013-07-15-can-phantomjs-take-screenshots.md
  • content/ru/blog/2013-08-29-selenide-harlem-shake.md
  • content/ru/blog/2013-10-04-selenide-tshirt.md
  • content/ru/blog/2014-03-11-selenide-in-5-minutes.md
  • content/ru/blog/2014-03-12-selenide-downloads.md
  • content/ru/blog/2014-03-15-selenide-2.9.md
  • content/ru/blog/2014-04-27-selenide-2.10.md
  • content/ru/blog/2014-05-23-selenide-2.11.md
  • content/ru/blog/2014-07-05-selenide-2.12.md
  • content/ru/blog/2014-08-08-shorten-your-code.md
  • content/ru/blog/2014-08-25-selenide-usage-notes.md
  • content/ru/blog/2014-09-25-how-to-start-writing-ui-tests.md
  • content/ru/blog/2014-09-28-selenide-2.13-and-2.14.md
  • content/ru/blog/2014-10-12-selenide-at-confetqa.md
  • content/ru/blog/2014-11-03-selenide-2.15.md
  • content/ru/blog/2014-12-09-you-find-wrong-bugs.md
  • content/ru/blog/2014-12-13-the-fast-and-the-continuous.md
  • content/ru/blog/2014-12-17-time-for-refactoring.md
  • content/ru/blog/2014-12-28-how-to-test-gmail.md
  • content/ru/blog/2015-05-05-selenide-2.16-and-2.17.md
  • content/ru/blog/2015-05-06-selenide-2.18.md
  • content/ru/blog/2015-06-21-selenide-2.19.md
  • content/ru/blog/2015-07-27-selenide-2.20.md
  • content/ru/blog/2015-08-29-selenide-2.22.md
  • content/ru/blog/2015-09-15-selenide-2.23.md
  • content/ru/blog/2015-09-23-selenide-on-seleniumconf.md
  • content/ru/blog/2015-11-08-selenide-2.24.md
  • content/ru/blog/2015-11-13-selenide-on-devoxx.md
  • content/ru/blog/2015-11-16-selenide-changes-license-to-mit.md
  • content/ru/blog/2015-11-30-selenide-2.25.md
  • content/ru/blog/2015-11-30-selenide-3.0.md
  • content/ru/blog/2016-01-17-selenide-3.1.md
  • content/ru/blog/2016-01-29-selenide-3.2.md
  • content/ru/blog/2016-02-11-selenide-3.3.md
  • content/ru/blog/2016-03-31-selenide-3.5.md
  • content/ru/blog/2016-04-17-airtickets.md
  • content/ru/blog/2016-06-01-selenide-3.6.md
  • content/ru/blog/2016-07-08-selenide-3.7.md
  • content/ru/blog/2016-08-06-selenide-3.8.md
  • content/ru/blog/2016-08-27-selenide-3.9.1.md
  • content/ru/blog/2016-09-03-selenide-3.9.2.md
  • content/ru/blog/2016-09-26-selenide-3.10.md
  • content/ru/blog/2016-10-14-selenide-3.11.md
  • content/ru/blog/2016-10-15-selenide-4.0.md
  • content/ru/blog/2016-10-20-selenide-vs-pure-selenium.md
  • content/ru/blog/2016-11-16-selenide-on-topconf.md
  • content/ru/blog/2016-12-01-selenide-4.1.md
  • content/ru/blog/2016-12-30-selenide-4.2.md
  • content/ru/blog/2017-01-26-selenide-4.2.1.md
  • content/ru/blog/2017-02-09-selenide-4.3.md
  • content/ru/blog/2017-06-26-selenide-4.5.md
  • content/ru/blog/2017-09-09-selenide-4.6.md
  • content/ru/blog/2017-09-30-selenide-4.7.md
  • content/ru/blog/2017-10-08-selenide-4.8.md
  • content/ru/blog/2017-12-20-selenide-4.9.md
  • content/ru/blog/2018-01-12-selenide-4.10.md
  • content/ru/blog/2018-04-02-selenide-4.11.md
  • content/ru/blog/2018-04-03-selenide-4.11.1.md
  • content/ru/blog/2018-04-25-selenide-4.11.2.md
  • content/ru/blog/2018-05-08-selenide-4.11.3.md
  • content/ru/blog/2018-05-09-selenide-4.11.4.md
  • content/ru/blog/2018-06-02-selenide-4.12.1.md
  • content/ru/blog/2018-06-27-selenide-4.12.2.md
  • content/ru/blog/2018-07-17-selenide-4.12.3.md
  • content/ru/blog/2018-08-20-selenide-4.13.0.md
  • content/ru/blog/2018-08-29-selenide-4.14.0.md
  • content/ru/blog/2018-10-10-selenide-5.0.0.md
  • content/ru/blog/2018-11-07-selenide-5.0.1.md
  • content/ru/blog/2018-12-31-selenide-5.1.1.md
  • content/ru/blog/2019-02-19-selenide-5.2.0.md
  • content/ru/blog/2019-05-07-selenide-5.2.3.md
  • content/ru/blog/2019-06-20-selenide-5.2.4.md
  • content/ru/blog/2019-07-08-code-simplicity.md
  • content/ru/blog/2019-08-01-selenide-5.2.7.md
  • content/ru/blog/2019-09-02-selenide-5.3.0.md
  • content/ru/blog/2019-09-07-selenide-5.3.1.md
  • content/ru/blog/2019-10-16-selenide-5.4.0.md
  • content/ru/blog/2019-10-31-selenide-5.5.0.md
  • content/ru/blog/2019-11-29-selenide-5.5.1.md
  • content/ru/blog/2019-12-01-advent-calendar-main-algorithm.md
  • content/ru/blog/2019-12-02-advent-calendar-how-to-abuse-selenide.md
  • content/ru/blog/2019-12-03-advent-calendar-set-webdriver-vs-webdriver-provider.md
  • content/ru/blog/2019-12-04-advent-calendar-effective-size-check.md
  • content/ru/blog/2019-12-06-advent-calendar-visualize-click.md
  • content/ru/blog/2019-12-07-advent-calendar-csrf-protection.md
  • content/ru/blog/2019-12-09-advent-calendar-statics.md
  • content/ru/blog/2019-12-10-advent-calendar-download-files.md
  • content/ru/blog/2019-12-12-advent-calendar-actions.md
  • content/ru/blog/2019-12-15-advent-calendar-drag-and-drop.md
  • content/ru/blog/2019-12-16-advent-calendar-browser-logs.md
  • content/ru/blog/2019-12-17-advent-calendar-browser-logs-with-js.md
  • content/ru/blog/2019-12-18-advent-calendar-network-logs-with-proxy.md
  • content/ru/blog/2019-12-20-advent-calendar-big-wait-theory.md
  • content/ru/blog/2019-12-22-advent-calendar-defaulta-lingvo.md

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch multilingual

Comment @coderabbitai help to get the list of available commands and usage tips.

@asolntsev asolntsev merged commit 13a72f8 into master Apr 14, 2026
5 checks passed
@asolntsev asolntsev deleted the multilingual branch April 14, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant