// 翻译,适用于多国语言的应用
package main
import (
"fmt"
"image/color"
"os"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/lang"
)
func main() {
myApp := app.New()
// 多国语言支持
langFile := fmt.Sprintf("translation/%s.json", lang.SystemLocale().LanguageString())
// 添加判断文件是否存在
data, err := os.ReadFile(langFile)
if err == nil {
lang.AddTranslationsForLocale(data, fyne.CurrentDevice().Locale())
}
myWindow := myApp.NewWindow(lang.L("Demo"))
green := color.NRGBA{R: 0, G: 180, B: 0, A: 255}
text1 := canvas.NewText(lang.L("Hello"), green)
text2 := canvas.NewText(lang.L("There"), green)
text2.Move(fyne.NewPos(120, 20))
content := container.NewWithoutLayout(text1, text2)
myWindow.SetContent(content)
myWindow.ShowAndRun()
}
将多国语言文件放到了translation目录,例如当前环境zh-CN。
打赏