15 lines
458 B
TypeScript
15 lines
458 B
TypeScript
type Translator = (key: string) => string
|
|
|
|
export function translateMaybeKey(t: Translator, value?: string, fallback = ''): string {
|
|
if (!value) return fallback
|
|
|
|
const candidate = value.trim()
|
|
if (!candidate) return fallback
|
|
|
|
const looksLikeKey = candidate.includes('.') && /^[A-Za-z0-9_.-]+$/.test(candidate)
|
|
if (!looksLikeKey) return value
|
|
|
|
const translated = t(candidate)
|
|
return translated && translated !== candidate ? translated : value
|
|
}
|