多言語化アプリで切り替えると{{routes.root_url}}の出力がドメイン名/enになってページ遷移しない問題

Topic summary

多言語化アプリ「Hextom: Translate My Store」で英語版に切り替えた際、カスタマイズしたメニューリンクが正しく動作しない問題が報告されています。

問題の詳細:

  • aタグに{{routes.root_url}}pages/sampleを設置
  • 英語切り替え時の出力がexample.com/enpages/sampleとなる
  • スラッシュが不足しているため404エラーでページ遷移できない

提案された解決策:
言語ごとの条件分岐でaタグのリンクを変更する必要があるが、Liquidコードを使用せずに対応する方法として、以下のコードが提案されました:

{{ routes.root_url | append: "/" | replace: "//", "/" }}pages/sample

この記述により、スラッシュを適切に挿入し、example.com/en/pages/sampleのような正しいURLを生成できる可能性があります。

Summarized with AI on November 14. AI used: claude-sonnet-4-5-20250929.

多言語化アプリ「Hextom: Translate My Store」で英語を追加。

メニューリンクは独自カスタマイズし、aタグに{{routes.root_url}}pages/sampleと設置。

通常の出力だと 英語に切り替えると、

sample.com/enpages/sampleとなり404エラーでページ遷移しません。

{{routes.root_url}}リキッドコードを使わず、/pages/sampleに変更すると英語版でのページ遷移ができなくなります。

言語ごとにaタグのリンクを条件分岐で変更する必要があるのでしょうか?

example.com/enpages/sample

該当のアプリは把握していませんが、上記の問題はスラッシュが不足しているからだと思いますので、以下のようにスラッシュがつくように書けば問題はでないのではと思います。

sample.com/en/pages/sample

例えば多少無理やりですが以下のように書くなどです。

{{  routes.root_url | append: "/sample" | replace: "//", "/" }}