2.9 KiB
title | description | categories | keywords | params | aliases | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
urls.RelLangURL | Returns a relative URL with a language prefix, if any. |
|
|
Use this function with both monolingual and multilingual configurations. The URL returned by this function depends on:
- Whether the input begins with a slash (
/
) - The
baseURL
in your site configuration - The language prefix, if any
This is the site configuration for the examples that follow:
{{< code-toggle file=hugo >}} defaultContentLanguage = 'en' defaultContentLanguageInSubdir = true [languages.en] weight = 1 [languages.es] weight = 2 {{< /code-toggle >}}
Input does not begin with a slash
If the input does not begin with a slash, the resulting URL will be relative to the baseURL
in your site configuration.
When rendering the en
site with baseURL = https://example.org/
{{ relLangURL "" }} → /en/
{{ relLangURL "articles" }} → /en/articles
{{ relLangURL "style.css" }} → /en/style.css
{{ relLangURL "https://example.org" }} → https://example.org
{{ relLangURL "https://example.org/" }} → /en
{{ relLangURL "https://www.example.org" }} → https://www.example.org
{{ relLangURL "https://www.example.org/" }} → https://www.example.org/
When rendering the en
site with baseURL = https://example.org/docs/
{{ relLangURL "" }} → /docs/en/
{{ relLangURL "articles" }} → /docs/en/articles
{{ relLangURL "style.css" }} → /docs/en/style.css
{{ relLangURL "https://example.org" }} → https://example.org
{{ relLangURL "https://example.org/" }} → https://example.org/
{{ relLangURL "https://example.org/docs" }} → https://example.org/docs
{{ relLangURL "https://example.org/docs/" }} → /docs/en
{{ relLangURL "https://www.example.org" }} → https://www.example.org
{{ relLangURL "https://www.example.org/" }} → https://www.example.org/
Input begins with a slash
If the input begins with a slash, the resulting URL will be relative to the protocol+host of the baseURL
in your site configuration.
When rendering the en
site with baseURL = https://example.org/
{{ relLangURL "/" }} → /en/
{{ relLangURL "/articles" }} → /en/articles
{{ relLangURL "/style.css" }} → /en/style.css
When rendering the en
site with baseURL = https://example.org/docs/
{{ relLangURL "/" }} → /en/
{{ relLangURL "/articles" }} → /en/articles
{{ relLangURL "/style.css" }} → /en/style.css
[!note] As illustrated by the previous example, using a leading slash is rarely desirable and can lead to unexpected outcomes. In nearly all cases, omit the leading slash.