Phoenix Localized Routes - Localized/multilingual routes in Phoenix

Have a meeting to catch. So short notice: Verified Routes can be tested by the brave ones! I advice to clone the branch and try with a local path in mix.ex.

  • By default it uses ~l for localized verified routes, this can be set in the config. For example sigil: "q".
  • When setting sigil: "p". You have to set sigil_original: so the ‘former ~p’ is aliased. An info message will be printed at compile time to remind you and other developers about what sigil does what.
  • README etc not done yet. It’s an early commit.

Working Verified Routes Branch
Comments / bug reports can be put in the PR
Raw Example App with here the code changes for Localized Routes.

@kip: how about that? So much simpler than helpers!



This version got released to and can be tested by adding/changing the dep in mix.exs:

      {:phoenix_localized_routes, "~> 0.1.3-rc.1"}

Call for testers

Please help me test this release by

  • upgrading your existing installation. There should be no breaking changes.
  • using this lib with Phoenix 1.7 (view Usage Guide @ Github)

Issues can be reported here


Support Phoenix Verified Routes

Phoenix 1.7 includes a new Phoenix.VerifiedRoutes feature which provides ~p for route generation with compile-time verification.

This release adds support for Localized Verified Routes using sigil ~l. The sigil can be customized by setting the sigil_localized option in the configuration.

Overriding sigil ~p

The default sigil ~p used by Phoenix.VerifiedRoutes can be overridden by setting sigil_localized: "~p". When doing so, the original sigil is by default renamed to ~o. This can be customized by setting the sigil_original option.


For an example of how to implement Phoenix Localized Routes using the new Verified Routes, have a look at the commits of the example app (branch bo/1.7).

Other changes

  • Use Phoenix.Component.assign for Phoenix >= 1.7


The Example App is now live @


15 posts were split to a new topic: Posts from phoenix_localized_routes

My dear lib followers,

Work at Verified Routes support urged me to refactor this lib. As a result…another Proof of Concept saw the light of day.

TLDR; let’s split up Phoenix Localized Routes - Localized/multilingual routes in Phoenix so developers can pick what features they need instead of importing one ‘do-it-all’, or write features themselves in a few lines of code.

But I have not forgotten you!

Routex has almost feature parity with Phoenix Localized Routes already, only one or two extensions yet to be written. Minor modifications might be needed to the backend module / configuration but it’s almost a drop-in replacement.

Routex` Assigns extension supports custom namespaces, so I chose @loc for the Example app. The Example app is actually just the Example App from Localized Route with a few tiny modifications; mostly ‘naming’ things which should be migratable with a search-replace.

I would like to gather feedback on the idea before any release! So please let me know what your routing needs are so I can see if/how that would fit in the Routex ecosystem; being an extension or part of the framework itself.

Link to Routex topic