You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.0 KiB
82 lines
2.0 KiB
import 'package:get/get.dart';
|
|
import '../../../data/models/goods.dart';
|
|
|
|
String _localeTag() {
|
|
final l = Get.locale;
|
|
if (l == null) return 'zh-CN';
|
|
final cc = l.countryCode;
|
|
return cc != null && cc.isNotEmpty
|
|
? '${l.languageCode}-${cc.toUpperCase()}'
|
|
: l.languageCode;
|
|
}
|
|
|
|
String localizedGoodsName(DBGoods item) {
|
|
final info = item.localInfo(_localeTag());
|
|
final ln = (info['name'] as String?)?.trim() ?? '';
|
|
if (ln.isNotEmpty) return ln;
|
|
final id = item.id.trim();
|
|
switch (id) {
|
|
case 'ai_001':
|
|
return 'ai_001_name'.tr;
|
|
case 'ai_002':
|
|
return 'ai_002_name'.tr;
|
|
case 'ai_003':
|
|
return 'ai_003_name'.tr;
|
|
case 'meet_001':
|
|
return 'meet_001_name'.tr;
|
|
case 'meet_002':
|
|
return 'meet_002_name'.tr;
|
|
case 'meet_003':
|
|
return 'meet_003_name'.tr;
|
|
case 'trade_001':
|
|
return 'trans_001_name'.tr;
|
|
case 'trade_002':
|
|
return 'trans_002_name'.tr;
|
|
case 'trade_003':
|
|
return 'trans_003_name'.tr;
|
|
default:
|
|
final name = item.name.trim();
|
|
return name.isNotEmpty ? name : 'unknown'.tr;
|
|
}
|
|
}
|
|
|
|
String localizedGoodsDesc(DBGoods item) {
|
|
final id = item.id.trim();
|
|
|
|
switch (id) {
|
|
case 'ai_001':
|
|
return 'ai_001_desc'.tr;
|
|
case 'ai_002':
|
|
return 'ai_002_desc'.tr;
|
|
case 'ai_003':
|
|
return 'ai_003_desc'.tr;
|
|
case 'meet_001':
|
|
return 'meet_001_desc'.tr;
|
|
case 'meet_002':
|
|
return 'meet_002_desc'.tr;
|
|
case 'meet_003':
|
|
return 'meet_003_desc'.tr;
|
|
case 'trade_001':
|
|
return 'trans_001_desc'.tr;
|
|
case 'trade_002':
|
|
return 'trans_002_desc'.tr;
|
|
case 'trade_003':
|
|
return 'trans_003_desc'.tr;
|
|
default:
|
|
return '';
|
|
}
|
|
}
|
|
|
|
String goodsDisplayPrice(DBGoods item) {
|
|
final info = item.localInfo(_localeTag());
|
|
final cur = (info['currency'] as String?)?.trim();
|
|
final p = info['price'];
|
|
final symbol = (cur != null && cur.isNotEmpty) ? cur : '¥';
|
|
double v;
|
|
if (p is num) {
|
|
v = p.toDouble();
|
|
} else {
|
|
v = item.priceYuan;
|
|
}
|
|
return '$symbol${v.toStringAsFixed(2)}';
|
|
}
|
|
|