hugo

Fork of github.com/gohugoio/hugo with reverse pagination support

git clone git://git.shimmy1996.com/hugo.git

language_test.go (3126B)

    1 // Copyright 2020 The Hugo Authors. All rights reserved.
    2 //
    3 // Licensed under the Apache License, Version 2.0 (the "License");
    4 // you may not use this file except in compliance with the License.
    5 // You may obtain a copy of the License at
    6 // http://www.apache.org/licenses/LICENSE-2.0
    7 //
    8 // Unless required by applicable law or agreed to in writing, software
    9 // distributed under the License is distributed on an "AS IS" BASIS,
   10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   11 // See the License for the specific language governing permissions and
   12 // limitations under the License.
   13 
   14 package hugolib
   15 
   16 import (
   17 	"fmt"
   18 	"strings"
   19 	"testing"
   20 
   21 	"github.com/gohugoio/hugo/htesting"
   22 
   23 	qt "github.com/frankban/quicktest"
   24 )
   25 
   26 func TestI18n(t *testing.T) {
   27 	c := qt.New(t)
   28 
   29 	//https://github.com/gohugoio/hugo/issues/7804
   30 	c.Run("pt-br should be case insensitive", func(c *qt.C) {
   31 		b := newTestSitesBuilder(c)
   32 		langCode := func() string {
   33 			c := "pt-br"
   34 			if htesting.RandBool() {
   35 				c = strings.ToUpper(c)
   36 			}
   37 			return c
   38 		}
   39 
   40 		b.WithConfigFile(`toml`, fmt.Sprintf(`
   41 baseURL = "https://example.com"
   42 defaultContentLanguage = "%s"
   43 
   44 [languages]
   45 [languages.%s]
   46 weight = 1
   47 `, langCode(), langCode()))
   48 
   49 		b.WithI18n(fmt.Sprintf("i18n/%s.toml", langCode()), `hello.one = "Hello"`)
   50 		b.WithTemplates("index.html", `Hello: {{ i18n "hello" 1 }}`)
   51 		b.WithContent("p1.md", "")
   52 		b.Build(BuildCfg{})
   53 
   54 		b.AssertFileContent("public/index.html", "Hello: Hello")
   55 	})
   56 }
   57 
   58 func TestLanguageBugs(t *testing.T) {
   59 	c := qt.New(t)
   60 
   61 	// Issue #8672
   62 	c.Run("Config with language, menu in root only", func(c *qt.C) {
   63 		b := newTestSitesBuilder(c)
   64 		b.WithConfigFile("toml", `
   65 theme = "test-theme"
   66 [[menus.foo]]
   67 name = "foo-a"
   68 [languages.en]
   69 
   70 `,
   71 		)
   72 
   73 		b.WithThemeConfigFile("toml", `[languages.en]`)
   74 
   75 		b.Build(BuildCfg{})
   76 
   77 		menus := b.H.Sites[0].Menus()
   78 		c.Assert(menus, qt.HasLen, 1)
   79 
   80 	})
   81 }
   82 
   83 func TestLanguageNumberFormatting(t *testing.T) {
   84 
   85 	b := newTestSitesBuilder(t)
   86 	b.WithConfigFile("toml", `
   87 baseURL = "https://example.org"
   88 
   89 defaultContentLanguage = "en"
   90 defaultContentLanguageInSubDir = true
   91 
   92 [languages]
   93 [languages.en]
   94 timeZone="UTC"
   95 weight=10
   96 [languages.nn]
   97 weight=20
   98 	
   99 `)
  100 
  101 	b.WithTemplates("index.html", `
  102 
  103 FormatNumber: {{ 512.5032 | lang.FormatNumber 2 }}
  104 FormatPercent: {{ 512.5032 | lang.FormatPercent 2 }}
  105 FormatCurrency: {{ 512.5032 | lang.FormatCurrency 2 "USD" }}
  106 FormatAccounting: {{ 512.5032 | lang.FormatAccounting 2 "NOK" }}
  107 FormatNumberCustom: {{ lang.FormatNumberCustom 2 12345.6789 }}
  108 
  109 # We renamed this to FormatNumberCustom in 0.87.0.
  110 NumFmt: {{ -98765.4321 | lang.NumFmt 2 }}
  111 
  112 	
  113 `)
  114 	b.WithContent("p1.md", "")
  115 
  116 	b.Build(BuildCfg{})
  117 
  118 	b.AssertFileContent("public/en/index.html", `
  119 FormatNumber: 512.50
  120 FormatPercent: 512.50%
  121 FormatCurrency: $512.50
  122 FormatAccounting: NOK512.50
  123 FormatNumberCustom: 12,345.68
  124         
  125 NumFmt: -98,765.43
  126 `,
  127 	)
  128 
  129 	b.AssertFileContent("public/nn/index.html", `
  130 FormatNumber: 512,50
  131 FormatPercent: 512,50 %
  132 FormatCurrency: 512,50 USD
  133 FormatAccounting: 512,50 kr
  134 FormatNumberCustom: 12,345.68
  135 
  136 # We renamed this to FormatNumberCustom in 0.87.0.
  137 NumFmt: -98,765.43
  138 `)
  139 }