报错返回语言适配

This commit is contained in:
litianxiang
2026-06-03 16:25:53 +08:00
parent aa824f6e32
commit 6d9ac6f393
9 changed files with 729 additions and 45 deletions

View File

@@ -30,7 +30,7 @@ public class InternalOnlyAspect {
public Object validateInternalCall(ProceedingJoinPoint joinPoint) throws Throwable {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (attributes == null) {
throw new BusinessException("禁止外部直接访问此接口");
throw new BusinessException("forbidden.external.access");
}
HttpServletRequest request = attributes.getRequest();
@@ -38,7 +38,7 @@ public class InternalOnlyAspect {
if (!CommonConstants.INTERNAL_CALL_VALUE.equals(internalCall)) {
log.warn("Unauthorized external access attempt to internal-only endpoint: {}",
((MethodSignature) joinPoint.getSignature()).getMethod().getName());
throw new BusinessException("禁止外部直接访问此接口");
throw new BusinessException("forbidden.external.access");
}
return joinPoint.proceed();

View File

@@ -1,9 +1,17 @@
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 lombok.Data;
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
* @description: 业务异常
@@ -12,31 +20,64 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class BusinessException extends RuntimeException {
private static final long serialVersionUID = 1L;
private Integer code;
private String msg;
public BusinessException(ResultEnum resultEnum) {
this.code = resultEnum.getCode();
this.msg = resultEnum.getMsg();
this.msg = getMessageFromResource(resultEnum.getMsg(), getUserLocale());
}
public BusinessException(String msg) {
this.code = ResultEnum.FAIL.getCode();
this.msg = msg;
this.msg = getMessageFromResource(msg, getUserLocale());
}
public BusinessException(String msg, Integer code) {
this.code = code;
this.msg = msg;
this.msg = getMessageFromResource(msg, getUserLocale());
}
public BusinessException(Throwable cause) {
this.code = ResultEnum.FAIL.getCode();
this.msg = cause.getMessage();
this.msg = getMessageFromResource(cause.getMessage(), getUserLocale());
}
public BusinessException(ResultEnum resultEnum, String customMsg) {
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;
}
}

View File

@@ -71,7 +71,7 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
);
if (existDesigner != null) {
throw new BusinessException("该用户已提交过申请或已入驻");
throw new BusinessException("designer.already.applied");
}
DesignerEntity entity = new DesignerEntity();
@@ -147,11 +147,11 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
.last("LIMIT 1")
);
if (entity == null) {
throw new BusinessException("申请记录不存在");
throw new BusinessException("designer.application.not.found");
}
if (!DesignerApplyStatusEnum.PENDING.getCode().equals(entity.getApplyStatus())) {
throw new BusinessException("当前状态不支持审核操作");
throw new BusinessException("current.status.not.support.review");
}
entity.setApplyStatus(dto.getAuditStatus());
@@ -184,7 +184,7 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
.last("LIMIT 1")
);
if (entity == null) {
throw new BusinessException("设计师记录不存在");
throw new BusinessException("designer.record.not.found");
}
if (dto.getShopName() != null) {
@@ -227,7 +227,7 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
.last("LIMIT 1")
);
if (entity == null) {
throw new BusinessException("设计师记录不存在");
throw new BusinessException("designer.record.not.found");
}
DesignerDTO dto = new DesignerDTO();
@@ -252,7 +252,7 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
.last("LIMIT 1")
);
if (designer == null) {
throw new BusinessException("设计师记录不存在");
throw new BusinessException("designer.record.not.found");
}
Long sellerId = designer.getId();
@@ -385,7 +385,7 @@ public class DesignerServiceImpl extends ServiceImpl<DesignerMapper, DesignerEnt
.last("LIMIT 1")
);
if (entity == null) {
throw new BusinessException("设计师不存在");
throw new BusinessException("designer.not.found");
}
DesignerShopVO vo = new DesignerShopVO();
vo.setShopName(entity.getShopName());

View File

@@ -45,7 +45,7 @@ public class FileUploadController {
Long userId = UserContext.getUserId();
if (file.isEmpty()) {
throw new BusinessException("文件不能为空");
throw new BusinessException("file.cannot.be.empty");
}
// 验证文件类型
String contentType = file.getContentType();
@@ -58,12 +58,12 @@ public class FileUploadController {
}
}
if (!validType) {
throw new BusinessException("不支持的文件类型: " + contentType);
throw new BusinessException("file.type.unsupported");
}
}
// 验证文件大小
if (file.getSize() > maxFileSize * 1024 * 1024) {
throw new BusinessException("文件大小超出限制: " + maxFileSize + " MB");
throw new BusinessException("file.size.exceed.limit");
}
try {
// 计算文件MD5可选用于文件完整性校验
@@ -78,7 +78,7 @@ public class FileUploadController {
return Response.success(minioUtil.processMinioResource(filePath, CommonConstants.MINIO_PATH_TIMEOUT));
} catch (IOException e) {
log.error("文件上传失败: {}", e.getMessage(), e);
throw new BusinessException("文件上传失败");
throw new BusinessException("file.upload.fail");
}
}

View File

@@ -65,7 +65,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
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) {
@@ -85,7 +85,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
.eq(ListingEntity::getSellerId, sellerId)
.eq(ListingEntity::getDeleted, 0));
if (existing == null) {
throw new BusinessException("商品不存在");
throw new BusinessException("product.not.found");
}
entity.setCreateTime(existing.getCreateTime());
this.updateById(entity);
@@ -139,7 +139,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
.eq(ListingEntity::getId, id)
.eq(ListingEntity::getDeleted, 0));
if (entity == null) {
throw new BusinessException("商品不存在");
throw new BusinessException("product.not.found");
}
ListingSaveDTO dto = new ListingSaveDTO();
@@ -194,7 +194,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
.eq(ListingEntity::getSellerId, sellerId)
.eq(ListingEntity::getDeleted, 0));
if (existing == null) {
throw new BusinessException("商品不存在");
throw new BusinessException("product.not.found");
}
ListingEntity update = new ListingEntity();
update.setId(id);
@@ -252,7 +252,7 @@ public class ListingServiceImpl extends ServiceImpl<ListingMapper, ListingEntity
for (String category : requiredCategories) {
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();
if (requiredCategories.contains(category)) {
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) {
if (!StringUtils.hasText(dto.getTitle())) {
throw new BusinessException("商品标题不能为空");
throw new BusinessException("product.title.cannot.be.empty");
}
if (!StringUtils.hasText(dto.getDescription())) {
throw new BusinessException("商品描述不能为空");
throw new BusinessException("product.description.cannot.be.empty");
}
if (dto.getPrice() == null) {
throw new BusinessException("商品价格不能为空");
throw new BusinessException("product.price.cannot.be.empty");
}
if (!StringUtils.hasText(dto.getDesignFor())) {
throw new BusinessException("适用性别不能为空");
throw new BusinessException("product.gender.cannot.be.empty");
}
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())) {
throw new BusinessException("商品分类不能为空");
throw new BusinessException("product.category.cannot.be.empty");
}
for (String category : dto.getProductCategory()) {
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);
DesignForEnum designForEnum = DesignForEnum.of(designFor);
if (designForEnum == null) {
throw new BusinessException("designFor 只能为 female/male/all");
throw new BusinessException("design.for.only.female.male.or.all");
}
if (designForEnum != DesignForEnum.ALL) {
queryWrapper.eq(ListingEntity::getDesignFor, designForEnum.getCode());

View File

@@ -215,7 +215,7 @@ public class ListingMallServiceImpl extends ServiceImpl<ListingMallMapper, Listi
.eq(ListingEntity::getStatus, 1)
.eq(ListingEntity::getDeleted, 0));
if (entity == null) {
throw new BusinessException("商品不存在");
throw new BusinessException("product.not.found");
}
this.baseMapper.incrementViewCount(id);
@@ -336,7 +336,7 @@ public class ListingMallServiceImpl extends ServiceImpl<ListingMallMapper, Listi
.selectByListingIdAndBuyerIdWithOrderStatus(id, buyerId);
if (snapshots.isEmpty()) {
throw new BusinessException("该商品尚未被购买,无法查看");
throw new BusinessException("product.not.purchased.yet");
}
return snapshots.stream()

View File

@@ -216,13 +216,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
@Transactional(rollbackFor = Exception.class)
public CreateOrderResultVO createOrder(CreateOrderDTO dto) {
if (CollectionUtils.isEmpty(dto.getListingIds())) {
throw new BusinessException("商品ID列表不能为空");
throw new BusinessException("product.id.list.cannot.be.empty");
}
if (dto.getBuyerId() == null) {
throw new BusinessException("买家ID不能为空");
throw new BusinessException("buyer.id.cannot.be.empty");
}
if (!StringUtils.hasText(dto.getBuyerUsername())) {
throw new BusinessException("买家账号不能为空");
throw new BusinessException("buyer.account.cannot.be.empty");
}
List<Long> purchasedListingIds = getPurchasedListingIds(dto.getListingIds(), dto.getBuyerId());
@@ -230,13 +230,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
.filter(id -> !purchasedListingIds.contains(id))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(unpurchasedListingIds)) {
throw new BusinessException("所有商品均已购买,无需重复下单");
throw new BusinessException("all.products.already.purchased");
}
dto.setListingIds(unpurchasedListingIds);
List<ListingEntity> listings = listingMapper.selectBatchIds(dto.getListingIds());
if (CollectionUtils.isEmpty(listings)) {
throw new BusinessException("未找到对应的商品");
throw new BusinessException("product.not.found");
}
Map<Long, List<ListingEntity>> listingsBySeller = listings.stream()
@@ -334,13 +334,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
public void updateOrderStatus(UpdateOrderStatusDTO dto) {
log.info(dto.toString());
if (dto == null) {
throw new BusinessException("订单信息为空");
throw new BusinessException("order.info.cannot.be.empty");
}
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())) {
throw new BusinessException("订单ID列表不能为空");
throw new BusinessException("order.id.list.cannot.be.empty");
}
boolean updated;
@@ -355,7 +355,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
updated = this.update(updateWrapper);
if (!updated) {
throw new BusinessException("订单不存在或无权修改");
throw new BusinessException("order.not.found.or.no.permission");
} else {
log.info("[Order] PaymentId:{} / OrderId:{}, 更新订单状态", dto.getPaymentId(), dto.getOrderIds());
@@ -390,7 +390,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
@Override
public IPage<AssetsItemVO> getAssetsPage(AssetsDTO dto) {
if (dto.getBuyerId() == null) {
throw new BusinessException("买家ID不能为空");
throw new BusinessException("buyer.id.cannot.be.empty");
}
long page = dto.getPage();
long size = dto.getSize();
@@ -425,7 +425,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
@Override
public void updatePaymentIdByIds(List<Long> orderIds, Long paymentId) {
if (CollectionUtils.isEmpty(orderIds)) {
throw new BusinessException("订单ID列表不能为空");
throw new BusinessException("order.id.list.cannot.be.empty");
}
LambdaUpdateWrapper<OrderInfoEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(OrderInfoEntity::getId, orderIds)

View 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

View 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=成人