shithub: hugo

Download patch

ref: 8b84156f8749b65f51143e311b9f0fb49d3750f2
parent: 8055838c700d9e8b77ec1dafeda5ecaef2dab2c2
author: Egon Elbre <[email protected]>
date: Sat Nov 23 16:16:42 EST 2013

Example of a multilingual site.

--- /dev/null
+++ b/examples/multilingual/config.yaml
@@ -1,0 +1,5 @@
+indexes:
+  tag: 'tags'
+  group: 'groups'
+  menu: 'menu'
+baseurl: ''
--- /dev/null
+++ b/examples/multilingual/content/about.en.md
@@ -1,0 +1,17 @@
+---
+title: "About"
+linktitle: "About"
+url: /about
+
+lang: "en"
+menu: ["en"]
+menu_weight: 30
+---
+
+Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum ex deleniti ut tenetur amet accusantium dolores nam provident! Ipsum, dicta voluptatum quas architecto nostrum sapiente eos commodi numquam accusantium reprehenderit.
+
+Doloremque, veritatis qui impedit expedita quas distinctio temporibus repellendus dicta debitis iure molestias recusandae cum facere natus esse saepe inventore beatae ipsum soluta voluptas in quaerat nam culpa id autem!
+
+## History
+
+Sequi eum impedit distinctio facilis repudiandae provident iure illo quia autem optio. Ea, facilis, possimus dolor nobis explicabo recusandae numquam ducimus minus eum totam odio architecto nesciunt accusamus expedita natus.
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/content/about.et.md
@@ -1,0 +1,17 @@
+---
+title: "Minust"
+linktitle: "Minust"
+url: /minust
+
+lang: "et"
+menu: ["et"]
+menu_weight: 30
+---
+
+Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum ex deleniti ut tenetur amet accusantium dolores nam provident! Ipsum, dicta voluptatum quas architecto nostrum sapiente eos commodi numquam accusantium reprehenderit.
+
+Doloremque, veritatis qui impedit expedita quas distinctio temporibus repellendus dicta debitis iure molestias recusandae cum facere natus esse saepe inventore beatae ipsum soluta voluptas in quaerat nam culpa id autem!
+
+## Ajalugu
+
+Sequi eum impedit distinctio facilis repudiandae provident iure illo quia autem optio. Ea, facilis, possimus dolor nobis explicabo recusandae numquam ducimus minus eum totam odio architecto nesciunt accusamus expedita natus.
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/content/index.en.md
@@ -1,0 +1,15 @@
+---
+title: ""
+linktitle: "Home"
+url: /
+
+lang: "en"
+menu: ["en"]
+menu_weight: 0
+---
+
+Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum ex deleniti ut tenetur amet accusantium dolores nam provident! Ipsum, dicta voluptatum quas architecto nostrum sapiente eos commodi numquam accusantium reprehenderit.
+
+Doloremque, veritatis qui impedit expedita quas distinctio temporibus repellendus dicta debitis iure molestias recusandae cum facere natus esse saepe inventore beatae ipsum soluta voluptas in quaerat nam culpa id autem!
+
+Sequi eum impedit distinctio facilis repudiandae provident iure illo quia autem optio. Ea, facilis, possimus dolor nobis explicabo recusandae numquam ducimus minus eum totam odio architecto nesciunt accusamus expedita natus.
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/content/index.et.md
@@ -1,0 +1,15 @@
+---
+title: ""
+linktitle: "Kodu"
+url: /kodu
+
+lang: "et"
+menu: ["et"]
+menu_weight: 0
+---
+
+Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum ex deleniti ut tenetur amet accusantium dolores nam provident! Ipsum, dicta voluptatum quas architecto nostrum sapiente eos commodi numquam accusantium reprehenderit.
+
+Doloremque, veritatis qui impedit expedita quas distinctio temporibus repellendus dicta debitis iure molestias recusandae cum facere natus esse saepe inventore beatae ipsum soluta voluptas in quaerat nam culpa id autem!
+
+Sequi eum impedit distinctio facilis repudiandae provident iure illo quia autem optio. Ea, facilis, possimus dolor nobis explicabo recusandae numquam ducimus minus eum totam odio architecto nesciunt accusamus expedita natus.
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/content/story/alpha.md
@@ -1,0 +1,16 @@
+---
+title: "Alpha"
+
+lang: "en"
+groups: ["news"]
+---
+
+Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione, porro, doloribus ducimus reprehenderit nobis at voluptates ipsa dicta nostrum perferendis in vitae. Magnam, quia officia modi incidunt tenetur ratione cum.
+
+Magni, maxime, eum, veniam nam iusto rem error id tenetur porro sed modi reprehenderit excepturi impedit saepe vero ducimus quae consequuntur cupiditate est aperiam in cumque sapiente. Ullam, ex, dolorum.
+
+Pariatur, mollitia dignissimos commodi nostrum dicta accusantium nisi doloremque ratione molestias ex similique a porro quibusdam harum incidunt veniam laborum ipsum facere impedit maiores quam ad vero in obcaecati molestiae.
+
+Nam, nisi minus voluptatum dolorem quia doloremque officia architecto facere laborum ullam doloribus voluptates dolores quaerat necessitatibus hic expedita reiciendis inventore tenetur aliquam ab! Aliquid odit veniam accusantium maxime necessitatibus.
+
+Eos ipsam iusto optio odit id et nisi corporis hic. Iusto, cum, facere officiis ad modi numquam quam recusandae soluta rem consequuntur esse tenetur tempore vel. Veritatis, labore et aliquid?
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/content/story/beta.md
@@ -1,0 +1,16 @@
+---
+title: "Beta"
+
+lang: "en"
+groups: ["news"]
+---
+
+Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione, porro, doloribus ducimus reprehenderit nobis at voluptates ipsa dicta nostrum perferendis in vitae. Magnam, quia officia modi incidunt tenetur ratione cum.
+
+Magni, maxime, eum, veniam nam iusto rem error id tenetur porro sed modi reprehenderit excepturi impedit saepe vero ducimus quae consequuntur cupiditate est aperiam in cumque sapiente. Ullam, ex, dolorum.
+
+Pariatur, mollitia dignissimos commodi nostrum dicta accusantium nisi doloremque ratione molestias ex similique a porro quibusdam harum incidunt veniam laborum ipsum facere impedit maiores quam ad vero in obcaecati molestiae.
+
+Nam, nisi minus voluptatum dolorem quia doloremque officia architecto facere laborum ullam doloribus voluptates dolores quaerat necessitatibus hic expedita reiciendis inventore tenetur aliquam ab! Aliquid odit veniam accusantium maxime necessitatibus.
+
+Eos ipsam iusto optio odit id et nisi corporis hic. Iusto, cum, facere officiis ad modi numquam quam recusandae soluta rem consequuntur esse tenetur tempore vel. Veritatis, labore et aliquid?
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/content/story/index.md
@@ -1,0 +1,10 @@
+---
+title: "News"
+linktitle: "News"
+url: /news
+type: list
+
+lang: "en"
+menu: ["en"]
+menu_weight: 10
+---
--- /dev/null
+++ b/examples/multilingual/content/uudis/alfa.md
@@ -1,0 +1,16 @@
+---
+title: "Alfa"
+
+lang: "et"
+groups: ["uudised"]
+---
+
+Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione, porro, doloribus ducimus reprehenderit nobis at voluptates ipsa dicta nostrum perferendis in vitae. Magnam, quia officia modi incidunt tenetur ratione cum.
+
+Magni, maxime, eum, veniam nam iusto rem error id tenetur porro sed modi reprehenderit excepturi impedit saepe vero ducimus quae consequuntur cupiditate est aperiam in cumque sapiente. Ullam, ex, dolorum.
+
+Pariatur, mollitia dignissimos commodi nostrum dicta accusantium nisi doloremque ratione molestias ex similique a porro quibusdam harum incidunt veniam laborum ipsum facere impedit maiores quam ad vero in obcaecati molestiae.
+
+Nam, nisi minus voluptatum dolorem quia doloremque officia architecto facere laborum ullam doloribus voluptates dolores quaerat necessitatibus hic expedita reiciendis inventore tenetur aliquam ab! Aliquid odit veniam accusantium maxime necessitatibus.
+
+Eos ipsam iusto optio odit id et nisi corporis hic. Iusto, cum, facere officiis ad modi numquam quam recusandae soluta rem consequuntur esse tenetur tempore vel. Veritatis, labore et aliquid?
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/content/uudis/beeta.md
@@ -1,0 +1,16 @@
+---
+title: "Beeta"
+
+lang: "et"
+groups: ["uudised"]
+---
+
+Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ratione, porro, doloribus ducimus reprehenderit nobis at voluptates ipsa dicta nostrum perferendis in vitae. Magnam, quia officia modi incidunt tenetur ratione cum.
+
+Magni, maxime, eum, veniam nam iusto rem error id tenetur porro sed modi reprehenderit excepturi impedit saepe vero ducimus quae consequuntur cupiditate est aperiam in cumque sapiente. Ullam, ex, dolorum.
+
+Pariatur, mollitia dignissimos commodi nostrum dicta accusantium nisi doloremque ratione molestias ex similique a porro quibusdam harum incidunt veniam laborum ipsum facere impedit maiores quam ad vero in obcaecati molestiae.
+
+Nam, nisi minus voluptatum dolorem quia doloremque officia architecto facere laborum ullam doloribus voluptates dolores quaerat necessitatibus hic expedita reiciendis inventore tenetur aliquam ab! Aliquid odit veniam accusantium maxime necessitatibus.
+
+Eos ipsam iusto optio odit id et nisi corporis hic. Iusto, cum, facere officiis ad modi numquam quam recusandae soluta rem consequuntur esse tenetur tempore vel. Veritatis, labore et aliquid?
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/content/uudis/index.md
@@ -1,0 +1,10 @@
+---
+title: "Uudised"
+linktitle: "Uudised"
+url: /uudised
+type: list
+
+lang: "et"
+menu: ["et"]
+menu_weight: 10
+---
--- /dev/null
+++ b/examples/multilingual/layouts/_default/single.html
@@ -1,0 +1,4 @@
+{{ template "chrome/head.html" . }}
+{{ template "chrome/header.html" . }}
+{{ .Content }}
+{{ template "chrome/footer.html" . }}
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/layouts/chrome/footer.html
@@ -1,0 +1,3 @@
+	<footer>(Ↄ) 2013 Egon Elbre</footer>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/layouts/chrome/head.html
@@ -1,0 +1,15 @@
+<!doctype html>
+<html lang="{{ .Params.lang }}">
+<head>
+	<meta charset="utf-8">
+	{{ if .Title }}
+		{{ if (eq .Params.lang "et") }}
+		<title>Mitmekeelne - {{ .Title }}</title>
+		{{ else }}
+		<title>Multilingual - {{ .Title }}</title>
+		{{ end }}
+	{{ end }}
+	<meta name="viewport" content="width=device-width, initial-scale=1">
+	<link rel="stylesheet" href="/static/main.css">
+</head>
+<body>
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/layouts/chrome/header.html
@@ -1,0 +1,25 @@
+<header>
+	<nav class="menu language-menu">
+		<ul>
+			<li><a href="/">English</a></li>
+			<li><a href="/kodu">Eesti</a></li>
+		</ul>
+		<div class="clear"></div>
+	</nav>
+
+	{{ if (eq .Params.lang "et") }}
+	<h1 class="title">Minu mitmekeelne leht</h1>
+	{{ else }}
+	<h1 class="title">My multilingual site</h1>
+	{{ end }}
+	
+	<nav class="menu main-menu">
+		<ul>
+			{{ range (index .Site.Indexes.menu .Params.lang).Pages }}
+			<li><a href="{{ .Permalink  }}">{{ .LinkTitle }}</a></li>
+			{{ end }}
+		</ul>
+	</nav>
+</header>
+
+<h2 class="subtitle">{{ .Title }}</h2>
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/layouts/story/list.html
@@ -1,0 +1,15 @@
+{{ template "chrome/head.html" . }}
+{{ template "chrome/header.html" . }}
+{{ range .Site.Indexes.groups.news.Pages }}
+<article class="post">
+	<header>
+		<h2><a href='{{ .Permalink }}'>{{ .Title }}</a> </h2>
+		<div class="post-meta">{{ .Date.Format "Mon, Jan 2, 2006" }} - {{ .FuzzyWordCount }} Words</div>
+	</header>
+	{{ .Summary }}
+	<footer>
+		<a href='{{ .Permalink }}'><nobr>Read more →</nobr></a>
+	</footer>
+</article>
+{{ end }}
+{{ template "chrome/footer.html" . }}
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/layouts/uudis/list.html
@@ -1,0 +1,15 @@
+{{ template "chrome/head.html" . }}
+{{ template "chrome/header.html" . }}
+{{ range .Site.Indexes.groups.uudised.Pages }}
+<article class="post">
+	<header>
+		<h2><a href='{{ .Permalink }}'>{{ .Title }}</a> </h2>
+		<div class="post-meta">{{ .Date.Format "Mon, Jan 2, 2006" }} - {{ .FuzzyWordCount }} sõna</div>
+	</header>
+	{{ .Summary }}
+	<footer>
+		<a href='{{ .Permalink }}'><nobr>Loe rohkem →</nobr></a>
+	</footer>
+</article>
+{{ end }}
+{{ template "chrome/footer.html" . }}
\ No newline at end of file
--- /dev/null
+++ b/examples/multilingual/static/static/main.css
@@ -1,0 +1,89 @@
+* {
+    box-sizing: border-box;
+}
+
+html, body {
+    margin: 0;
+    padding: 0;
+}
+
+body {
+    max-width: 600px;
+    margin: 0 auto;
+    background: #fefefe;
+}
+
+header {
+    padding: 0 30px;
+    padding-top: 10px;
+    border-bottom: 1px solid #999;
+}
+
+.title {
+    clear: both;
+    font-family: Georgia;
+    text-align: center;
+}
+
+.subtitle {
+    font-family: Georgia;
+    background: #eee;
+    margin: 0;
+    padding: 5px;
+    border-radius: 0 0 50px 50px;
+    text-align: center;
+    
+    margin-bottom: 10px;
+}
+
+.menu a {
+    text-decoration: none;
+}
+
+.language-menu {
+    float: right;
+}
+
+.language-menu ul {
+    list-style: none;
+}
+
+.language-menu ul li {
+    float: left;
+    padding-right: 10px;
+    border-right: 1px solid #ccc;
+    margin-right: 10px;
+}
+
+.main-menu {
+    text-align: center;
+}
+
+.main-menu ul {
+    list-style: none;
+}
+
+.main-menu ul li {
+    display: inline-block;
+    padding: 5px 15px;
+    border-radius: 3px;
+}
+
+.main-menu ul li:hover, .main-menu ul li:active {
+    background: #eef;
+}
+
+.clear {
+    clear: both;
+}
+
+footer {
+    font-family: Georgia;
+    background: #eee;
+    margin: 0;
+    padding: 10px;
+    padding-bottom: 20px;
+    border-radius: 50px 50px 0 0;
+    text-align: center;
+    border-bottom: 1px solid #999;
+}
\ No newline at end of file