-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added support for localizable routes #1824
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
exyi
approved these changes
Jul 12, 2024
src/Framework/Framework/Hosting/Middlewares/DotvvmRoutingMiddleware.cs
Outdated
Show resolved
Hide resolved
public bool Contains(string routeName) | ||
{ | ||
return dictionary.ContainsKey(routeName); | ||
} | ||
|
||
public bool TryGetValue(string routeName, out RouteBase? route) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggested change
public bool TryGetValue(string routeName, out RouteBase? route) | |
public bool TryGetValue(string routeName, [MaybeNullWhen(false)] out RouteBase? route) |
tomasherceg
force-pushed
the
feature/route-localization
branch
from
July 14, 2024 07:49
e1951ab
to
9812574
Compare
tomasherceg
force-pushed
the
feature/route-localization
branch
from
August 1, 2024 15:46
8c5123a
to
b247302
Compare
tomasherceg
force-pushed
the
feature/route-localization
branch
from
August 1, 2024 16:49
b247302
to
2695c3b
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds support to define multiple route URLs for the same route that will apply in different request cultures.
A default route URL, which is applied for any unmatched language, is required.
The primary motivation for this is using the same route name for all language versions of the same page. Without that, the route name for each language would have to be different and thus dynamically computed for all
RouteLink
controls in the application).The
RouteLink
control was extended with theCulture
property to generate a link to the specified route for a different culture (to allow easy language switching).The route matching assumes that the request culture is already set.
Detection of the language must be done at the beginning of the request pipeline:
CultureInfo.CurrentCulture
andCultureInfo.CurrentUICulture
, but you must also callcontext.Set(HostingConstants.OwinDoNotSetRequestCulture, true);
to prevent DotVVM from overwriting the current culture toconfiguration.DefaultCulture
.LocalizablePresenter
is not supported for this feature as it detects the request culture too late.Also, the localization is currently unavailable for URL segments defined in route groups.