报错返回语言适配
This commit is contained in:
@@ -30,7 +30,7 @@ public class InternalOnlyAspect {
|
|||||||
public Object validateInternalCall(ProceedingJoinPoint joinPoint) throws Throwable {
|
public Object validateInternalCall(ProceedingJoinPoint joinPoint) throws Throwable {
|
||||||
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||||
if (attributes == null) {
|
if (attributes == null) {
|
||||||
throw new BusinessException("禁止外部直接访问此接口");
|
throw new BusinessException("forbidden.external.access");
|
||||||
}
|
}
|
||||||
|
|
||||||
HttpServletRequest request = attributes.getRequest();
|
HttpServletRequest request = attributes.getRequest();
|
||||||
@@ -38,7 +38,7 @@ public class InternalOnlyAspect {
|
|||||||
if (!CommonConstants.INTERNAL_CALL_VALUE.equals(internalCall)) {
|
if (!CommonConstants.INTERNAL_CALL_VALUE.equals(internalCall)) {
|
||||||
log.warn("Unauthorized external access attempt to internal-only endpoint: {}",
|
log.warn("Unauthorized external access attempt to internal-only endpoint: {}",
|
||||||
((MethodSignature) joinPoint.getSignature()).getMethod().getName());
|
((MethodSignature) joinPoint.getSignature()).getMethod().getName());
|
||||||
throw new BusinessException("禁止外部直接访问此接口");
|
throw new BusinessException("forbidden.external.access");
|
||||||
}
|
}
|
||||||
|
|
||||||
return joinPoint.proceed();
|
return joinPoint.proceed();
|
||||||
|
|||||||
@@ -1,9 +1,17 @@
|
|||||||
package com.aida.seller.common.exception;
|
package com.aida.seller.common.exception;
|
||||||
|
|
||||||
|
import com.aida.seller.common.context.UserContext;
|
||||||
|
import com.aida.seller.model.vo.AuthPrincipalVo;
|
||||||
import com.aida.seller.common.result.ResultEnum;
|
import com.aida.seller.common.result.ResultEnum;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.PropertyResourceBundle;
|
||||||
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: dwjian
|
* @author: dwjian
|
||||||
* @description: 业务异常
|
* @description: 业务异常
|
||||||
@@ -12,31 +20,64 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class BusinessException extends RuntimeException {
|
public class BusinessException extends RuntimeException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private Integer code;
|
private Integer code;
|
||||||
private String msg;
|
private String msg;
|
||||||
|
|
||||||
public BusinessException(ResultEnum resultEnum) {
|
public BusinessException(ResultEnum resultEnum) {
|
||||||
this.code = resultEnum.getCode();
|
this.code = resultEnum.getCode();
|
||||||
this.msg = resultEnum.getMsg();
|
this.msg = getMessageFromResource(resultEnum.getMsg(), getUserLocale());
|
||||||
}
|
}
|
||||||
|
|
||||||
public BusinessException(String msg) {
|
public BusinessException(String msg) {
|
||||||
this.code = ResultEnum.FAIL.getCode();
|
this.code = ResultEnum.FAIL.getCode();
|
||||||
this.msg = msg;
|
this.msg = getMessageFromResource(msg, getUserLocale());
|
||||||
}
|
}
|
||||||
|
|
||||||
public BusinessException(String msg, Integer code) {
|
public BusinessException(String msg, Integer code) {
|
||||||
this.code = code;
|
this.code = code;
|
||||||
this.msg = msg;
|
this.msg = getMessageFromResource(msg, getUserLocale());
|
||||||
}
|
}
|
||||||
|
|
||||||
public BusinessException(Throwable cause) {
|
public BusinessException(Throwable cause) {
|
||||||
this.code = ResultEnum.FAIL.getCode();
|
this.code = ResultEnum.FAIL.getCode();
|
||||||
this.msg = cause.getMessage();
|
this.msg = getMessageFromResource(cause.getMessage(), getUserLocale());
|
||||||
}
|
}
|
||||||
|
|
||||||
public BusinessException(ResultEnum resultEnum, String customMsg) {
|
public BusinessException(ResultEnum resultEnum, String customMsg) {
|
||||||
this.code = resultEnum.getCode();
|
this.code = resultEnum.getCode();
|
||||||
this.msg = customMsg;
|
this.msg = getMessageFromResource(customMsg, getUserLocale());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getUserLocale() {
|
||||||
|
try {
|
||||||
|
AuthPrincipalVo userInfo = UserContext.getUserHolder();
|
||||||
|
if (userInfo == null) return "en";
|
||||||
|
String lang = userInfo.getLanguage();
|
||||||
|
if (lang == null) return "en";
|
||||||
|
if ("CHINESE_SIMPLIFIED".equalsIgnoreCase(lang)) return "zh";
|
||||||
|
if ("ENGLISH".equalsIgnoreCase(lang)) return "en";
|
||||||
|
return "en";
|
||||||
|
} catch (Exception e) {
|
||||||
|
return "en";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getMessageFromResource(String msg, String locale) {
|
||||||
|
if (msg == null) return null;
|
||||||
|
try (InputStream is = BusinessException.class.getClassLoader()
|
||||||
|
.getResourceAsStream("messages_" + locale + ".properties")) {
|
||||||
|
if (is != null) {
|
||||||
|
ResourceBundle bundle = new PropertyResourceBundle(
|
||||||
|
new InputStreamReader(is, StandardCharsets.UTF_8));
|
||||||
|
if (bundle.containsKey(msg)) {
|
||||||
|
return bundle.getString(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.warn("Failed to load messages_{}.properties: {}", locale, e.getMessage());
|
||||||
|
}
|
||||||
|
return msg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (existDesigner != null) {
|
if (existDesigner != null) {
|
||||||
throw new BusinessException("该用户已提交过申请或已入驻");
|
throw new BusinessException("designer.already.applied");
|
||||||
}
|
}
|
||||||
|
|
||||||
DesignerEntity entity = new DesignerEntity();
|
DesignerEntity entity = new DesignerEntity();
|
||||||
@@ -147,11 +147,11 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
|
|||||||
.last("LIMIT 1")
|
.last("LIMIT 1")
|
||||||
);
|
);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
throw new BusinessException("申请记录不存在");
|
throw new BusinessException("designer.application.not.found");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DesignerApplyStatusEnum.PENDING.getCode().equals(entity.getApplyStatus())) {
|
if (!DesignerApplyStatusEnum.PENDING.getCode().equals(entity.getApplyStatus())) {
|
||||||
throw new BusinessException("当前状态不支持审核操作");
|
throw new BusinessException("current.status.not.support.review");
|
||||||
}
|
}
|
||||||
|
|
||||||
entity.setApplyStatus(dto.getAuditStatus());
|
entity.setApplyStatus(dto.getAuditStatus());
|
||||||
@@ -184,7 +184,7 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
|
|||||||
.last("LIMIT 1")
|
.last("LIMIT 1")
|
||||||
);
|
);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
throw new BusinessException("设计师记录不存在");
|
throw new BusinessException("designer.record.not.found");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dto.getShopName() != null) {
|
if (dto.getShopName() != null) {
|
||||||
@@ -227,7 +227,7 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
|
|||||||
.last("LIMIT 1")
|
.last("LIMIT 1")
|
||||||
);
|
);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
throw new BusinessException("设计师记录不存在");
|
throw new BusinessException("designer.record.not.found");
|
||||||
}
|
}
|
||||||
|
|
||||||
DesignerDTO dto = new DesignerDTO();
|
DesignerDTO dto = new DesignerDTO();
|
||||||
@@ -252,7 +252,7 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
|
|||||||
.last("LIMIT 1")
|
.last("LIMIT 1")
|
||||||
);
|
);
|
||||||
if (designer == null) {
|
if (designer == null) {
|
||||||
throw new BusinessException("设计师记录不存在");
|
throw new BusinessException("designer.record.not.found");
|
||||||
}
|
}
|
||||||
|
|
||||||
Long sellerId = designer.getId();
|
Long sellerId = designer.getId();
|
||||||
@@ -385,7 +385,7 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
|
|||||||
.last("LIMIT 1")
|
.last("LIMIT 1")
|
||||||
);
|
);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
throw new BusinessException("设计师不存在");
|
throw new BusinessException("designer.not.found");
|
||||||
}
|
}
|
||||||
DesignerShopVO vo = new DesignerShopVO();
|
DesignerShopVO vo = new DesignerShopVO();
|
||||||
vo.setShopName(entity.getShopName());
|
vo.setShopName(entity.getShopName());
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class FileUploadController {
|
|||||||
Long userId = UserContext.getUserId();
|
Long userId = UserContext.getUserId();
|
||||||
|
|
||||||
if (file.isEmpty()) {
|
if (file.isEmpty()) {
|
||||||
throw new BusinessException("文件不能为空");
|
throw new BusinessException("file.cannot.be.empty");
|
||||||
}
|
}
|
||||||
// 验证文件类型
|
// 验证文件类型
|
||||||
String contentType = file.getContentType();
|
String contentType = file.getContentType();
|
||||||
@@ -58,12 +58,12 @@ public class FileUploadController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!validType) {
|
if (!validType) {
|
||||||
throw new BusinessException("不支持的文件类型: " + contentType);
|
throw new BusinessException("file.type.unsupported");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 验证文件大小
|
// 验证文件大小
|
||||||
if (file.getSize() > maxFileSize * 1024 * 1024) {
|
if (file.getSize() > maxFileSize * 1024 * 1024) {
|
||||||
throw new BusinessException("文件大小超出限制: " + maxFileSize + " MB");
|
throw new BusinessException("file.size.exceed.limit");
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
// 计算文件MD5(可选,用于文件完整性校验)
|
// 计算文件MD5(可选,用于文件完整性校验)
|
||||||
@@ -78,7 +78,7 @@ public class FileUploadController {
|
|||||||
return Response.success(minioUtil.processMinioResource(filePath, CommonConstants.MINIO_PATH_TIMEOUT));
|
return Response.success(minioUtil.processMinioResource(filePath, CommonConstants.MINIO_PATH_TIMEOUT));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("文件上传失败: {}", e.getMessage(), e);
|
log.error("文件上传失败: {}", e.getMessage(), e);
|
||||||
throw new BusinessException("文件上传失败");
|
throw new BusinessException("file.upload.fail");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
|
|||||||
|
|
||||||
|
|
||||||
if (dto.getDesignFor() != null && DesignForEnum.of(dto.getDesignFor()) == null) {
|
if (dto.getDesignFor() != null && DesignForEnum.of(dto.getDesignFor()) == null) {
|
||||||
throw new BusinessException("designFor 只能为 male/female");
|
throw new BusinessException("design.for.only.male.or.female");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entity.getViewCount() == null) {
|
if (entity.getViewCount() == null) {
|
||||||
@@ -85,7 +85,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
|
|||||||
.eq(ListingEntity::getSellerId, sellerId)
|
.eq(ListingEntity::getSellerId, sellerId)
|
||||||
.eq(ListingEntity::getDeleted, 0));
|
.eq(ListingEntity::getDeleted, 0));
|
||||||
if (existing == null) {
|
if (existing == null) {
|
||||||
throw new BusinessException("商品不存在");
|
throw new BusinessException("product.not.found");
|
||||||
}
|
}
|
||||||
entity.setCreateTime(existing.getCreateTime());
|
entity.setCreateTime(existing.getCreateTime());
|
||||||
this.updateById(entity);
|
this.updateById(entity);
|
||||||
@@ -139,7 +139,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
|
|||||||
.eq(ListingEntity::getId, id)
|
.eq(ListingEntity::getId, id)
|
||||||
.eq(ListingEntity::getDeleted, 0));
|
.eq(ListingEntity::getDeleted, 0));
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
throw new BusinessException("商品不存在");
|
throw new BusinessException("product.not.found");
|
||||||
}
|
}
|
||||||
|
|
||||||
ListingSaveDTO dto = new ListingSaveDTO();
|
ListingSaveDTO dto = new ListingSaveDTO();
|
||||||
@@ -194,7 +194,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
|
|||||||
.eq(ListingEntity::getSellerId, sellerId)
|
.eq(ListingEntity::getSellerId, sellerId)
|
||||||
.eq(ListingEntity::getDeleted, 0));
|
.eq(ListingEntity::getDeleted, 0));
|
||||||
if (existing == null) {
|
if (existing == null) {
|
||||||
throw new BusinessException("商品不存在");
|
throw new BusinessException("product.not.found");
|
||||||
}
|
}
|
||||||
ListingEntity update = new ListingEntity();
|
ListingEntity update = new ListingEntity();
|
||||||
update.setId(id);
|
update.setId(id);
|
||||||
@@ -252,7 +252,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
|
|||||||
|
|
||||||
for (String category : requiredCategories) {
|
for (String category : requiredCategories) {
|
||||||
if (!presentCategories.contains(category)) {
|
if (!presentCategories.contains(category)) {
|
||||||
throw new BusinessException("category [" + category + "] is required");
|
throw new BusinessException("category.required");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,7 +260,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
|
|||||||
String category = img.getCategory();
|
String category = img.getCategory();
|
||||||
if (requiredCategories.contains(category)) {
|
if (requiredCategories.contains(category)) {
|
||||||
if (!StringUtils.hasText(img.getImageUrl())) {
|
if (!StringUtils.hasText(img.getImageUrl())) {
|
||||||
throw new BusinessException(category + " category imageUrl cannot be null or empty");
|
throw new BusinessException("category.imageUrl.cannot.be.empty");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -337,26 +337,26 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
|
|||||||
*/
|
*/
|
||||||
private void validateListingFields(ListingSaveDTO dto) {
|
private void validateListingFields(ListingSaveDTO dto) {
|
||||||
if (!StringUtils.hasText(dto.getTitle())) {
|
if (!StringUtils.hasText(dto.getTitle())) {
|
||||||
throw new BusinessException("商品标题不能为空");
|
throw new BusinessException("product.title.cannot.be.empty");
|
||||||
}
|
}
|
||||||
if (!StringUtils.hasText(dto.getDescription())) {
|
if (!StringUtils.hasText(dto.getDescription())) {
|
||||||
throw new BusinessException("商品描述不能为空");
|
throw new BusinessException("product.description.cannot.be.empty");
|
||||||
}
|
}
|
||||||
if (dto.getPrice() == null) {
|
if (dto.getPrice() == null) {
|
||||||
throw new BusinessException("商品价格不能为空");
|
throw new BusinessException("product.price.cannot.be.empty");
|
||||||
}
|
}
|
||||||
if (!StringUtils.hasText(dto.getDesignFor())) {
|
if (!StringUtils.hasText(dto.getDesignFor())) {
|
||||||
throw new BusinessException("适用性别不能为空");
|
throw new BusinessException("product.gender.cannot.be.empty");
|
||||||
}
|
}
|
||||||
if (DesignForEnum.of(dto.getDesignFor()) == null) {
|
if (DesignForEnum.of(dto.getDesignFor()) == null) {
|
||||||
throw new BusinessException("适用性别只能为 male/female");
|
throw new BusinessException("product.gender.must.be.male.or.female");
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isEmpty(dto.getProductCategory())) {
|
if (CollectionUtils.isEmpty(dto.getProductCategory())) {
|
||||||
throw new BusinessException("商品分类不能为空");
|
throw new BusinessException("product.category.cannot.be.empty");
|
||||||
}
|
}
|
||||||
for (String category : dto.getProductCategory()) {
|
for (String category : dto.getProductCategory()) {
|
||||||
if (ProductCategoryEnum.of(category) == null) {
|
if (ProductCategoryEnum.of(category) == null) {
|
||||||
throw new BusinessException("商品分类只能为 outwear/trousers/blouse/dress/skirt/others/tops/bottoms");
|
throw new BusinessException("product.category.must.be.valid");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -368,7 +368,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
|
|||||||
queryWrapper.eq(ListingEntity::getSellerId, sellerId);
|
queryWrapper.eq(ListingEntity::getSellerId, sellerId);
|
||||||
DesignForEnum designForEnum = DesignForEnum.of(designFor);
|
DesignForEnum designForEnum = DesignForEnum.of(designFor);
|
||||||
if (designForEnum == null) {
|
if (designForEnum == null) {
|
||||||
throw new BusinessException("designFor 只能为 female/male/all");
|
throw new BusinessException("design.for.only.female.male.or.all");
|
||||||
}
|
}
|
||||||
if (designForEnum != DesignForEnum.ALL) {
|
if (designForEnum != DesignForEnum.ALL) {
|
||||||
queryWrapper.eq(ListingEntity::getDesignFor, designForEnum.getCode());
|
queryWrapper.eq(ListingEntity::getDesignFor, designForEnum.getCode());
|
||||||
|
|||||||
@@ -215,7 +215,7 @@ public class ListingMallServiceImpl extends ServiceImpl<ListingMallMapper, Listi
|
|||||||
.eq(ListingEntity::getStatus, 1)
|
.eq(ListingEntity::getStatus, 1)
|
||||||
.eq(ListingEntity::getDeleted, 0));
|
.eq(ListingEntity::getDeleted, 0));
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
throw new BusinessException("商品不存在");
|
throw new BusinessException("product.not.found");
|
||||||
}
|
}
|
||||||
|
|
||||||
this.baseMapper.incrementViewCount(id);
|
this.baseMapper.incrementViewCount(id);
|
||||||
@@ -336,7 +336,7 @@ public class ListingMallServiceImpl extends ServiceImpl<ListingMallMapper, Listi
|
|||||||
.selectByListingIdAndBuyerIdWithOrderStatus(id, buyerId);
|
.selectByListingIdAndBuyerIdWithOrderStatus(id, buyerId);
|
||||||
|
|
||||||
if (snapshots.isEmpty()) {
|
if (snapshots.isEmpty()) {
|
||||||
throw new BusinessException("该商品尚未被购买,无法查看");
|
throw new BusinessException("product.not.purchased.yet");
|
||||||
}
|
}
|
||||||
|
|
||||||
return snapshots.stream()
|
return snapshots.stream()
|
||||||
|
|||||||
@@ -216,13 +216,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public CreateOrderResultVO createOrder(CreateOrderDTO dto) {
|
public CreateOrderResultVO createOrder(CreateOrderDTO dto) {
|
||||||
if (CollectionUtils.isEmpty(dto.getListingIds())) {
|
if (CollectionUtils.isEmpty(dto.getListingIds())) {
|
||||||
throw new BusinessException("商品ID列表不能为空");
|
throw new BusinessException("product.id.list.cannot.be.empty");
|
||||||
}
|
}
|
||||||
if (dto.getBuyerId() == null) {
|
if (dto.getBuyerId() == null) {
|
||||||
throw new BusinessException("买家ID不能为空");
|
throw new BusinessException("buyer.id.cannot.be.empty");
|
||||||
}
|
}
|
||||||
if (!StringUtils.hasText(dto.getBuyerUsername())) {
|
if (!StringUtils.hasText(dto.getBuyerUsername())) {
|
||||||
throw new BusinessException("买家账号不能为空");
|
throw new BusinessException("buyer.account.cannot.be.empty");
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Long> purchasedListingIds = getPurchasedListingIds(dto.getListingIds(), dto.getBuyerId());
|
List<Long> purchasedListingIds = getPurchasedListingIds(dto.getListingIds(), dto.getBuyerId());
|
||||||
@@ -230,13 +230,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||||||
.filter(id -> !purchasedListingIds.contains(id))
|
.filter(id -> !purchasedListingIds.contains(id))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if (CollectionUtils.isEmpty(unpurchasedListingIds)) {
|
if (CollectionUtils.isEmpty(unpurchasedListingIds)) {
|
||||||
throw new BusinessException("所有商品均已购买,无需重复下单");
|
throw new BusinessException("all.products.already.purchased");
|
||||||
}
|
}
|
||||||
dto.setListingIds(unpurchasedListingIds);
|
dto.setListingIds(unpurchasedListingIds);
|
||||||
|
|
||||||
List<ListingEntity> listings = listingMapper.selectBatchIds(dto.getListingIds());
|
List<ListingEntity> listings = listingMapper.selectBatchIds(dto.getListingIds());
|
||||||
if (CollectionUtils.isEmpty(listings)) {
|
if (CollectionUtils.isEmpty(listings)) {
|
||||||
throw new BusinessException("未找到对应的商品");
|
throw new BusinessException("product.not.found");
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<Long, List<ListingEntity>> listingsBySeller = listings.stream()
|
Map<Long, List<ListingEntity>> listingsBySeller = listings.stream()
|
||||||
@@ -334,13 +334,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||||||
public void updateOrderStatus(UpdateOrderStatusDTO dto) {
|
public void updateOrderStatus(UpdateOrderStatusDTO dto) {
|
||||||
log.info(dto.toString());
|
log.info(dto.toString());
|
||||||
if (dto == null) {
|
if (dto == null) {
|
||||||
throw new BusinessException("订单信息为空");
|
throw new BusinessException("order.info.cannot.be.empty");
|
||||||
}
|
}
|
||||||
if (dto.getStatus() == null) {
|
if (dto.getStatus() == null) {
|
||||||
throw new BusinessException("订单状态不能为空");
|
throw new BusinessException("order.status.cannot.be.empty");
|
||||||
}
|
}
|
||||||
if (dto.getPaymentId() == null && (dto.getOrderIds() == null || dto.getOrderIds().isEmpty())) {
|
if (dto.getPaymentId() == null && (dto.getOrderIds() == null || dto.getOrderIds().isEmpty())) {
|
||||||
throw new BusinessException("订单ID列表不能为空");
|
throw new BusinessException("order.id.list.cannot.be.empty");
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean updated;
|
boolean updated;
|
||||||
@@ -355,7 +355,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||||||
updated = this.update(updateWrapper);
|
updated = this.update(updateWrapper);
|
||||||
|
|
||||||
if (!updated) {
|
if (!updated) {
|
||||||
throw new BusinessException("订单不存在或无权修改");
|
throw new BusinessException("order.not.found.or.no.permission");
|
||||||
} else {
|
} else {
|
||||||
log.info("[Order] PaymentId:{} / OrderId:{}, 更新订单状态", dto.getPaymentId(), dto.getOrderIds());
|
log.info("[Order] PaymentId:{} / OrderId:{}, 更新订单状态", dto.getPaymentId(), dto.getOrderIds());
|
||||||
|
|
||||||
@@ -390,7 +390,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||||||
@Override
|
@Override
|
||||||
public IPage<AssetsItemVO> getAssetsPage(AssetsDTO dto) {
|
public IPage<AssetsItemVO> getAssetsPage(AssetsDTO dto) {
|
||||||
if (dto.getBuyerId() == null) {
|
if (dto.getBuyerId() == null) {
|
||||||
throw new BusinessException("买家ID不能为空");
|
throw new BusinessException("buyer.id.cannot.be.empty");
|
||||||
}
|
}
|
||||||
long page = dto.getPage();
|
long page = dto.getPage();
|
||||||
long size = dto.getSize();
|
long size = dto.getSize();
|
||||||
@@ -425,7 +425,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
|
|||||||
@Override
|
@Override
|
||||||
public void updatePaymentIdByIds(List<Long> orderIds, Long paymentId) {
|
public void updatePaymentIdByIds(List<Long> orderIds, Long paymentId) {
|
||||||
if (CollectionUtils.isEmpty(orderIds)) {
|
if (CollectionUtils.isEmpty(orderIds)) {
|
||||||
throw new BusinessException("订单ID列表不能为空");
|
throw new BusinessException("order.id.list.cannot.be.empty");
|
||||||
}
|
}
|
||||||
LambdaUpdateWrapper<OrderInfoEntity> updateWrapper = new LambdaUpdateWrapper<>();
|
LambdaUpdateWrapper<OrderInfoEntity> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
updateWrapper.in(OrderInfoEntity::getId, orderIds)
|
updateWrapper.in(OrderInfoEntity::getId, orderIds)
|
||||||
|
|||||||
323
src/main/resources/messages_en.properties
Normal file
323
src/main/resources/messages_en.properties
Normal file
@@ -0,0 +1,323 @@
|
|||||||
|
# 不易报异常
|
||||||
|
system.error=System error.
|
||||||
|
unknown.authentication.operation.type=Unknown authentication operation type.
|
||||||
|
failed.to.send.mail=Failed to send mail.
|
||||||
|
unknown.login.type=Unknown login type.
|
||||||
|
error.login.type=Error login type.
|
||||||
|
get.moodBoards.data.is.mismatch=Get moodBoards data is mismatch.
|
||||||
|
get.printBoards.data.is.mismatch=Get printBoards data is mismatch.
|
||||||
|
get.sketchBoards.data.is.mismatch=Get sketchBoards data is mismatch.
|
||||||
|
modelPoint.not.found=ModelPoint not found.
|
||||||
|
collection.not.found=Collection not found.
|
||||||
|
design.not.found=Design not found.
|
||||||
|
designItem.not.found=DesignItem not found.
|
||||||
|
userLikeGroup.not.found=UserLikeGroup not found.
|
||||||
|
old.elements.not.found=Old elements not found.
|
||||||
|
new.designItemDetails.not.found=New designItemDetails not found.
|
||||||
|
save.workspace.failed=Save workspace failed.
|
||||||
|
save.design.failed=Save design failed.
|
||||||
|
update.workspace.failed=Update workspace failed.
|
||||||
|
enumeration.class.not.found=Enumeration class not found.
|
||||||
|
history.detail.not.found=History detail not found.
|
||||||
|
designItemDetails.not.found=DesignItemDetails not found.
|
||||||
|
designPythonOutfit.not.found=DesignPythonOutfit not found.
|
||||||
|
unknown.parameter.level1Type=Unknown parameter level1Type.
|
||||||
|
collectionElement.not.found=collectionElement not found.
|
||||||
|
select1.file.does.not.exist=Select1 file does not exist.
|
||||||
|
select2.file.does.not.exist=Select2 file does not exist.
|
||||||
|
save.collectionElement.failed=Save collectionElement failed.
|
||||||
|
collectionElements.not.found=CollectionElements not found.
|
||||||
|
batch.save.libraryList.failed=Batch save libraryList failed.
|
||||||
|
panTones.not.found=tcx value not found.
|
||||||
|
save.designItem.failed=Save designItem failed.
|
||||||
|
unknown.type=Unknown type.
|
||||||
|
unknown.operateType=Unknown operateType.
|
||||||
|
unknown.level1TypeEnum=Unknown level1TypeEnum.
|
||||||
|
the.id.value.is.out.of.range=The id value is out of range.
|
||||||
|
library.not.found=Library not found.
|
||||||
|
wrong.clothes.type=Wrong clothes type.
|
||||||
|
sysFile.not.found=SysFile not found.
|
||||||
|
libraryList.not.found=LibraryList not found.
|
||||||
|
groupDetails.not.found=GroupDetails not found.
|
||||||
|
history.not.found=History not found.
|
||||||
|
unknown.parameter.level2Type=Unknown parameter level2Type.
|
||||||
|
MARKETING_SKETCH.type.have.been.removed=MARKETING_SKETCH type have been removed.
|
||||||
|
unknown.modelType=Unknown modelType.
|
||||||
|
save.library.failed=Save library failed.
|
||||||
|
get.file.failed=Get file failed.
|
||||||
|
the.path.is.error=The path is error.
|
||||||
|
batch.save.colorElements.failed=Batch save colorElements failed.
|
||||||
|
initSysFile.ioException=InitSysFile ioException.
|
||||||
|
save.sysFile.failed=Save sysFile failed.
|
||||||
|
save.pythonTAllInfo.failed=Save pythonTAllInfo failed.
|
||||||
|
save.collection.failed=Save collection failed.
|
||||||
|
save.designItemDetail.failed=Save designItemDetail failed.
|
||||||
|
save.classification.failed=Save classification failed.
|
||||||
|
update.classification.failed=Update classification failed.
|
||||||
|
please.input.the.prompt=Please input the prompt.
|
||||||
|
please.choose.an.image=Please choose an image.
|
||||||
|
please.input.the.caption.and.choose.an.image=Please input the caption and choose an image.
|
||||||
|
please.input.the.caption.or.choose.an.image=Please input the caption or choose an image.
|
||||||
|
duplicate.likes.are.not.allowed=Duplicate likes are not allowed.
|
||||||
|
layer.information.not.found=Layer information not found.
|
||||||
|
singleOverall.cannot.be.empty=singleOverall cannot be empty.
|
||||||
|
colorBoards.cannot.be.empty=colorBoards cannot be empty.
|
||||||
|
systemScale.cannot.be.empty=systemScale cannot be empty.
|
||||||
|
modelType.cannot.be.empty=modelType cannot be empty.
|
||||||
|
modelSex.cannot.be.empty=modelSex cannot be empty.
|
||||||
|
templateId.cannot.be.empty=templateId cannot be empty.
|
||||||
|
processId.cannot.be.empty=processId cannot be empty.
|
||||||
|
timeZone.cannot.be.empty=TimeZone cannot be empty.
|
||||||
|
userId.cannot.be.empty=userId cannot be empty.
|
||||||
|
email.cannot.be.empty=email cannot be empty.
|
||||||
|
operationType.cannot.be.empty=operationType cannot be empty.
|
||||||
|
password.cannot.be.empty=Password cannot be empty.
|
||||||
|
emailVerifyCode.cannot.be.empty=emailVerifyCode cannot be empty.
|
||||||
|
loginType.cannot.be.empty=loginType cannot be empty.
|
||||||
|
userName.cannot.be.empty=userName cannot be empty.
|
||||||
|
sketchBoards.designType.cannot.be.empty=sketchBoards designType cannot be empty.
|
||||||
|
moodBoards.designType.cannot.be.empty=moodBoards designType cannot be empty.
|
||||||
|
printBoards.designType.cannot.be.empty=printBoards designType cannot be empty.
|
||||||
|
unknown.parameter.singleOverall=unknown parameter singleOverall.
|
||||||
|
unknown.parameter.switchCategory=unknown parameter switchCategory.
|
||||||
|
collectionId.cannot.be.empty=collectionId cannot be empty.
|
||||||
|
designPythonOutfitId.cannot.be.empty=designPythonOutfitId cannot be empty.
|
||||||
|
designItemId.cannot.be.empty=designItemId cannot be empty.
|
||||||
|
designId.cannot.be.empty=designId cannot be empty.
|
||||||
|
groupDetailId.cannot.be.empty=groupDetailId cannot be empty.
|
||||||
|
validStartTime.cannot.be.empty=validStartTime cannot be empty.
|
||||||
|
validEndTime.cannot.be.empty=validEndTime cannot be empty.
|
||||||
|
user_id.cannot.be.empty=user_id cannot be empty.
|
||||||
|
session_id.cannot.be.empty=session_id cannot be empty.
|
||||||
|
rgbValue.cannot.be.empty=rgbValue cannot be empty.
|
||||||
|
file.cannot.be.empty=file cannot be empty.
|
||||||
|
file.type.unsupported=Unsupported file type.
|
||||||
|
file.size.exceed.limit=File size exceeds the limit.
|
||||||
|
select1Id.cannot.be.empty=select1Id cannot be empty.
|
||||||
|
select2Id.cannot.be.empty=select2Id cannot be empty.
|
||||||
|
isPin.cannot.be.empty=isPin cannot be empty.
|
||||||
|
designType.cannot.be.empty=designType cannot be empty.
|
||||||
|
priority.cannot.be.empty=priority cannot be empty.
|
||||||
|
clothes.cannot.be.empty=clothes cannot be empty.
|
||||||
|
isPreview.cannot.be.empty=isPreview cannot be empty.
|
||||||
|
h.cannot.be.empty=h cannot be empty.
|
||||||
|
s.cannot.be.empty=s cannot be empty.
|
||||||
|
v.cannot.be.empty=v cannot be empty.
|
||||||
|
userGroupId.cannot.be.empty=userGroupId cannot be empty.
|
||||||
|
userGroupName.cannot.be.empty=userGroupName cannot be empty.
|
||||||
|
libraryId.cannot.be.empty=libraryId cannot be empty.
|
||||||
|
shoulderLeft.cannot.be.empty=shoulderLeft cannot be empty.
|
||||||
|
shoulderRight.cannot.be.empty=shoulderRight cannot be empty.
|
||||||
|
waistbandLeft.cannot.be.empty=waistbandLeft cannot be empty.
|
||||||
|
waistbandRight.cannot.be.empty=waistbandRight cannot be empty.
|
||||||
|
handLeft.cannot.be.empty=handLeft cannot be empty.
|
||||||
|
handRight.cannot.be.empty=handRight cannot be empty.
|
||||||
|
id.cannot.be.empty=id cannot be empty.
|
||||||
|
url.cannot.be.empty=url cannot be empty.
|
||||||
|
type.cannot.be.empty=type cannot be empty.
|
||||||
|
color.cannot.be.empty=color cannot be empty.
|
||||||
|
generateDetailId.cannot.be.empty=generateDetailId cannot be empty.
|
||||||
|
level1Type.cannot.be.empty=level1Type cannot be empty.
|
||||||
|
regionNum.cannot.be.empty=regionNum cannot be empty.
|
||||||
|
phone.cannot.be.empty=phone cannot be empty.
|
||||||
|
printId.cannot.be.empty=printId cannot be empty.
|
||||||
|
path.cannot.be.empty=path cannot be empty.
|
||||||
|
classificationName.cannot.be.empty=classificationName cannot be empty.
|
||||||
|
level2Type.cannot.be.empty=level2Type cannot be empty.
|
||||||
|
generateItem.does.not.exist=generateItem does not exist.
|
||||||
|
level1Type.does.not.match=level1Type does not match.
|
||||||
|
the.image.does.not.exist.please.reselect=the image does not exist, please reselect.
|
||||||
|
design.item.does.not.exist=design item does not exist.
|
||||||
|
layers.does.not.exists=layers does not exists.
|
||||||
|
unknown.generate.type=unknown generate type.
|
||||||
|
the.workspace.lastIndex.not.found=The workspace lastIndex not found.
|
||||||
|
gender.cannot.be.empty=gender cannot be empty.
|
||||||
|
image.synthesis.failed=image synthesis failed.
|
||||||
|
priority.cannot.be.repeated=priority cannot be repeated.
|
||||||
|
model.not.found=model not found.
|
||||||
|
libraryIdList.cannot.be.empty=libraryIdList cannot be empty.
|
||||||
|
the.value.range.of.seed=The value range of seed is 0-99999
|
||||||
|
image.modify.failed=Image modification failed, please try again later.
|
||||||
|
slogan.style.cannot.be.empty=Slogan style text cannot be empty.
|
||||||
|
slogan.image.cannot.be.empty=Slogan image cannot be empty.
|
||||||
|
questionnaire.filled.out=You have filled out the current questionnaire.
|
||||||
|
user.has.no.account=The current user has no account.
|
||||||
|
you.cannot.follow.yourself=You cannot follow yourself.
|
||||||
|
you.have.already.followed.this.user=You have already followed this user.
|
||||||
|
subscription.success=Subscription Success.
|
||||||
|
unsubscribe.success=Unsubscribe Success.
|
||||||
|
you.have.not.followed.the.current.user=You have not followed the current user.
|
||||||
|
remaining.modifications=Remaining modifications are 0.
|
||||||
|
you.have.participated.in.the.event=You have participated in the event.
|
||||||
|
only.original.works.can.participate.in.the.event=Sorry, only original works can participate in the event.
|
||||||
|
remaining.credits.insufficient=Your remaining credits are insufficient for this generation. Please recharge.
|
||||||
|
you.haven't.subscribed.to.any.products.yet=You haven't subscribed to any products yet.
|
||||||
|
generate.result.below.standard=The quality of the generated images currently falls below standard. Please consider adjusting your prompt and trying again.
|
||||||
|
partial.design.failed=Partial design failed. Please try again later.
|
||||||
|
email.count.limit=Rate limit reached. Retry in 1 hour.
|
||||||
|
model.path.cannot.be.empty=Model path cannot be empty.
|
||||||
|
this.promotion.code.has.expired=This promotion code has expired.
|
||||||
|
this.promotion.code.is.invalid=This promotion code is invalid.
|
||||||
|
one.time.limit.per.customer=This code has already been redeemed. Promo codes are limited to one-time use per customer.
|
||||||
|
element.already.exists=This element already exists in the public library.
|
||||||
|
have.no.permission=Sorry, you don't have permission.
|
||||||
|
permit.bulk.creation=The system permits bulk account creation exclusively when no sub-accounts exist.
|
||||||
|
school.account.login=School account detected. Please log in through the Academic portal.
|
||||||
|
enterprise.account.login=Enterprise account detected. Please log in through the Enterprise portal.
|
||||||
|
white.bg.add.fail=Failed to apply white background to the transparent image.
|
||||||
|
message.confirm.fail=Message confirmation failed. Switching to manual confirmation.
|
||||||
|
unknown.designPictureType=unknown designPictureType.
|
||||||
|
base64.data.empty=Invalid parameter: Image base64 data is empty.
|
||||||
|
edited.account.information.cannot.be.blank=The edited account information cannot be blank!
|
||||||
|
oldEmail.cannot.be.empty=oldEmail cannot be empty!
|
||||||
|
oldUserName.cannot.be.empty=oldUserName cannot be empty!
|
||||||
|
oldUserName.does.not.exist=oldUserName does not exist!
|
||||||
|
oldAccount.does.not.exist=oldAccount does not exist!
|
||||||
|
the.Google.has.been.bound=Cannot link: Google account already in use.
|
||||||
|
Unable.to.obtain.WeChat.account.information=Unable to obtain WeChat account information. Binding failed.
|
||||||
|
title.has.been.used=The title of the published work has been used.
|
||||||
|
source.image.does.not.exist=The source image does not exist.
|
||||||
|
email.has.been.registered=The email has already been registered.
|
||||||
|
unknown.subscription.type=Unknown subscription type.
|
||||||
|
unknown.product.type=Unknown product type.
|
||||||
|
unknown.Promotion.Code=Unknown Promotion Code.
|
||||||
|
file.upload.fail=File upload failed.
|
||||||
|
project.id.cannot.be.empty=Project id cannot be empty.
|
||||||
|
failed.to.obtain.system.sketch.recommendation=Failed to obtain system sketch recommendation.
|
||||||
|
pose.transformation.error=Pose transformation failed.
|
||||||
|
order.creation.failed=Order creation failed.
|
||||||
|
order.deduction.failed=Order deduction failed.
|
||||||
|
order.query.failed=Order query failed.
|
||||||
|
do.not.have.the.permission.to.delete.this.comment=You do not have the permission to delete this comment.
|
||||||
|
unknow.affiliate=Unknown affiliate id.
|
||||||
|
unknown.operationType=Unknown operationType.
|
||||||
|
unknown.mode=unknown mode
|
||||||
|
unknown.subscription.plan=unknown subscription plan
|
||||||
|
unknown.subscription.status=Unknown subscription status.
|
||||||
|
subscription.has.expired=Switch failed. The subscription has expired.
|
||||||
|
unknown.administrator.user=Operation failed. Unknown administrator user.
|
||||||
|
no.permission.manage.subscription=Switch failed. You do not have permission to manage this subscription.
|
||||||
|
unknown.organization=Unknown organization.
|
||||||
|
valid.subscription.period=The plan is still within its valid period. Please delete it after it expires.
|
||||||
|
users.currently.using.this.plan=There are users currently using this plan, so it cannot be deleted.
|
||||||
|
deletion.failed.please.try.again.later=Deletion failed. Please try again later.
|
||||||
|
subscription.plan.has.been.deleted=This subscription plan has been deleted.
|
||||||
|
subscription.plan.does.not.exist=The subscription plan does not exist.
|
||||||
|
ID.cannot.be.empty.and.must.be.greater.than.0=ID cannot be empty and must be greater than 0.
|
||||||
|
invalid.time.format=Invalid time format. Please use the yyyy-MM-dd HH:mm:ss format.
|
||||||
|
the.start.time.cannot.be.later.than.the.end.time=The start time cannot be later than the end time.
|
||||||
|
page.size.limit=The number of items per page must be between 1 and 100.
|
||||||
|
page.num.limit=The page number must be greater than 0.
|
||||||
|
end.time.must.be.later.than.the.start.time=The subscription end time must be later than the start time.
|
||||||
|
please.specify.the.organizationId=Please specify the organizationId.
|
||||||
|
switch.failed.sub-account.not.under.your.active.subscription=Switch failed. Sub-account not under your active subscription.
|
||||||
|
Sub-accounts.cannot.be.admins=Sub-accounts in a subscription cannot be designated as admins.
|
||||||
|
only.subscription.plans.with.a.PENDING.status.can.have.their.start.time.modified=Only subscription plans with a PENDING status can have their start time modified.
|
||||||
|
end.time.cannot.be.earlier.than.or.equal.to.start.time=End time cannot be earlier than or equal to start time.
|
||||||
|
end.time.cannot.be.earlier.than.or.equal.to.the.current.time=End time cannot be earlier than or equal to the current time.
|
||||||
|
the.subscription.end.date.can.be.extended.only.not.reduced=The subscription end date can be extended only, not reduced.
|
||||||
|
total.sub-account.quota.cannot.be.lower.than.existing.sub-accounts=Total sub-account quota cannot be lower than existing sub-accounts.
|
||||||
|
the.credit.limit.set.cannot.be.lower.than.the.amount.of.credits.already.used=The credit limit set cannot be lower than the amount of credits already used.
|
||||||
|
administrator.user.is.already.bound.to.different.organization=This administrator user is already bound to a subscription plan of a different organization.
|
||||||
|
required.partialDesign='partialDesign' (base64 or path) is required when updating an individual outfit.
|
||||||
|
account.not.found=Account not found.
|
||||||
|
verification.code.expired=Verification code has expired. Please request a new code to proceed.
|
||||||
|
verification.code.error=Verification code entered is incorrect. Please check and try again.
|
||||||
|
unknown.message=Unknown message.
|
||||||
|
forbidden.external.access=Forbidden: external access is not allowed for this endpoint.
|
||||||
|
failed.to.send.mail=Failed to send email.
|
||||||
|
remote.service.error=Remote service business error.
|
||||||
|
designer.already.applied=This user has already submitted an application or is already入驻.
|
||||||
|
designer.application.not.found=Application record not found.
|
||||||
|
current.status.not.support.review=Current status does not support review operation.
|
||||||
|
designer.record.not.found=Designer record not found.
|
||||||
|
designer.not.found=Designer not found.
|
||||||
|
product.id.list.cannot.be.empty=Product ID list cannot be empty.
|
||||||
|
buyer.id.cannot.be.empty=Buyer ID cannot be empty.
|
||||||
|
buyer.account.cannot.be.empty=Buyer account cannot be empty.
|
||||||
|
all.products.already.purchased=All products have already been purchased, no need to place a duplicate order.
|
||||||
|
product.not.found=Product not found.
|
||||||
|
order.info.cannot.be.empty=Order information cannot be empty.
|
||||||
|
order.status.cannot.be.empty=Order status cannot be empty.
|
||||||
|
order.id.list.cannot.be.empty=Order ID list cannot be empty.
|
||||||
|
order.not.found.or.no.permission=Order not found or no permission to modify.
|
||||||
|
design.for.only.male.or.female=designFor can only be male/female.
|
||||||
|
product.title.cannot.be.empty=Product title cannot be empty.
|
||||||
|
product.description.cannot.be.empty=Product description cannot be empty.
|
||||||
|
product.price.cannot.be.empty=Product price cannot be empty.
|
||||||
|
product.gender.cannot.be.empty=Product gender cannot be empty.
|
||||||
|
product.gender.must.be.male.or.female=Product gender can only be male/female.
|
||||||
|
product.category.cannot.be.empty=Product category cannot be empty.
|
||||||
|
product.category.must.be.valid=Product category can only be outwear/trousers/blouse/dress/skirt/others/tops/bottoms.
|
||||||
|
design.for.only.female.male.or.all=designFor can only be female/male/all.
|
||||||
|
product.not.purchased.yet=This product has not been purchased yet and cannot be viewed.
|
||||||
|
category.required=category [] is required.
|
||||||
|
category.imageUrl.cannot.be.empty= category imageUrl cannot be null or empty.
|
||||||
|
|
||||||
|
# 可能会报异常
|
||||||
|
userName.does.not.exist=Username or password is incorrect. Please check your entry and try again.
|
||||||
|
password.error=Username or password is incorrect. Please check your entry and try again.
|
||||||
|
email.error=Email is incorrect, please enter the correct bound email.
|
||||||
|
email.does.not.exist=Email address does not exist in our records. Please check and try again.
|
||||||
|
the.verification.code.has.expired=Verification code has expired. Please request a new code to proceed.
|
||||||
|
verification.code.error=Verification code entered is incorrect. Please check and try again.
|
||||||
|
the.number.of.PIN.top.or.bottom.or.outerwear.sketchBoard.cannot.be.more.than.8=You cannot have more than 8 PIN tops, bottoms, or outerwear in the sketchBoard. Please adjust accordingly.
|
||||||
|
hsv.value.cannot.exceed.the.maximum.of.8=hsv value cannot exceed the maximum of 8.
|
||||||
|
the.workspaceName.already.exists=A workspace with this name already exists. Please enter a different name.
|
||||||
|
unable.to.delete.the.workspace.you.are.currently.using=The workspace you are currently using cannot be deleted. Please select another workspace before trying to delete.
|
||||||
|
classificationName.already.exists=The label name you've entered already exists. Please enter a different label name to avoid duplication.
|
||||||
|
account.expired=Your subscription has expired, and your account has been reset to a visitor account. Please log in again from the [Individual] entry. If you have any questions, please contact us at info@code-create.com.hk
|
||||||
|
relate.to.any.subscription=Your administrator account is not currently linked to any subscription. If you have any questions, please contact us at info@code-create.com.hk
|
||||||
|
|
||||||
|
# Warnings
|
||||||
|
the.classification.you.deleted.has.associated.library=The label you are attempting to delete is associated with existing data. Are you sure you wish to proceed with deletion?
|
||||||
|
the.model.has.been.referenced.by.the.workspace=This model is currently in use by a workspace. Deleting it might affect the workspace. Confirm deletion only if you are sure.
|
||||||
|
balance.insufficient.for.trial=Want to continue using it immediately? Please consider upgrading to our subscription plan to get more quota.
|
||||||
|
balance.insufficient.for.paying=You have reached your usage limit for this month.
|
||||||
|
|
||||||
|
# Errors
|
||||||
|
system.busy=System is currently busy. Please wait a moment and try again.
|
||||||
|
user.expired=Your user session has expired. Please contact an administrator to renew your usage rights.
|
||||||
|
attributeRetrieval.interface.exception=We encountered an error retrieving attribute data. (Please try again later. If this issue persists, please contact us at help@aida.com.hk.)
|
||||||
|
design.interface.exception=We encountered an error with the design interface. (Please try again later. If this issue persists, please contact us at help@aida.com.hk.)
|
||||||
|
processMannequins.interface.exception=We encountered an error uploading mannequins. (Please try again later. If this issue persists, please contact us at help@aida.com.hk.)
|
||||||
|
processSketchBoards.interface.exception=We encountered an error uploading sketchBoard. (Please try again later. If this issue persists, please contact us at help@aida.com.hk.)
|
||||||
|
designProcess.interface.exception=There's been an issue loading the progress bar. (Please try again later. If this issue persists, please contact us at help@aida.com.hk.)
|
||||||
|
generate.interface.exception=We are currently experiencing a high volume of generating requests. (Please try again later. If the problem continues, reach out to us at help@aida.com.hk for support.)
|
||||||
|
generate.interface.error=We encountered an error with the generate interface. (Please try again later. If this issue persists, please contact us at help@aida.com.hk.)
|
||||||
|
chat-bot.interface.exception=We encountered an error with the chat robot interface.(Please try again later. If this issue persists, please contact us at help@aida.com.hk.)
|
||||||
|
compose-layer.interface.exception=We encountered issues while flattening the layers.(Please try again later. If this issue persists, please contact us at help@aida.com.hk.)
|
||||||
|
cloth-classification.interface.exception=We encountered some issues while obtaining clothing categories.(Please try again later. If this issue persists, please contact us at help@aida.com.hk.)
|
||||||
|
sr.interface.error=We encountered an error with the super resolution. (Please try again later. If this issue persists, please contact us at help@aida.com.hk.)
|
||||||
|
|
||||||
|
# 多语言返回
|
||||||
|
OVERALL=Overall
|
||||||
|
TOPS=Tops
|
||||||
|
BOTTOMS=Bottoms
|
||||||
|
OUTWEAR=Outwear
|
||||||
|
OTHERS=Others
|
||||||
|
BLOUSE=Blouse
|
||||||
|
DRESS=Dress
|
||||||
|
TROUSERS=Trousers
|
||||||
|
SKIRT=Skirt
|
||||||
|
FEMALE=Women's Fashion
|
||||||
|
MALE=Men's Fashion
|
||||||
|
SLOGAN=Slogan
|
||||||
|
LOGO=Logo
|
||||||
|
PATTERN=Pattern
|
||||||
|
EMBROIDERY=Embroidery
|
||||||
|
BEADING=Beading
|
||||||
|
PEARL=Pearl
|
||||||
|
RIVET=Rivet
|
||||||
|
BUTTON=Button
|
||||||
|
BELT=Belt
|
||||||
|
CORSAGE=Corsage
|
||||||
|
ZIPPER=Zipper
|
||||||
|
POCKET=Pocket
|
||||||
|
THICK=Thick Lines
|
||||||
|
MEDIUM=Medium Lines
|
||||||
|
THIN=Thin lines
|
||||||
|
GENERATE=Generate Sketch
|
||||||
|
EXTRACT=Extract Sketch
|
||||||
|
CHILD=Child
|
||||||
|
ADULT=Adult
|
||||||
320
src/main/resources/messages_zh.properties
Normal file
320
src/main/resources/messages_zh.properties
Normal file
@@ -0,0 +1,320 @@
|
|||||||
|
# 不易报异常
|
||||||
|
system.error=系统错误。
|
||||||
|
unknown.authentication.operation.type=未知的身份验证操作类型。
|
||||||
|
failed.to.send.mail=邮件发送失败。
|
||||||
|
unknown.login.type=未知的登录类型。
|
||||||
|
error.login.type=错误的登录类型。
|
||||||
|
get.moodBoards.data.is.mismatch=获取心情板数据不匹配。
|
||||||
|
get.printBoards.data.is.mismatch=获取印花板数据不匹配。
|
||||||
|
get.sketchBoards.data.is.mismatch=获取草图板数据不匹配。
|
||||||
|
modelPoint.not.found=未找到ModelPoint。
|
||||||
|
collection.not.found=未找到Collection。
|
||||||
|
design.not.found=未找到Design。
|
||||||
|
designItem.not.found=未找到DesignItem。
|
||||||
|
userLikeGroup.not.found=未找到UserLikeGroup。
|
||||||
|
old.elements.not.found=未找到旧元素。
|
||||||
|
new.designItemDetails.not.found=未找到新的DesignItemDetails。
|
||||||
|
save.workspace.failed=保存工作区失败。
|
||||||
|
save.design.failed=保存设计失败。
|
||||||
|
update.workspace.failed=更新工作区失败。
|
||||||
|
enumeration.class.not.found=未找到枚举类。
|
||||||
|
history.detail.not.found=未找到历史详情。
|
||||||
|
designItemDetails.not.found=未找到DesignItemDetails。
|
||||||
|
designPythonOutfit.not.found=未找到DesignPythonOutfit。
|
||||||
|
unknown.parameter.level1Type=未知的参数level1Type。
|
||||||
|
collectionElement.not.found=未找到collectionElement。
|
||||||
|
select1.file.does.not.exist=选择的文件不存在。
|
||||||
|
select2.file.does.not.exist=选择的文件不存在。
|
||||||
|
save.collectionElement.failed=保存collectionElement失败。
|
||||||
|
collectionElements.not.found=未找到CollectionElements。
|
||||||
|
batch.save.libraryList.failed=批量保存libraryList失败。
|
||||||
|
panTones.not.found=未找到tcx value。
|
||||||
|
save.designItem.failed=保存DesignItem失败。
|
||||||
|
unknown.type=未知类型。
|
||||||
|
unknown.operateType=未知操作类型。
|
||||||
|
unknown.level1TypeEnum=未知的level1TypeEnum。
|
||||||
|
the.id.value.is.out.of.range=ID值超出范围。
|
||||||
|
library.not.found=未找到Library。
|
||||||
|
wrong.clothes.type=错误的服装类型。
|
||||||
|
sysFile.not.found=未找到SysFile。
|
||||||
|
libraryList.not.found=未找到LibraryList。
|
||||||
|
groupDetails.not.found=未找到GroupDetails。
|
||||||
|
history.not.found=未找到History。
|
||||||
|
unknown.parameter.level2Type=未知的参数level2Type。
|
||||||
|
MARKETING_SKETCH.type.have.been.removed=MARKETING_SKETCH类型已移除。
|
||||||
|
unknown.modelType=未知的modelType。
|
||||||
|
save.library.failed=保存Library失败。
|
||||||
|
get.file.failed=获取文件失败。
|
||||||
|
the.path.is.error=路径错误。
|
||||||
|
batch.save.colorElements.failed=批量保存colorElements失败。
|
||||||
|
initSysFile.ioException=初始化SysFile时发生IOException。
|
||||||
|
save.sysFile.failed=保存SysFile失败。
|
||||||
|
save.pythonTAllInfo.failed=保存PythonTAllInfo失败。
|
||||||
|
save.collection.failed=保存Collection失败。
|
||||||
|
save.designItemDetail.failed=保存DesignItemDetail失败。
|
||||||
|
save.classification.failed=保存Classification失败。
|
||||||
|
update.classification.failed=更新Classification失败。
|
||||||
|
please.input.the.prompt=请输入标题。
|
||||||
|
please.choose.an.image=请选择图片。
|
||||||
|
please.input.the.caption.and.choose.an.image=请输入标题并选择图片。
|
||||||
|
please.input.the.caption.or.choose.an.image=请输入标题或选择图片。
|
||||||
|
duplicate.likes.are.not.allowed=不允许重复点赞。
|
||||||
|
layer.information.not.found=未找到图层信息。
|
||||||
|
singleOverall.cannot.be.empty=singleOverall不能为空。
|
||||||
|
colorBoards.cannot.be.empty=colorBoards不能为空。
|
||||||
|
systemScale.cannot.be.empty=systemScale不能为空。
|
||||||
|
modelType.cannot.be.empty=modelType不能为空。
|
||||||
|
modelSex.cannot.be.empty=modelSex不能为空。
|
||||||
|
templateId.cannot.be.empty=templateId不能为空。
|
||||||
|
processId.cannot.be.empty=processId不能为空。
|
||||||
|
timeZone.cannot.be.empty=TimeZone不能为空。
|
||||||
|
userId.cannot.be.empty=userId不能为空。
|
||||||
|
email.cannot.be.empty=email不能为空。
|
||||||
|
operationType.cannot.be.empty=operationType不能为空。
|
||||||
|
password.cannot.be.empty=密码不能为空。
|
||||||
|
emailVerifyCode.cannot.be.empty=emailVerifyCode不能为空。
|
||||||
|
loginType.cannot.be.empty=loginType不能为空。
|
||||||
|
userName.cannot.be.empty=用户名不能为空。
|
||||||
|
sketchBoards.designType.cannot.be.empty=sketchBoards designType不能为空。
|
||||||
|
moodBoards.designType.cannot.be.empty=moodBoards designType不能为空。
|
||||||
|
printBoards.designType.cannot.be.empty=printBoards designType不能为空。
|
||||||
|
unknown.parameter.singleOverall=未知参数singleOverall。
|
||||||
|
unknown.parameter.switchCategory=未知参数switchCategory。
|
||||||
|
collectionId.cannot.be.empty=collectionId不能为空。
|
||||||
|
designPythonOutfitId.cannot.be.empty=designPythonOutfitId不能为空。
|
||||||
|
designItemId.cannot.be.empty=designItemId不能为空。
|
||||||
|
designId.cannot.be.empty=designId不能为空。
|
||||||
|
groupDetailId.cannot.be.empty=groupDetailId不能为空。
|
||||||
|
validStartTime.cannot.be.empty=validStartTime不能为空。
|
||||||
|
validEndTime.cannot.be.empty=validEndTime不能为空。
|
||||||
|
user_id.cannot.be.empty=user_id不能为空。
|
||||||
|
session_id.cannot.be.empty=session_id不能为空。
|
||||||
|
rgbValue.cannot.be.empty=rgbValue不能为空。
|
||||||
|
file.cannot.be.empty=文件不能为空。
|
||||||
|
file.type.unsupported=不支持的文件类型。
|
||||||
|
file.size.exceed.limit=文件大小超出限制。
|
||||||
|
select1Id.cannot.be.empty=select1Id不能为空。
|
||||||
|
select2Id.cannot.be.empty=select2Id不能为空。
|
||||||
|
isPin.cannot.be.empty=isPin不能为空。
|
||||||
|
designType.cannot.be.empty=designType不能为空。
|
||||||
|
priority.cannot.be.empty=priority不能为空。
|
||||||
|
clothes.cannot.be.empty=clothes不能为空。
|
||||||
|
isPreview.cannot.be.empty=isPreview不能为空。
|
||||||
|
h.cannot.be.empty=h不能为空。
|
||||||
|
s.cannot.be.empty=s不能为空。
|
||||||
|
v.cannot.be.empty=v不能为空。
|
||||||
|
userGroupId.cannot.be.empty=userGroupId不能为空。
|
||||||
|
userGroupName.cannot.be.empty=userGroupName不能为空。
|
||||||
|
libraryId.cannot.be.empty=libraryId不能为空。
|
||||||
|
shoulderLeft.cannot.be.empty=shoulderLeft不能为空。
|
||||||
|
shoulderRight.cannot.be.empty=shoulderRight不能为空。
|
||||||
|
waistbandLeft.cannot.be.empty=waistbandLeft不能为空。
|
||||||
|
waistbandRight.cannot.be.empty=waistbandRight不能为空。
|
||||||
|
handLeft.cannot.be.empty=handLeft不能为空。
|
||||||
|
handRight.cannot.be.empty=handRight不能为空。
|
||||||
|
id.cannot.be.empty=id不能为空。
|
||||||
|
url.cannot.be.empty=url不能为空。
|
||||||
|
type.cannot.be.empty=type不能为空。
|
||||||
|
color.cannot.be.empty=颜色不能为空。
|
||||||
|
generateDetailId.cannot.be.empty=generateDetailId不能为空。
|
||||||
|
level1Type.cannot.be.empty=level1Type不能为空。
|
||||||
|
regionNum.cannot.be.empty=regionNum不能为空。
|
||||||
|
phone.cannot.be.empty=手机号不能为空。
|
||||||
|
printId.cannot.be.empty=printId不能为空。
|
||||||
|
path.cannot.be.empty=路径不能为空。
|
||||||
|
classificationName.cannot.be.empty=标签名不能为空。
|
||||||
|
level2Type.cannot.be.empty=level2Type不能为空。
|
||||||
|
generateItem.does.not.exist=generateItem不存在。
|
||||||
|
level1Type.does.not.match=level1Type不匹配。
|
||||||
|
the.image.does.not.exist.please.reselect=图片不存在,请重新选择。
|
||||||
|
design.item.does.not.exist=设计项目不存在。
|
||||||
|
layers.does.not.exists=图层不存在。
|
||||||
|
unknown.generate.type=未知的生成类型。
|
||||||
|
the.workspace.lastIndex.not.found=未找到工作区的lastIndex。
|
||||||
|
gender.cannot.be.empty=性别不能为空。
|
||||||
|
image.synthesis.failed=图像合成失败。
|
||||||
|
priority.cannot.be.repeated=优先级不能重复。
|
||||||
|
image.modify.failed=图片修改失败,请稍后重试。
|
||||||
|
slogan.style.cannot.be.empty=标语风格文本不能为空。
|
||||||
|
slogan.image.cannot.be.empty=标语图片不能为空。
|
||||||
|
questionnaire.filled.out=您已填写过当前问卷。
|
||||||
|
user.has.no.account=当前用户没有账号。
|
||||||
|
you.cannot.follow.yourself=您不能关注您自己。
|
||||||
|
you.have.already.followed.this.user=您已经关注当前用户。
|
||||||
|
subscription.success=订阅成功。
|
||||||
|
unsubscribe.success=取消订阅成功。
|
||||||
|
you.have.not.followed.the.current.user=您还未关注当前用户。
|
||||||
|
remaining.modifications=剩余修改次数为0。
|
||||||
|
you.have.participated.in.the.event=您已经参与活动。
|
||||||
|
only.original.works.can.participate.in.the.event=抱歉,只有原创作品能参与活动。
|
||||||
|
remaining.credits.insufficient=您的剩余积分不够本次生成消耗,请充值。
|
||||||
|
you.haven't.subscribed.to.any.products.yet=您还未订阅任何产品。
|
||||||
|
generate.result.below.standard=当前生成的图像质量低于标准。请考虑调整您的提示词并再次尝试。
|
||||||
|
partial.design.failed=局部设计失败,请稍后重试。
|
||||||
|
email.count.limit=您的账号触发邮件发送频率限制,请一小时后重试。
|
||||||
|
model.path.cannot.be.empty=模特路径不能为空。
|
||||||
|
this.promotion.code.has.expired=该促销码已过期。
|
||||||
|
this.promotion.code.is.invalid=该促销码无效。
|
||||||
|
one.time.limit.per.customer=该码已兑换,每个促销码每位用户仅限使用一次。
|
||||||
|
element.already.exists=元素已存在于公共库中。
|
||||||
|
have.no.permission=您没有权限。
|
||||||
|
permit.bulk.creation=系统仅当不存在任何子账号时,才允许批量创建账号。
|
||||||
|
school.account.login=检测到学校账号,请从教育版入口登录。
|
||||||
|
enterprise.account.login=检测到企业账号,请从企业版入口登录。
|
||||||
|
white.bg.add.fail=透明图添加白色背景失败。
|
||||||
|
message.confirm.fail=消息确认失败,转为手动确认消息。
|
||||||
|
unknown.designPictureType=未知图片类型。
|
||||||
|
base64.data.empty=参数错误:图片base64数据为空。
|
||||||
|
edited.account.information.cannot.be.blank=请提供修改后的用户信息!
|
||||||
|
oldEmail.cannot.be.empty=旧邮箱不能为空!
|
||||||
|
oldUserName.cannot.be.empty=旧用户名不能为空!
|
||||||
|
oldUserName.does.not.exist=旧用户名不存在!
|
||||||
|
oldAccount.does.not.exist=旧账号不存在!
|
||||||
|
the.Google.has.been.bound=无法绑定:该 Google 账号已被使用。
|
||||||
|
Unable.to.obtain.WeChat.account.information=无法获取微信账号信息,绑定失败。
|
||||||
|
title.has.been.used=标题已被使用。
|
||||||
|
source.image.does.not.exist=源图片不存在。
|
||||||
|
email.has.been.registered=邮箱已被使用。
|
||||||
|
unknown.subscription.type=未知订阅类型。
|
||||||
|
unknown.product.type=未知商品类型。
|
||||||
|
unknown.Promotion.Code=未知推广码。
|
||||||
|
file.upload.fail=文件上传失败。
|
||||||
|
project.id.cannot.be.empty=项目id不能为空。
|
||||||
|
failed.to.obtain.system.sketch.recommendation=系统草图推荐获取失败。
|
||||||
|
pose.transformation.error=图片转视频失败。
|
||||||
|
order.creation.failed=订单创建失败。
|
||||||
|
order.deduction.failed=订单金额扣除失败。
|
||||||
|
order.query.failed=订单查询失败。
|
||||||
|
do.not.have.the.permission.to.delete.this.comment=您没有权限删除此评论。
|
||||||
|
unknow.affiliate=未知推广者id。
|
||||||
|
unknown.operationType=未知操作类型。
|
||||||
|
unknown.mode=未知模式。
|
||||||
|
unknown.subscription.plan=未知订阅计划。
|
||||||
|
unknown.subscription.status=未知订阅状态。
|
||||||
|
subscription.has.expired=切换失败,订阅已过期。
|
||||||
|
unknown.administrator.user=操作失败,未知管理员用户。
|
||||||
|
no.permission.manage.subscription=切换失败,您没有权限管理该订阅。
|
||||||
|
unknown.organization=未知组织。
|
||||||
|
valid.subscription.period=计划仍在有效期内,请到期后再删除。
|
||||||
|
users.currently.using.this.plan=存在用户正在使用此计划,无法删除。
|
||||||
|
deletion.failed.please.try.again.later=删除失败,请稍后重试。
|
||||||
|
subscription.plan.has.been.deleted=该订阅计划已被删除。
|
||||||
|
subscription.plan.does.not.exist=订阅计划不存在。
|
||||||
|
ID.cannot.be.empty.and.must.be.greater.than.0=ID不能为空且必须大于0。
|
||||||
|
invalid.time.format=时间格式错误,请使用yyyy-MM-dd HH:mm:ss格式。
|
||||||
|
the.start.time.cannot.be.later.than.the.end.time=开始时间不能晚于结束时间。
|
||||||
|
page.size.limit=每页数量必须在1-100之间。
|
||||||
|
page.num.limit=页码必须大于0。
|
||||||
|
end.time.must.be.later.than.the.start.time=订阅结束时间必须晚于开始时间。
|
||||||
|
please.specify.the.organizationId=请指定organizationId。
|
||||||
|
switch.failed.sub-account.not.under.your.active.subscription=切换失败,该子账号不属于您当前管理的订阅计划。
|
||||||
|
Sub-accounts.cannot.be.admins=在订阅中的子账号不能被指定为管理员。
|
||||||
|
only.subscription.plans.with.a.PENDING.status.can.have.their.start.time.modified=只有PENDING状态的订阅计划可以修改订阅开始时间。
|
||||||
|
end.time.cannot.be.earlier.than.or.equal.to.start.time=订阅结束时间不能早于或等于开始时间。
|
||||||
|
end.time.cannot.be.earlier.than.or.equal.to.the.current.time=订阅结束时间不能早于或等于当前时间。
|
||||||
|
the.subscription.end.date.can.be.extended.only.not.reduced=订阅的到期时间不能缩短,只能延长。
|
||||||
|
total.sub-account.quota.cannot.be.lower.than.existing.sub-accounts=设置的子账号总数量不能低于现存已添加的子账号数量。
|
||||||
|
the.credit.limit.set.cannot.be.lower.than.the.amount.of.credits.already.used=设置的积分上限不能低于已使用的积分量。
|
||||||
|
administrator.user.is.already.bound.to.different.organization=该管理员用户已与其他组织的订阅计划绑定。
|
||||||
|
required.partialDesign=修改单套搭配必须提供'partialDesign'(base64 或 path)。
|
||||||
|
account.not.found=账号不存在。
|
||||||
|
verification.code.expired=验证码已过期,请请求新的验证码继续。
|
||||||
|
verification.code.error=输入的验证码不正确,请检查并重试。
|
||||||
|
unknown.message=未知消息。
|
||||||
|
forbidden.external.access=禁止外部直接访问此接口。
|
||||||
|
failed.to.send.mail=邮件发送失败。
|
||||||
|
remote.service.error=远程服务业务错误。
|
||||||
|
designer.already.applied=该用户已提交过申请或已入驻。
|
||||||
|
designer.application.not.found=申请记录不存在。
|
||||||
|
current.status.not.support.review=当前状态不支持审核操作。
|
||||||
|
designer.record.not.found=设计师记录不存在。
|
||||||
|
designer.not.found=设计师不存在。
|
||||||
|
product.id.list.cannot.be.empty=商品ID列表不能为空。
|
||||||
|
buyer.id.cannot.be.empty=买家ID不能为空。
|
||||||
|
buyer.account.cannot.be.empty=买家账号不能为空。
|
||||||
|
all.products.already.purchased=所有商品均已购买,无需重复下单。
|
||||||
|
product.not.found=未找到对应的商品。
|
||||||
|
order.info.cannot.be.empty=订单信息为空。
|
||||||
|
order.status.cannot.be.empty=订单状态不能为空。
|
||||||
|
order.id.list.cannot.be.empty=订单ID列表不能为空。
|
||||||
|
order.not.found.or.no.permission=订单不存在或无权修改。
|
||||||
|
design.for.only.male.or.female=designFor 只能为 male/female。
|
||||||
|
product.title.cannot.be.empty=商品标题不能为空。
|
||||||
|
product.description.cannot.be.empty=商品描述不能为空。
|
||||||
|
product.price.cannot.be.empty=商品价格不能为空。
|
||||||
|
product.gender.cannot.be.empty=适用性别不能为空。
|
||||||
|
product.gender.must.be.male.or.female=适用性别只能为 male/female。
|
||||||
|
product.category.cannot.be.empty=商品分类不能为空。
|
||||||
|
product.category.must.be.valid=商品分类只能为 outwear/trousers/blouse/dress/skirt/others/tops/bottoms。
|
||||||
|
design.for.only.female.male.or.all=designFor 只能为 female/male/all。
|
||||||
|
product.not.purchased.yet=该商品尚未被购买,无法查看。
|
||||||
|
category.required=category [] is required。
|
||||||
|
category.imageUrl.cannot.be.empty=category imageUrl cannot be null or empty。
|
||||||
|
|
||||||
|
# 可能会报异常
|
||||||
|
userName.does.not.exist=用户名或密码不正确,请检查您的输入并重试。
|
||||||
|
password.error=用户名或密码不正确,请检查您的输入并重试。
|
||||||
|
email.error=电子邮件不正确,请输入正确的绑定电子邮件。
|
||||||
|
email.does.not.exist=电子邮件地址在我们的记录中不存在,请检查并重试。
|
||||||
|
the.verification.code.has.expired=验证码已过期,请请求新的验证码继续。
|
||||||
|
verification.code.error=输入的验证码不正确,请检查并重试。
|
||||||
|
the.number.of.PIN.top.or.bottom.or.outerwear.sketchBoard.cannot.be.more.than.8=在草图板中,PIN上装、下装或外套的数量不能超过8件,请进行相应调整。
|
||||||
|
hsv.value.cannot.exceed.the.maximum.of.8=hsv值不能超过8的最大值。
|
||||||
|
the.workspaceName.already.exists=具有此名称的工作区已存在,请输入不同的名称。
|
||||||
|
unable.to.delete.the.workspace.you.are.currently.using=无法删除当前正在使用的工作区,在尝试删除之前,请选择另一个工作区。
|
||||||
|
classificationName.already.exists=您输入的标签名已存在,请输入不同的标签名以避免重复。
|
||||||
|
account.expired=您的订阅已过期,账号已被重置为访客身份,请从【个人账号】入口重新登录,如有疑问,请联系 info@code-create.com.hk。
|
||||||
|
relate.to.any.subscription=您的管理员账号暂未关联任何订阅,如有疑问,请联系我们 info@code-create.com.hk。
|
||||||
|
|
||||||
|
# Warnings
|
||||||
|
the.classification.you.deleted.has.associated.library=您正在尝试删除的标签与现有数据相关联,您确定要继续删除吗?
|
||||||
|
the.model.has.been.referenced.by.the.workspace=此模型当前正在工作区中使用,删除它可能会影响工作区,仅在确信后再确认删除。
|
||||||
|
balance.insufficient.for.trial=想要立即继续使用?请考虑升级到我们的订阅计划,以获得更多额度。
|
||||||
|
balance.insufficient.for.paying=您已达到本月的使用额度限制。
|
||||||
|
|
||||||
|
# Errors
|
||||||
|
system.busy=系统当前繁忙,请稍候再试。
|
||||||
|
user.expired=您的用户会话已过期,请联系管理员更新您的使用权限。
|
||||||
|
attributeRetrieval.interface.exception=检索属性数据时发生错误。(请稍后再试。如果问题持续,请联系我们的help@aida.com.hk)
|
||||||
|
design.interface.exception=设计接口出现错误。(请稍后再试。如果问题持续,请联系我们的help@aida.com.hk)
|
||||||
|
processMannequins.interface.exception=上传模特时出现错误。(请稍后再试。如果问题持续,请联系我们的help@aida.com.hk)
|
||||||
|
processSketchBoards.interface.exception=上传草图板时出现错误。(请稍后再试。如果问题持续,请联系我们的help@aida.com.hk)
|
||||||
|
designProcess.interface.exception=加载进度条时出现问题。(请稍后再试。如果问题持续,请联系我们的help@aida.com.hk)
|
||||||
|
generate.interface.exception=我们当前正经历大量生成请求。(请稍后再试。如果问题继续,请联系我们的help@aida.com.hk寻求支持。)
|
||||||
|
generate.interface.error=生成接口出现错误。(请稍后再试。如果问题持续,请联系我们的help@aida.com.hk)
|
||||||
|
chat-bot.interface.exception=聊天机器人接口出现错误。(请稍后再试。如果问题持续,请联系我们的help@aida.com.hk)
|
||||||
|
compose-layer.interface.exception=图层合并时出现问题。(请稍后再试。如果问题持续,请联系我们的help@aida.com.hk)
|
||||||
|
cloth-classification.interface.exception=获取服装类别时出现问题。(请稍后再试。如果问题持续,请联系我们的help@aida.com.hk)
|
||||||
|
sr.interface.error=超分接口出现错误。(请稍后再试。如果问题持续,请联系我们的help@aida.com.hk)
|
||||||
|
|
||||||
|
# 多语言返回
|
||||||
|
OVERALL=整体
|
||||||
|
TOPS=上装
|
||||||
|
BOTTOMS=下装
|
||||||
|
OUTWEAR=外套
|
||||||
|
OTHERS=其他
|
||||||
|
BLOUSE=上衣
|
||||||
|
DRESS=连衣裙
|
||||||
|
TROUSERS=裤子
|
||||||
|
SKIRT=短裙
|
||||||
|
FEMALE=女装
|
||||||
|
MALE=男装
|
||||||
|
SLOGAN=标语
|
||||||
|
LOGO=标志
|
||||||
|
PATTERN=图案
|
||||||
|
EMBROIDERY=刺绣
|
||||||
|
BEADING=钉珠
|
||||||
|
PEARL=珍珠
|
||||||
|
RIVET=铆钉
|
||||||
|
BUTTON=纽扣
|
||||||
|
BELT=腰带
|
||||||
|
CORSAGE=胸花
|
||||||
|
ZIPPER=拉链
|
||||||
|
POCKET=口袋
|
||||||
|
THICK=粗线条
|
||||||
|
MEDIUM=中线条
|
||||||
|
THIN=细线条
|
||||||
|
GENERATE=生成线稿
|
||||||
|
EXTRACT=提取线稿
|
||||||
|
CHILD=儿童
|
||||||
|
ADULT=成人
|
||||||
Reference in New Issue
Block a user