URI: 
       Validate private use language tags - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit 58adbeef88ea5c8769d12ba27eef2d89bdf575eb
   DIR parent 93572e53181b5a614c2874bd00b7a38a02de58d3
  HTML Author: Joe Mooring <joe.mooring@veriphor.com>
       Date:   Sun,  7 Nov 2021 07:06:48 -0800
       
       Validate private use language tags
       
       Fixes #9119
       
       Diffstat:
         M hugolib/hugo_modules_test.go        |      11 +++++++----
         M langs/i18n/translationProvider.go   |       5 +++++
       
       2 files changed, 12 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/hugolib/hugo_modules_test.go b/hugolib/hugo_modules_test.go
       @@ -701,10 +701,13 @@ Data: {{ .Site.Data }}
        
                createSymlinks := func(baseDir, id string) {
                        for _, dir := range files.ComponentFolders {
       -                        c.Assert(os.Chdir(filepath.Join(baseDir, dir)), qt.IsNil)
       -                        c.Assert(os.Symlink("real", fmt.Sprintf("realsym%s", id)), qt.IsNil)
       -                        c.Assert(os.Chdir(filepath.Join(baseDir, dir, "real")), qt.IsNil)
       -                        c.Assert(os.Symlink("data.toml", fmt.Sprintf(filepath.FromSlash("datasym%s.toml"), id)), qt.IsNil)
       +                        // Issue #9119: private use language tags cannot exceed 8 characters.
       +                        if dir != "i18n" {
       +                                c.Assert(os.Chdir(filepath.Join(baseDir, dir)), qt.IsNil)
       +                                c.Assert(os.Symlink("real", fmt.Sprintf("realsym%s", id)), qt.IsNil)
       +                                c.Assert(os.Chdir(filepath.Join(baseDir, dir, "real")), qt.IsNil)
       +                                c.Assert(os.Symlink("data.toml", fmt.Sprintf(filepath.FromSlash("datasym%s.toml"), id)), qt.IsNil)
       +                        }
                        }
                }
        
   DIR diff --git a/langs/i18n/translationProvider.go b/langs/i18n/translationProvider.go
       @@ -93,6 +93,11 @@ func addTranslationFile(bundle *i18n.Bundle, r source.File) error {
                lang := paths.Filename(name)
                tag := language.Make(lang)
                if tag == language.Und {
       +                try := artificialLangTagPrefix + lang
       +                _, err = language.Parse(try)
       +                if err != nil {
       +                        return _errors.Errorf("%q %s.", try, err)
       +                }
                        name = artificialLangTagPrefix + name
                }