github.com/gogf/gf@v1.16.9/os/gview/gview_unit_i18n_test.go (about)

     1  // Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
     2  //
     3  // This Source Code Form is subject to the terms of the MIT License.
     4  // If a copy of the MIT was not distributed with this file,
     5  // You can obtain one at https://github.com/gogf/gf.
     6  
     7  package gview_test
     8  
     9  import (
    10  	"context"
    11  	"testing"
    12  
    13  	"github.com/gogf/gf/debug/gdebug"
    14  	"github.com/gogf/gf/os/gfile"
    15  
    16  	"github.com/gogf/gf/frame/g"
    17  	"github.com/gogf/gf/test/gtest"
    18  )
    19  
    20  func Test_I18n(t *testing.T) {
    21  	gtest.C(t, func(t *gtest.T) {
    22  		content := `{{.name}} says "{#hello}{#world}!"`
    23  		expect1 := `john says "你好世界!"`
    24  		expect2 := `john says "こんにちは世界!"`
    25  		expect3 := `john says "{#hello}{#world}!"`
    26  
    27  		g.I18n().SetPath(gdebug.TestDataPath("i18n"))
    28  
    29  		g.I18n().SetLanguage("zh-CN")
    30  		result1, err := g.View().ParseContent(context.TODO(), content, g.Map{
    31  			"name": "john",
    32  		})
    33  		t.Assert(err, nil)
    34  		t.Assert(result1, expect1)
    35  
    36  		g.I18n().SetLanguage("ja")
    37  		result2, err := g.View().ParseContent(context.TODO(), content, g.Map{
    38  			"name": "john",
    39  		})
    40  		t.Assert(err, nil)
    41  		t.Assert(result2, expect2)
    42  
    43  		g.I18n().SetLanguage("none")
    44  		result3, err := g.View().ParseContent(context.TODO(), content, g.Map{
    45  			"name": "john",
    46  		})
    47  		t.Assert(err, nil)
    48  		t.Assert(result3, expect3)
    49  	})
    50  	gtest.C(t, func(t *gtest.T) {
    51  		content := `{{.name}} says "{#hello}{#world}!"`
    52  		expect1 := `john says "你好世界!"`
    53  		expect2 := `john says "こんにちは世界!"`
    54  		expect3 := `john says "{#hello}{#world}!"`
    55  
    56  		g.I18n().SetPath(gdebug.CallerDirectory() + gfile.Separator + "testdata" + gfile.Separator + "i18n")
    57  
    58  		result1, err := g.View().ParseContent(context.TODO(), content, g.Map{
    59  			"name":         "john",
    60  			"I18nLanguage": "zh-CN",
    61  		})
    62  		t.Assert(err, nil)
    63  		t.Assert(result1, expect1)
    64  
    65  		result2, err := g.View().ParseContent(context.TODO(), content, g.Map{
    66  			"name":         "john",
    67  			"I18nLanguage": "ja",
    68  		})
    69  		t.Assert(err, nil)
    70  		t.Assert(result2, expect2)
    71  
    72  		result3, err := g.View().ParseContent(context.TODO(), content, g.Map{
    73  			"name":         "john",
    74  			"I18nLanguage": "none",
    75  		})
    76  		t.Assert(err, nil)
    77  		t.Assert(result3, expect3)
    78  	})
    79  }