(key, vars = {})
| 585 | } |
| 586 | |
| 587 | function t(key, vars = {}) { |
| 588 | const parts = key.split("."); |
| 589 | let value = I18N[currentLocale]; |
| 590 | for (const part of parts) { |
| 591 | value = value?.[part]; |
| 592 | } |
| 593 | if (value == null) { |
| 594 | value = I18N.en; |
| 595 | for (const part of parts) { |
| 596 | value = value?.[part]; |
| 597 | } |
| 598 | } |
| 599 | if (typeof value !== "string") { |
| 600 | return key; |
| 601 | } |
| 602 | return value.replace(/\{(\w+)\}/g, (_, name) => `${vars[name] ?? ""}`); |
| 603 | } |
| 604 | |
| 605 | function setLocale(locale) { |
| 606 | if (locale !== "zh" && locale !== "en") { |
no outgoing calls
no test coverage detected