Details
-
Epic
-
Status: Closed
-
Minor
-
Resolution: Completed
-
None
-
None
-
Impediment
-
Done
Description
Goal:
- Localize friendly urls for all languages.
Users
- Business users like content creators
- Final users
Benefits
- Better SEO: The URL and the content of the page will always be in the same language
- Easier to memorize or to find in bookmarks
- Easier to understand for the final user
Description
Currently we can write friendly URLs in ASCII languages. We don't support other languages like Japanese (Kanji/Hiragana/Katakana) or Chinese or Arab.
In the past browsers have this limitations but they have evolved and now support non-ASCII characters. You can see an introduction to this issue at REF1
The main goal of this story is to remove this constraints from Liferay.
References
- REF1 An Introduction to Multilingual Web Addresses: https://www.w3.org/International/articles/idn-and-iri/
How friendly URLs works at the moment:
1 - The Friendly URL is first normalized so only ascii characters are left
2 - It accepts lowercase characters from a to z and digits from 0 to 9
3 - All uppercase characters from A to Z are transformed to lowercase
4 - One can specify slashes ("/") or periods (".") depending on the boolean parameter "periodsAndSlashes"
5 - All other sequence of characters not mentioned before are ignored and replaced by a dash ("-")
Examples:
/período --> /periodo (step 1 will transform í to i) /PeRíoDo --> /periodo (step 1 will transform í to i and step 3 will transform to lowercase) /PeRioD0 --> /period0 (step 3 will transform to lowercase and digit at the end is left since it's allowed) /日r本r刀 --> /-r-r- (step 5 will replace non ascii characters to dashes) /日本rr刀 --> /-rr- (step 5 will replace a continuos sequence of non ascii characters to one dash)
How do we require friendly URLs to works from now on:
1 - The Friendly URL is first normalized so only ascii characters are left Accepts the Unicode characters
2 - It accepts lowercase characters from a to z and digits from 0 to 9
3 - All uppercase characters from A to Z are transformed to lowercase
4 - One can specify slashes ("/") or periods (".") depending on the boolean parameter "periodsAndSlashes"
5 - All other sequence of characters not mentioned before are ignored and replaced by a dash ("")
Examples:
/período --> /período /PeRíoDo --> /período /PeRioD0 --> /period0 /日r本r刀 --> /日r本r刀 /日本rr刀 --> /日本rr刀