28 lines
538 B
Go
28 lines
538 B
Go
//go:build !js
|
|
|
|
// SPDX-Licence-Identifier: EUPL-1.2
|
|
|
|
package html
|
|
|
|
import i18n "dappco.re/go/core/i18n"
|
|
|
|
func cloneTranslator(svc Translator, locale string) Translator {
|
|
if svc == nil {
|
|
return nil
|
|
}
|
|
|
|
if cloner, ok := svc.(translatorCloner); ok && cloner != nil {
|
|
if clone := cloner.Clone(); clone != nil {
|
|
applyLocaleToService(clone, locale)
|
|
return clone
|
|
}
|
|
}
|
|
|
|
if current, ok := svc.(*i18n.Service); ok && current != nil {
|
|
clone := &i18n.Service{}
|
|
applyLocaleToService(clone, locale)
|
|
return clone
|
|
}
|
|
|
|
return svc
|
|
}
|