fix(i18n): 印尼语内容缺失时不再回退中文

This commit is contained in:
Vicky authored and trae-solo-agent committed 2026-10-30 17:14:37 +08:00
1 parent 9ef8eb15b0
commit 19196ceb8e
13 files changed
+261 -95

No files matched your search

+2 -2
View File
@@ -241,11 +241,11 @@ class Drama {
}
String localizedTitle(String languageCode) {
return localizedText(languageCode, title, titleLocales);
return localizedRequiredText(languageCode, title, titleLocales);
}
String localizedSynopsis(String languageCode) {
return localizedText(languageCode, synopsis, synopsisLocales);
return localizedRequiredText(languageCode, synopsis, synopsisLocales);
}
String localizedTag(String languageCode) {
+18 -1
View File
@@ -7,10 +7,27 @@ Map<String, String> localeMap(Object? raw) {
}
/// 按当前语言取文案。没有对应语言时用中文,中文也没有时用 fallback。
String localizedText(String languageCode, String fallback, Map<String, String> locales) {
String localizedText(
String languageCode,
String fallback,
Map<String, String> locales,
) {
final selected = locales[languageCode] ?? '';
if (selected.isNotEmpty) return selected;
final chinese = locales['zh'] ?? '';
if (chinese.isNotEmpty) return chinese;
return fallback;
}
/// 按当前语言取必须本地化的文案;印尼语缺失时不回退中文。
String localizedRequiredText(
String languageCode,
String fallback,
Map<String, String> locales,
) {
final primaryCode = languageCode.split(RegExp(r'[_-]')).first;
final selected = locales[languageCode] ?? locales[primaryCode] ?? '';
if (selected.trim().isNotEmpty) return selected;
if (primaryCode == 'id') return '';
return localizedText(primaryCode, fallback, locales);
}