cli/pkg/i18n/examples/simple/main.go
Snider 4e02d5bc97 refactor: bring external packages home and restructure
- Imported packages from separate repos:
  - github.com/Snider/config -> pkg/config
  - github.com/Snider/display -> pkg/display
  - github.com/Snider/help -> pkg/help
  - github.com/Snider/i18n -> pkg/i18n
  - github.com/Snider/updater -> pkg/updater
- Moved core code from root to pkg/core
- Flattened nested package structures
- Updated all import paths to github.com/Snider/Core/pkg/*
- Added Display interface to Core
- Updated go.work for workspace modules

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:30:43 +00:00

43 lines
1.1 KiB
Go

package main
import (
"fmt"
"log"
"github.com/snider/i18n/i18n"
)
func main() {
// Create a new i18n service.
service, err := i18n.New()
if err != nil {
log.Fatalf("failed to create i18n service: %v", err)
}
// Set the language to French.
err = service.SetLanguage("fr")
if err != nil {
log.Fatalf("failed to set language: %v", err)
}
// Translate a message.
searchMessage := service.Translate("app.ui.search")
fmt.Println(searchMessage)
// Set the language to Spanish.
err = service.SetLanguage("es")
if err != nil {
log.Fatalf("failed to set language: %v", err)
}
// Translate the same message again.
searchMessage = service.Translate("app.ui.search")
fmt.Println(searchMessage)
// Translate with arguments.
// Note: You would need to add "greeting": "Hello {{.Name}}" to your locale files to make this work properly.
// Since we are using embedded locales in the library, we can't easily modify them here without rebuilding the lib.
// However, we can demonstrate the API usage.
greeting := service.Translate("greeting", map[string]string{"Name": "World"})
fmt.Println(greeting)
}