Make translations thread safe
ci/woodpecker/push/woodpecker Pipeline was successful
Details
ci/woodpecker/push/woodpecker Pipeline was successful
Details
This commit is contained in:
parent
eb8dd3ad35
commit
6b236f6240
|
@ -21,6 +21,7 @@ package translations
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"embed"
|
"embed"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"go.elara.ws/logger"
|
"go.elara.ws/logger"
|
||||||
"go.elara.ws/lure/pkg/loggerctx"
|
"go.elara.ws/lure/pkg/loggerctx"
|
||||||
|
@ -31,9 +32,14 @@ import (
|
||||||
//go:embed files
|
//go:embed files
|
||||||
var translationFS embed.FS
|
var translationFS embed.FS
|
||||||
|
|
||||||
var translator *translate.Translator
|
var (
|
||||||
|
mu sync.Mutex
|
||||||
|
translator *translate.Translator
|
||||||
|
)
|
||||||
|
|
||||||
func Translator(ctx context.Context) *translate.Translator {
|
func Translator(ctx context.Context) *translate.Translator {
|
||||||
|
mu.Lock()
|
||||||
|
defer mu.Unlock()
|
||||||
log := loggerctx.From(ctx)
|
log := loggerctx.From(ctx)
|
||||||
if translator == nil {
|
if translator == nil {
|
||||||
t, err := translate.NewFromFS(translationFS)
|
t, err := translate.NewFromFS(translationFS)
|
||||||
|
|
Loading…
Reference in New Issue