Skip to content

Multilingual redirects broken, add optional target language #53

@giancarlosotelo

Description

@giancarlosotelo

Problem
At the moment the redirect module is not working as intended for a variety of multilingual scenarios.
For example when we create a redirect with a redirect language in the source path, it is not working at all, it doesn’t redirect. This is only working with the default language.

Another problem is with the target path. When we create a redirect to an any path it always ends up on a url with the language prefix that is set in the config, That leads to a possible limitation. A node that have previously been saved with the wrong language ending up with an alias (people link to it) and then we fix the language... The alias changes and there should be a redirect from the old language version to the new one. I fear this either leads to broken redirect target or no redirect at all. Simply said: Cross language redirects are impossible.

Proposal
Now a proposed solution to fix the second problem is adding an optional target language selector. With this the redirect will always end up on the selected target path even if the language is set to another.

See screenshot proposal for adding another selector with the target language. We need some feedback to decide what is better to solved this critical problem.

redirectsettings

The target language “Not specified” should be altered to “- Source language -”.
The source language “- Not specified -” and other special items should be clarified such as “- All languages -” or so. Users don’t understand the implication of these values otherwise.

To be discussed
Selecting a language will trigger ajax update and will update the domain and language prefix with the path input. Still i’m not too happy about this uncommon pattern to output text just before the form text field. We should discuss this with an UX expert.

Also with the target, we should similarly make the user aware how a target path is interpreted (and output domain and language context for relative targets).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions