From e8f5436ab08e4fc4e79de1e420476cb41bb27128 Mon Sep 17 00:00:00 2001 From: caojianbin <1910336823> Date: Fri, 3 Jan 2025 11:11:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AF=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/controller/DeviceStepDailyController.java | 8 +- .../controller/LatestLocationAppController.java | 4 +- .../app/entity/DeviceStepDaily.java | 3 + .../app/mapper/DeviceStepDailyMapper.java | 2 + .../app/service/DeviceStepDailyService.java | 8 + .../app/service/impl/BindingDeviceImpl.java | 15 +- .../service/impl/DeviceStepDailyServiceImpl.java | 4 + .../app/service/impl/UserServiceImpl.java | 54 +- .../internationalize/app/task/AppKafkaTask.java | 1152 ++++++++++---------- .../app/mapper/DeviceStepDailyMapper.xml | 5 +- .../main/resources/i18n/messages_bn_BD.properties | 85 ++ .../main/resources/i18n/messages_de_DE.properties | 85 ++ .../main/resources/i18n/messages_es_ES.properties | 85 ++ .../main/resources/i18n/messages_fr_FR.properties | 89 ++ .../main/resources/i18n/messages_it_IT.properties | 84 ++ .../main/resources/i18n/messages_ja_JP.properties | 85 ++ .../main/resources/i18n/messages_ko_KR.properties | 85 ++ .../main/resources/i18n/messages_ms_MY.properties | 85 ++ .../main/resources/i18n/messages_pt_PT.properties | 85 ++ .../src/main/resources/i18n/messages_ru.properties | 15 +- .../main/resources/i18n/messages_th_TH.properties | 85 ++ .../main/resources/i18n/messages_tr_TR.properties | 85 ++ 22 files changed, 1586 insertions(+), 622 deletions(-) create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_bn_BD.properties create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_de_DE.properties create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_es_ES.properties create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_fr_FR.properties create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_it_IT.properties create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ja_JP.properties create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ko_KR.properties create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ms_MY.properties create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_pt_PT.properties create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_th_TH.properties create mode 100644 ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_tr_TR.properties diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/DeviceStepDailyController.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/DeviceStepDailyController.java index c9331fb..3753c81 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/DeviceStepDailyController.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/DeviceStepDailyController.java @@ -41,7 +41,7 @@ public class DeviceStepDailyController { //日期格式化 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String date=simpleDateFormat.format(new Date()); - lambdaQueryWrapper.eq(DeviceStepDaily::getCreateTime,date); + lambdaQueryWrapper.eq(DeviceStepDaily::getStepTime,date); DeviceStepDaily deviceStepDaily = deviceStepDailyService.getBaseMapper().selectOne(lambdaQueryWrapper); return Rest.ok(deviceStepDaily); } @@ -56,10 +56,10 @@ public class DeviceStepDailyController { String date=simpleDateFormat.format(new Date()); LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); System.out.println("获取到的一个星期的日期是:"+formatDate+"====="+"获取到今天的日期是===="+date); - lambdaQueryWrapper.gt(DeviceStepDaily::getCreateTime,formatDate); - lambdaQueryWrapper.le(DeviceStepDaily::getCreateTime,date); + lambdaQueryWrapper.gt(DeviceStepDaily::getStepTime,formatDate); + lambdaQueryWrapper.le(DeviceStepDaily::getStepTime,date); - lambdaQueryWrapper.orderByDesc(DeviceStepDaily::getCreateTime); + lambdaQueryWrapper.orderByDesc(DeviceStepDaily::getStepTime); lambdaQueryWrapper.eq(DeviceStepDaily::getImei,imei); return Rest.ok(deviceStepDailyService.getBaseMapper().selectList(lambdaQueryWrapper)); } diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/LatestLocationAppController.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/LatestLocationAppController.java index 5fcf962..00132c6 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/LatestLocationAppController.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/controller/LatestLocationAppController.java @@ -15,6 +15,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -44,6 +45,7 @@ public class LatestLocationAppController { RedisService redisService; @Autowired DefaultRedisScript localLimitScript; + @ApiOperation(value ="主动请求位置下发") @GetMapping("/last/location/instructions/{imei}") public AjaxResult getLastLocationInstructions( @@ -61,7 +63,7 @@ public class LatestLocationAppController { if (CommonConstant.AUDIT_STATUS_ONE.equals(onlineStatus)){ String deviceModelId = deviceInfo.getDeviceModelId(); String hasKey="local:limitCount"+":"+deviceModelId; - int limitCount=5; + int limitCount=500; if (redisService.hasKey(hasKey)){ limitCount=redisService.getCacheObject(hasKey); } diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/DeviceStepDaily.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/DeviceStepDaily.java index ad7d0fa..a28ea38 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/DeviceStepDaily.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/entity/DeviceStepDaily.java @@ -50,6 +50,9 @@ private static final long serialVersionUID=1L; @ApiModelProperty(example = "创建时间") private Date updateTime; + @ApiModelProperty(example = "字符串时间") + private String stepTime; + } diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/mapper/DeviceStepDailyMapper.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/mapper/DeviceStepDailyMapper.java index 91835d2..d267903 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/mapper/DeviceStepDailyMapper.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/mapper/DeviceStepDailyMapper.java @@ -2,6 +2,7 @@ package com.ecell.internationalize.app.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ecell.internationalize.app.entity.DeviceStepDaily; +import org.apache.ibatis.annotations.Param; /** *

@@ -12,4 +13,5 @@ import com.ecell.internationalize.app.entity.DeviceStepDaily; * @since 2022-09-20 */ public interface DeviceStepDailyMapper extends BaseMapper { + DeviceStepDaily getDeviceStepDaily(@Param("imei") String imei, @Param("date")String date); } diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/DeviceStepDailyService.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/DeviceStepDailyService.java index be7ed91..2bbce20 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/DeviceStepDailyService.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/DeviceStepDailyService.java @@ -12,4 +12,12 @@ import com.ecell.internationalize.app.entity.DeviceStepDaily; * @since 2022-09-20 */ public interface DeviceStepDailyService extends IService { + + /** + * 根据imei,时间查询设备步数 + * @param imei + * @param date + * @return + */ + DeviceStepDaily getDeviceStepDaily(String imei, String date); } diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/BindingDeviceImpl.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/BindingDeviceImpl.java index 835ea9d..fafe2c9 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/BindingDeviceImpl.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/BindingDeviceImpl.java @@ -863,12 +863,15 @@ public class BindingDeviceImpl implements BindingDevice { throw new ServiceException("messagesUserDoesNotExist"); } /******************20241227新增***********************/ - if (!user.getPhone().equals(dto.getPhone())){ - //更新用户表的手机号码 - user.setPhone(dto.getPhone()); - userMapper.updateById(user); - } - + if (StringUtils.isNotNull(user.getPhone())){ + if (!user.getPhone().equals(dto.getPhone())){ + //更新用户表的手机号码 + user.setPhone(dto.getPhone()); + }else { + user.setPhone(dto.getPhone()); + } + userMapper.updateById(user); + } /******************20241227新增***********************/ bindApp.setUserEmail(user.getUserEmail()); //======================================================// diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/DeviceStepDailyServiceImpl.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/DeviceStepDailyServiceImpl.java index dc7dc4e..b1b9004 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/DeviceStepDailyServiceImpl.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/DeviceStepDailyServiceImpl.java @@ -16,4 +16,8 @@ import org.springframework.stereotype.Service; */ @Service public class DeviceStepDailyServiceImpl extends ServiceImpl implements DeviceStepDailyService { + @Override + public DeviceStepDaily getDeviceStepDaily(String imei, String date) { + return baseMapper.getDeviceStepDaily(imei, date); + } } diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/UserServiceImpl.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/UserServiceImpl.java index b62ee78..910ec00 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/UserServiceImpl.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/service/impl/UserServiceImpl.java @@ -31,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -171,7 +172,11 @@ public class UserServiceImpl extends ServiceImpl implements Us User user = userMapper.selectById(userId); UserVo vo = new UserVo(); vo.setImage(user.getImage()); - vo.setName(SecurityContextHolder.getUserName()); + if (StringUtils.isNotEmpty(user.getName())){ + vo.setName(user.getName()); + }else { + vo.setName(SecurityContextHolder.getUserName()); + } vo.setPhone(user.getPhone()); return vo; @@ -241,31 +246,56 @@ public class UserServiceImpl extends ServiceImpl implements Us QueryWrapper.eq(UserDeviceBindApp::getBindStatus, CommonConstant.AUDIT_STATUS_ONE); List userDeviceBindApps = userDeviceBindAppMapper.selectList(QueryWrapper); if (StringUtils.isNotNull(userDeviceBindApps) && userDeviceBindApps.size() > 0) { - List list = userDeviceBindApps.stream().map(s -> s.setPhone(user.getPhone())).collect(Collectors.toList()); + List userDeviceBindApps1 = new ArrayList<>(); + for (UserDeviceBindApp userDeviceBindApp1 : userDeviceBindApps) { + if (StringUtils.isNotEmpty(user.getPhone()) && !userDeviceBindApp1.getPhone().equals(user.getPhone())) { + //修改设备表中的手机号 + userDeviceBindApp1.setPhone( user.getPhone()); + userDeviceBindApps1.add(userDeviceBindApp1); + } + } + logger.info("获取到的绑定表的数据是{}",userDeviceBindApps1.size()); + // List list = userDeviceBindApps.stream().map(s -> s.setPhone(user.getPhone())).collect(Collectors.toList()); + if (userDeviceBindApps1.size() > 0){ //修改绑定表的手机号 - bean.updateBatchById(list); + bean.updateBatchById(userDeviceBindApps1); + } + //2.修改通讯录的手机号 - AddressBookApp addressBookApp = new AddressBookApp(); - addressBookApp.setPhone(user.getPhone()); +// AddressBookApp addressBookApp = new AddressBookApp(); +// addressBookApp.setPhone(user.getPhone()); + LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); lambdaQueryWrapper1.eq(AddressBookApp::getUserId, SecurityContextHolder.getStringUserId()); List addressBookApps = addressBookAppMapper.selectList(lambdaQueryWrapper1); if (StringUtils.isNotNull(addressBookApps) && addressBookApps.size() > 0) { - List list1 = addressBookApps.stream().map(s -> s.setPhone(user.getPhone())).collect(Collectors.toList()); - AddressBookAppServiceImpl bean1 = SpringUtils.getBean(AddressBookAppServiceImpl.class); - bean1.updateBatchById(list1); + List list1=new ArrayList<>(); + for (AddressBookApp bookApp : addressBookApps) { + if (StringUtils.isNotEmpty(user.getPhone()) && !user.getPhone().equals(bookApp.getPhone())){ + bookApp.setPhone(user.getPhone()); + list1.add(bookApp); + } + } +// List list1 = addressBookApps.stream().map(s -> s.setPhone(user.getPhone())).collect(Collectors.toList()); + logger.info("获取到的通讯录的数据是{}",list1.size()); + if (StringUtils.isNotNull(list1) && list1.size() > 0){ + AddressBookAppServiceImpl bean1 = SpringUtils.getBean(AddressBookAppServiceImpl.class); + bean1.updateBatchById(list1); + } + + } //若为管理员,中心号码下发 - if (StringUtils.isNotNull(userDeviceBindApps) && userDeviceBindApps.size() > 0) { - userDeviceBindApps.forEach(s -> { + if (StringUtils.isNotNull(userDeviceBindApps1) && userDeviceBindApps1.size() > 0) { + userDeviceBindApps1.forEach(s -> { if (null != s && "2".equals(s.getIdentity())) { BindingDeviceDto bindingDeviceDto = new BindingDeviceDto(); - bindingDeviceDto.setMy_phone(user.getPhone()); - bindingDeviceDto.setImei(user.getImei()); + bindingDeviceDto.setMy_phone(s.getPhone()); + bindingDeviceDto.setImei(s.getImei()); bindingDevice.assembCenterPhone(bindingDeviceDto, s.getUserId()); } diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/task/AppKafkaTask.java b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/task/AppKafkaTask.java index 04a2db5..58fa845 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/task/AppKafkaTask.java +++ b/ecell-internationalize/ecell-internationalize-app/src/main/java/com/ecell/internationalize/app/task/AppKafkaTask.java @@ -1,4 +1,5 @@ package com.ecell.internationalize.app.task; + import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.aliyun.oss.OSS; @@ -66,7 +67,7 @@ import java.util.stream.Collectors; public class AppKafkaTask implements Callable { private static final Logger log = LoggerFactory.getLogger(AppKafkaTask.class); private static final double DISTANCE = 150.0; - private Object object; + private Object object; private static final Object SYS_OBJECT = new Object(); private static final Object LK_SYS_OBJECT = new Object(); private static final ReentrantLock LOCK = new ReentrantLock(); @@ -110,143 +111,143 @@ public class AppKafkaTask implements Callable { RedisService redisService = ApplicationUtil.getApplicationContext().getBean(RedisService.class); if (StringUtils.isNotNull(positionInfo)) { DeviceLocationApp app = LocationUtil.getLocation(positionInfo); - // app.setImei(imei) - // DeviceLocationApp app=LocationUtil.getLocationGoogle(positionInfo); + // app.setImei(imei) + // DeviceLocationApp app=LocationUtil.getLocationGoogle(positionInfo); log.info("获取到的位置信息:{}", app); if (StringUtils.isNotNull(app)) { String s = String.format("longitude:%s,latitude%s", app.getLongitude(), app.getLatitude()); //设置缓存最近一次定位的经纬度 redisService.setCacheMapValue(imei, "lnglat", s); //设置定位时间 - redisService.setCacheMapValue(imei, "lnglattime",String.valueOf(System.currentTimeMillis())); + redisService.setCacheMapValue(imei, "lnglattime", String.valueOf(System.currentTimeMillis())); //设置解析后的位置信息 - log.warn("设置解析后的位置信息app.getAddr()={}",app.getAddr()); - if (app.getAddr()!=null) - redisService.setCacheMapValue(imei, "lnglataddress", app.getAddr()); + log.warn("设置解析后的位置信息app.getAddr()={}", app.getAddr()); + if (app.getAddr() != null) + redisService.setCacheMapValue(imei, "lnglataddress", app.getAddr()); lon = app.getLongitude(); lat = app.getLatitude(); synchronized (SYS_OBJECT) { - //1.把原始的定位信息也保存到数据库中 - OriginalLocationInfoApp app1 = new OriginalLocationInfoApp(); - app1.setId(com.ecell.internationalize.common.core.utils.uuid.UUID.fastUUID().toString(true)); - app1.setOldInfo(metadata); - app1.setNewId(app.getId()); - ApplicationUtil.getApplicationContext().getBean(OriginalLocationInfoAppService.class).save(app1); - if (StringUtils.isNotEmpty(app.getImei())) { - //添加OR更新一条最新的位置信息到最新位置表中 - getLastLocationInfo(app, positionInfo); - } - //主动位置请求推送到APP - sendLocaltionApp(imei); - //安全围栏处理 - pushSafeRails(imei, lon, lat); - //轨迹生成 - log.info("位置信息的locationType是:{}", positionInfo.getLocationType()); - if (StringUtils.isNotEmpty(positionInfo.getLocationType())) { - //try { + //1.把原始的定位信息也保存到数据库中 + OriginalLocationInfoApp app1 = new OriginalLocationInfoApp(); + app1.setId(com.ecell.internationalize.common.core.utils.uuid.UUID.fastUUID().toString(true)); + app1.setOldInfo(metadata); + app1.setNewId(app.getId()); + ApplicationUtil.getApplicationContext().getBean(OriginalLocationInfoAppService.class).save(app1); + if (StringUtils.isNotEmpty(app.getImei())) { + //添加OR更新一条最新的位置信息到最新位置表中 + getLastLocationInfo(app, positionInfo); + } + //主动位置请求推送到APP + sendLocaltionApp(imei); + //安全围栏处理 + pushSafeRails(imei, lon, lat); + //轨迹生成 + log.info("位置信息的locationType是:{}", positionInfo.getLocationType()); + if (StringUtils.isNotEmpty(positionInfo.getLocationType())) { + //try { TrackInfoAppServiceImpl impl = ApplicationUtil.getApplicationContext().getBean(TrackInfoAppServiceImpl.class); - //根据当前时间查询轨迹表 - List trackInfoApps = impl.queryTrackListByImei(imei); - //查询所有的轨迹安创建时间倒序 - List trackInfoApps1 = impl.queryTrackListByImeiDes(imei); - // long time = LocationUtil.getZero(new Date()).getTime(); - if (StringUtils.isNotEmpty(trackInfoApps) && trackInfoApps.size() > 0) { - //获取最后添加的一条 - TrackInfoApp appTwo = trackInfoApps.get(0); - log.info("坐标点:精度1{},维度1{},精度2{},维度2{}", appTwo.getLongitude(), appTwo.getLatitude(), app.getLongitude(), app.getLatitude()); - //获取两个坐标的距离 - double distance = LocationUtil.getDistance(Double.parseDouble(appTwo.getLongitude()), Double.parseDouble(appTwo.getLatitude()), Double.parseDouble(app.getLongitude()), Double.parseDouble(app.getLatitude())); - //两坐标之间大于150米就新增轨迹点 - if (Math.abs(distance) > DISTANCE) { - log.info("当前位置信息距离是否大于:{},距离:{}", distance > DISTANCE,distance); - TrackInfoApp appThree = new TrackInfoApp(); - appThree.setAdcode(app.getAdcode()); - appThree.setImei(imei); - appThree.setId(com.ecell.internationalize.common.core.utils.uuid.UUID.fastUUID().toString(true)); - appThree.setLatitude(app.getLatitude()); - appThree.setLongitude(app.getLongitude()); - appThree.setAddr(app.getAddr()); - appThree.setLocationType(app.getLocationType()); - appThree.setRadius(app.getRadius()); - appThree.setResidenceTime(CommonConstant.NUMBER_ZERO); - appThree.setCreateTime(new Date()); - appThree.setUpdateTime(new Date()); - //计算停留时间 - // int abs = (int) Math.abs(appTwo.getUpdateTime().getTime() - appTwo.getCreateTime().getTime())/1000; - // int abs = (int) (Math.abs(System.currentTimeMillis() - appTwo.getUpdateTime().getTime()) / 1000); - int abs = (int) (Math.abs(System.currentTimeMillis() - appTwo.getCreateTime().getTime()) / 1000); - appThree.setResidenceTime(0); - appTwo.setResidenceTime(abs); - - //新增OR更新 - impl.saveOrUpdate(appThree, appTwo); - - - } else { - log.info("当前位置信息距离:不大于{}", distance); - //不大于就更新当前的轨迹点 - // appTwo.setResidenceTime((int) Math.abs(date.getTime() - appTwo.getCreateTime().getTime())/1000); - // appTwo.setResidenceTime((int) Math.abs(date.getTime() - time) / 1000); - Date date = new Date(); - appTwo.setUpdateTime(date); - Long l= date.getTime()- appTwo.getCreateTime().getTime(); - appTwo.setResidenceTime((int) Math.abs(l)/1000); - appTwo.setUpdateTime(date); - //更新 - impl.updateById(appTwo); - - } + //根据当前时间查询轨迹表 + List trackInfoApps = impl.queryTrackListByImei(imei); + //查询所有的轨迹安创建时间倒序 + List trackInfoApps1 = impl.queryTrackListByImeiDes(imei); + // long time = LocationUtil.getZero(new Date()).getTime(); + if (StringUtils.isNotEmpty(trackInfoApps) && trackInfoApps.size() > 0) { + //获取最后添加的一条 + TrackInfoApp appTwo = trackInfoApps.get(0); + log.info("坐标点:精度1{},维度1{},精度2{},维度2{}", appTwo.getLongitude(), appTwo.getLatitude(), app.getLongitude(), app.getLatitude()); + //获取两个坐标的距离 + double distance = LocationUtil.getDistance(Double.parseDouble(appTwo.getLongitude()), Double.parseDouble(appTwo.getLatitude()), Double.parseDouble(app.getLongitude()), Double.parseDouble(app.getLatitude())); + //两坐标之间大于150米就新增轨迹点 + if (Math.abs(distance) > DISTANCE) { + log.info("当前位置信息距离是否大于:{},距离:{}", distance > DISTANCE, distance); + TrackInfoApp appThree = new TrackInfoApp(); + appThree.setAdcode(app.getAdcode()); + appThree.setImei(imei); + appThree.setId(com.ecell.internationalize.common.core.utils.uuid.UUID.fastUUID().toString(true)); + appThree.setLatitude(app.getLatitude()); + appThree.setLongitude(app.getLongitude()); + appThree.setAddr(app.getAddr()); + appThree.setLocationType(app.getLocationType()); + appThree.setRadius(app.getRadius()); + appThree.setResidenceTime(CommonConstant.NUMBER_ZERO); + appThree.setCreateTime(new Date()); + appThree.setUpdateTime(new Date()); + //计算停留时间 + // int abs = (int) Math.abs(appTwo.getUpdateTime().getTime() - appTwo.getCreateTime().getTime())/1000; + // int abs = (int) (Math.abs(System.currentTimeMillis() - appTwo.getUpdateTime().getTime()) / 1000); + int abs = (int) (Math.abs(System.currentTimeMillis() - appTwo.getCreateTime().getTime()) / 1000); + appThree.setResidenceTime(0); + appTwo.setResidenceTime(abs); + + //新增OR更新 + impl.saveOrUpdate(appThree, appTwo); } else { - //取最后一条 - TrackInfoApp trackInfoApp=null; - if (StringUtils.isNotEmpty(trackInfoApps1) && trackInfoApps1.size()>0){ - long time=0; - //更新前一条的停留时间 - trackInfoApp = trackInfoApps1.get(0); - // time = trackInfoApp.getUpdateTime().getTime(); - time = trackInfoApp.getCreateTime().getTime(); - Long l= System.currentTimeMillis()- time; - trackInfoApp.setResidenceTime((int) Math.abs(l)/1000); - } - //说明当天还没有轨迹记录初始化轨迹记录信息 - log.info("开始初始化轨迹信息"); - TrackInfoApp appFour = new TrackInfoApp(); - appFour.setAdcode(app.getAdcode()); - appFour.setImei(imei); - appFour.setId(com.ecell.internationalize.common.core.utils.uuid.UUID.fastUUID().toString(true)); - appFour.setLatitude(app.getLatitude()); - appFour.setLongitude(app.getLongitude()); - appFour.setAddr(app.getAddr()); - appFour.setLocationType(app.getLocationType()); - appFour.setRadius(app.getRadius()); - appFour.setResidenceTime(0); - //计算当前停留时间 - // appFour.setResidenceTime((int) (System.currentTimeMillis() - time) / 1000); - impl.saveOrUpdate(appFour, trackInfoApp); + log.info("当前位置信息距离:不大于{}", distance); + //不大于就更新当前的轨迹点 + // appTwo.setResidenceTime((int) Math.abs(date.getTime() - appTwo.getCreateTime().getTime())/1000); + // appTwo.setResidenceTime((int) Math.abs(date.getTime() - time) / 1000); + Date date = new Date(); + appTwo.setUpdateTime(date); + Long l = date.getTime() - appTwo.getCreateTime().getTime(); + appTwo.setResidenceTime((int) Math.abs(l) / 1000); + appTwo.setUpdateTime(date); + //更新 + impl.updateById(appTwo); + + } + } else { + //取最后一条 + TrackInfoApp trackInfoApp = null; + if (StringUtils.isNotEmpty(trackInfoApps1) && trackInfoApps1.size() > 0) { + long time = 0; + //更新前一条的停留时间 + trackInfoApp = trackInfoApps1.get(0); + // time = trackInfoApp.getUpdateTime().getTime(); + time = trackInfoApp.getCreateTime().getTime(); + Long l = System.currentTimeMillis() - time; + trackInfoApp.setResidenceTime((int) Math.abs(l) / 1000); } - //保存电量 - saveOrUpdate(positionInfo.getImei(), Integer.valueOf(positionInfo.getBattery())); - //获取步数上传到数据库 - insertOrUpdateStep(positionInfo.getImei(), positionInfo.getStepNumber()); + //说明当天还没有轨迹记录初始化轨迹记录信息 + log.info("开始初始化轨迹信息"); + TrackInfoApp appFour = new TrackInfoApp(); + appFour.setAdcode(app.getAdcode()); + appFour.setImei(imei); + appFour.setId(com.ecell.internationalize.common.core.utils.uuid.UUID.fastUUID().toString(true)); + appFour.setLatitude(app.getLatitude()); + appFour.setLongitude(app.getLongitude()); + appFour.setAddr(app.getAddr()); + appFour.setLocationType(app.getLocationType()); + appFour.setRadius(app.getRadius()); + appFour.setResidenceTime(0); + //计算当前停留时间 + // appFour.setResidenceTime((int) (System.currentTimeMillis() - time) / 1000); + impl.saveOrUpdate(appFour, trackInfoApp); - //翻滚次数,根据imei查询设备表 - saveOrUpdateRollNumber(positionInfo.getImei(), Integer.valueOf(positionInfo.getRollNumber())); } + //保存电量 + saveOrUpdate(positionInfo.getImei(), Integer.valueOf(positionInfo.getBattery())); + //获取步数上传到数据库 + insertOrUpdateStep(positionInfo.getImei(), positionInfo.getStepNumber()); + + //翻滚次数,根据imei查询设备表 + saveOrUpdateRollNumber(positionInfo.getImei(), Integer.valueOf(positionInfo.getRollNumber())); + + } - // } catch (Exception e) { - // log.info("出现异常:{}", e.getMessage()); + // } catch (Exception e) { + // log.info("出现异常:{}", e.getMessage()); - // } finally { - // LOCK.unlock(); - // } + // } finally { + // LOCK.unlock(); + // } // //低电量推送 // if ("lowPowerAlarm".equals(positionInfo.getLocationType())) { // log.info("低电推送开始:{}",positionInfo.getBattery()); @@ -296,7 +297,7 @@ public class AppKafkaTask implements Callable { //获取步数上传到数据库 insertOrUpdateStep(imei, step); //LK指令上来的低电量也要推 - // BatteryInfoApp batteryInfo = getBatteryInfo(ApplicationUtil.getApplicationContext().getBean(BatteryInfoAppServiceImpl.class), imei); + // BatteryInfoApp batteryInfo = getBatteryInfo(ApplicationUtil.getApplicationContext().getBean(BatteryInfoAppServiceImpl.class), imei); //保存电量 Integer battery = Integer.valueOf(batter); saveOrUpdate(imei, battery); @@ -317,7 +318,7 @@ public class AppKafkaTask implements Callable { //更新最新位置信息表 LatestLocationApp latestLocationApp = queryLocationByImei(imei); if (StringUtils.isNotNull(latestLocationApp)) {//存在这张表就更新,不存在就忽略 - updateLocationByImei(latestLocationApp, batter, step, null, null,null); + updateLocationByImei(latestLocationApp, batter, step, null, null, null); } } //更新设备首次登录时间 @@ -326,32 +327,31 @@ public class AppKafkaTask implements Callable { RedisService redisService = ApplicationUtil.getApplicationContext().getBean(RedisService.class); Object firstLogin = redisService.getCacheMapValue(imei, "firstLogin"); Object lastLogin = redisService.getCacheMapValue(imei, "lastlogin"); - log.info("获取到的首次登录时间是:{},最后登录时间{}",firstLogin,lastLogin); - if (StringUtils.isNotNull(firstLogin) && StringUtils.isNotNull(deviceInfoDTO)){ - Long l= Long.parseLong(firstLogin.toString())*1000; - if (StringUtils.isNull(deviceInfoDTO.getFirstLoginTime())){ - Date firstLoginTime =new Date(l); - log.info("获取到的首次登录时间是:{}",firstLoginTime); - videoCall.UpdateDeviceInfoByImei(imei,firstLoginTime,null); - - }else { + log.info("获取到的首次登录时间是:{},最后登录时间{}", firstLogin, lastLogin); + if (StringUtils.isNotNull(firstLogin) && StringUtils.isNotNull(deviceInfoDTO)) { + Long l = Long.parseLong(firstLogin.toString()) * 1000; + if (StringUtils.isNull(deviceInfoDTO.getFirstLoginTime())) { + Date firstLoginTime = new Date(l); + log.info("获取到的首次登录时间是:{}", firstLoginTime); + videoCall.UpdateDeviceInfoByImei(imei, firstLoginTime, null); + + } else { //设备解绑会重置首次登录时间 - if (deviceInfoDTO.getFirstLoginTime().getTime()!=l){ - Date firstLoginTime =new Date(l); - log.info("获取到的首次登录时间是:{}",firstLoginTime); - videoCall.UpdateDeviceInfoByImei(imei,firstLoginTime,null); + if (deviceInfoDTO.getFirstLoginTime().getTime() != l) { + Date firstLoginTime = new Date(l); + log.info("获取到的首次登录时间是:{}", firstLoginTime); + videoCall.UpdateDeviceInfoByImei(imei, firstLoginTime, null); } } } - if (StringUtils.isNotNull(lastLogin) && StringUtils.isNotNull(deviceInfoDTO)){ - Date lastLoginTime =new Date(Long.parseLong(lastLogin.toString())*1000); - log.info("获取到的最后登录时间是:{}",lastLoginTime); - videoCall.UpdateDeviceInfoByImei(imei,null,lastLoginTime); + if (StringUtils.isNotNull(lastLogin) && StringUtils.isNotNull(deviceInfoDTO)) { + Date lastLoginTime = new Date(Long.parseLong(lastLogin.toString()) * 1000); + log.info("获取到的最后登录时间是:{}", lastLoginTime); + videoCall.UpdateDeviceInfoByImei(imei, null, lastLoginTime); } - } } @@ -382,7 +382,13 @@ public class AppKafkaTask implements Callable { // 设置URL过期时间为100年,默认这里是int型,转换为long型即可 Date expiration = new Date(System.currentTimeMillis() + 3600L * 1000 * 24 * 365 * 100); // 生成URL - URL url = ossClient.generatePresignedUrl(OssClientConstants.BUCKET_NAME, path, expiration); + if (path.contains("http") || path.contains("https")){ + + }else { + URL url = ossClient.generatePresignedUrl(OssClientConstants.BUCKET_NAME, path, expiration); + path=url.toString(); + } + //语音文件时长 String duration = jsonObject.get("duration").toString(); //群组下其他用户存储设备上来的语音 @@ -402,7 +408,8 @@ public class AppKafkaTask implements Callable { //群组id chatGroupMessageApp.setGroupId(chantGroupApp.getId()); //语音内容 - chatGroupMessageApp.setContent(url.toString()); + // chatGroupMessageApp.setContent(url.toString()); + chatGroupMessageApp.setContent(path); chatGroupMessageApp.setSendUser(imei); chatGroupMessageApp.setReadStatus("0"); list.add(chatGroupMessageApp); @@ -430,103 +437,96 @@ public class AppKafkaTask implements Callable { //5.发送到mqtt String userId = chatGroupMessageApp.getUserId(); String lang = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(userId, CommonConstant.IOS_LANGUAGE); - String agent=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(userId,CommonConstant.USER_AGENT); - String alert= I18nUtil.getMessage(CommonConstant.ACCEPT_CHANT_VIDEO,lang); + String agent = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(userId, CommonConstant.USER_AGENT); + String alert = I18nUtil.getMessage(CommonConstant.ACCEPT_CHANT_VIDEO, lang); //判断是发IOS还是安卓 - if (CommonConstant.ANDROID.equals(agent)){ + if (CommonConstant.ANDROID.equals(agent)) { ApplicationUtil.getApplicationContext().getBean(MqttPush.class).sendMqtt("1", userId, "1", "chatGroupMessage", "", sendPushToChatGroup); - } - else { + } else { ApplicationUtil.getApplicationContext().getBean(BindingDeviceImpl.class).sendIOS(userId, chatMessage, "chatGroupMessage", "", alert); } //安卓系统推送 - if ("Android".equals(agent)){ + if ("Android".equals(agent)) { //手机厂商机型:HW、XM等 - String AndroidType=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject(CommonConstant.ANDROID_AGENT+userId); - if (StringUtils.isNotEmpty(AndroidType)){ - if ("HW".equals(AndroidType)){ + String AndroidType = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject(CommonConstant.ANDROID_AGENT + userId); + if (StringUtils.isNotEmpty(AndroidType)) { + if ("HW".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("HW:"+userId); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("HW:" + userId); //服务端获取华为的token - String huaweiAccessToken=""; - if (null!=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken")){ - huaweiAccessToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken"); - } - else { + String huaweiAccessToken = ""; + if (null != ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken")) { + huaweiAccessToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken"); + } else { huaweiAccessToken = getHuaweiAccessToken(); - ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("huaweiAccessToken",huaweiAccessToken,2L,TimeUnit.HOURS); + ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("huaweiAccessToken", huaweiAccessToken, 2L, TimeUnit.HOURS); } - JSONObject first=new JSONObject(); - first.put("validate_only",false); - JSONObject titleObject=new JSONObject(); - titleObject.put("title",I18nUtil.getMessage(CommonConstant.CHANT_VIDEO,lang)); - titleObject.put("body",alert); - JSONObject notificationObject=new JSONObject(); - notificationObject.put("notification",titleObject); - JSONObject clickActionObject=new JSONObject(); - clickActionObject.put("type",1); - clickActionObject.put("action","com.lepeiban.chat.main"); - JSONObject notificationClick=new JSONObject(); - notificationClick.put("notification",clickActionObject); - notificationObject.put("android",notificationClick); - notificationObject.put("token",deviceToken); - notificationObject.put("data",chatMessage); - first.put("message",notificationObject); - String huaweiMsgData= JSONObject.toJSONString(first); - pushMessage(userId,huaweiMsgData,huaweiAccessToken); - } - else if ("XM".equals(AndroidType)){ + JSONObject first = new JSONObject(); + first.put("validate_only", false); + JSONObject titleObject = new JSONObject(); + titleObject.put("title", I18nUtil.getMessage(CommonConstant.CHANT_VIDEO, lang)); + titleObject.put("body", alert); + JSONObject notificationObject = new JSONObject(); + notificationObject.put("notification", titleObject); + JSONObject clickActionObject = new JSONObject(); + clickActionObject.put("type", 1); + clickActionObject.put("action", "com.lepeiban.chat.main"); + JSONObject notificationClick = new JSONObject(); + notificationClick.put("notification", clickActionObject); + notificationObject.put("android", notificationClick); + notificationObject.put("token", deviceToken); + notificationObject.put("data", chatMessage); + first.put("message", notificationObject); + String huaweiMsgData = JSONObject.toJSONString(first); + pushMessage(userId, huaweiMsgData, huaweiAccessToken); + } else if ("XM".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("XM:"+userId); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("XM:" + userId); String intentUri = "intent:#Intent;component=com.ecellsz.watch.guard/com.lk.chatlibrary.activities.chat.ChatActivity;end"; - pushMiMessage(I18nUtil.getMessage(CommonConstant.CHANT_VIDEO,lang),alert,sendPushToChatGroup,deviceToken,intentUri); - } - else if ("VI".equals(AndroidType)){ + pushMiMessage(I18nUtil.getMessage(CommonConstant.CHANT_VIDEO, lang), alert, sendPushToChatGroup, deviceToken, intentUri); + } else if ("VI".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("VI:"+userId); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("VI:" + userId); //服务端获取VIVO的token - String viVoAccessToken=""; - if (null!=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken")){ - viVoAccessToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken"); - } - else { + String viVoAccessToken = ""; + if (null != ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken")) { + viVoAccessToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken"); + } else { viVoAccessToken = getViVoAccessToken(); - ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("viVoAccessToken",viVoAccessToken,12L,TimeUnit.HOURS); + ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("viVoAccessToken", viVoAccessToken, 12L, TimeUnit.HOURS); } - JSONObject msgJson=new JSONObject(); - msgJson.put("regId",deviceToken); - msgJson.put("notifyType",4); - msgJson.put("title",I18nUtil.getMessage(CommonConstant.CHANT_VIDEO,lang)); - msgJson.put("content",alert); - msgJson.put("skipType",4); - msgJson.put("skipContent","intent://com.ecellsz.push.chat/detail#Intent;scheme=vpushscheme;component=com.ecellsz.watch.guard/com.lk.chatlibrary.activities.chat.ChatActivity;end"); + JSONObject msgJson = new JSONObject(); + msgJson.put("regId", deviceToken); + msgJson.put("notifyType", 4); + msgJson.put("title", I18nUtil.getMessage(CommonConstant.CHANT_VIDEO, lang)); + msgJson.put("content", alert); + msgJson.put("skipType", 4); + msgJson.put("skipContent", "intent://com.ecellsz.push.chat/detail#Intent;scheme=vpushscheme;component=com.ecellsz.watch.guard/com.lk.chatlibrary.activities.chat.ChatActivity;end"); msgJson.put("requestId", com.ecell.internationalize.common.core.utils.uuid.UUID.fastUUID().toString(true)); - msgJson.put("clientCustomMap",chatMessage); - msgJson.put("classification",1); + msgJson.put("clientCustomMap", chatMessage); + msgJson.put("classification", 1); sendViVoMessage(viVoAccessToken, msgJson, userId); - } - else if ("OP".equals(AndroidType)){ + } else if ("OP".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("OP:"+userId); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("OP:" + userId); //服务端获取OPPO的token - String opPoAccessToken=""; - if (null!=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken")){ - opPoAccessToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken"); - } - else { + String opPoAccessToken = ""; + if (null != ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken")) { + opPoAccessToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken"); + } else { opPoAccessToken = getOpPoAccessToken(); - ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("opPoAccessToken",opPoAccessToken,12L,TimeUnit.HOURS); + ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("opPoAccessToken", opPoAccessToken, 12L, TimeUnit.HOURS); } - JSONObject postData=new JSONObject(); - postData.put("target_type",2); - postData.put("target_value",deviceToken); - JSONObject postData1=new JSONObject(); - postData1.put("title",I18nUtil.getMessage(CommonConstant.CHANT_VIDEO,lang)); - postData1.put("content",alert); - postData1.put("click_action_type",1); - postData1.put("click_action_activity","com.lepeiban.chat.main"); - postData1.put("action_parameters",chatMessage); - postData.put("notification",postData1); + JSONObject postData = new JSONObject(); + postData.put("target_type", 2); + postData.put("target_value", deviceToken); + JSONObject postData1 = new JSONObject(); + postData1.put("title", I18nUtil.getMessage(CommonConstant.CHANT_VIDEO, lang)); + postData1.put("content", alert); + postData1.put("click_action_type", 1); + postData1.put("click_action_activity", "com.lepeiban.chat.main"); + postData1.put("action_parameters", chatMessage); + postData.put("notification", postData1); String str = JSONObject.toJSONString(postData); sendOpPoMessage(opPoAccessToken, str, userId); } @@ -539,34 +539,33 @@ public class AppKafkaTask implements Callable { // ApplicationUtil.getApplicationContext().getBean(ChatGroupMessageAppService.class).getBaseMapper().insert(chatGroupMessageApp); } } - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } //获取Imei // String imei = jsonObject.get("imei").toString(); //心率 - } - else if ("upHeartRate".equals(type)) { + } else if ("upHeartRate".equals(type)) { String data = jsonObject.get("data").toString(); - log.info("上传心率是:{}",data); + log.info("上传心率是:{}", data); LatestLocationApp latestLocationApp = queryLocationByImei(imei); if (StringUtils.isNotNull(latestLocationApp)) { latestLocationApp.setRateTime(new Date()); - updateLocationByImei(latestLocationApp, null, null, data, null,null); + updateLocationByImei(latestLocationApp, null, null, data, null, null); } //处理心率上传 handlerHeartRate(imei, "1", data, jsonObject.get("time").toString()); //获取设备首次登录时间以及最后的登录时间 } //血氧 - else if ("upBodyOxygen".equals(type)){ + else if ("upBodyOxygen".equals(type)) { String data = jsonObject.get("data").toString(); - log.info("上传血氧是:{}",data); + log.info("上传血氧是:{}", data); LatestLocationApp latestLocationApp = queryLocationByImei(imei); if (StringUtils.isNotNull(latestLocationApp)) { latestLocationApp.setBodyOxygenTime(new Date()); - updateLocationByImei(latestLocationApp, null, null, null, null,data); + updateLocationByImei(latestLocationApp, null, null, null, null, data); } String id = com.ecell.internationalize.common.core.utils.uuid.UUID.fastUUID().toString(true); @@ -581,11 +580,10 @@ public class AppKafkaTask implements Callable { //处理血氧上传 handlerHeartRate(imei, "3", data, jsonObject.get("time").toString()); - // handlerBodyOxygen(imei, "1", data, jsonObject.get("time").toString()); + // handlerBodyOxygen(imei, "1", data, jsonObject.get("time").toString()); - } - else if ("loginTime".equals(type)) { + } else if ("loginTime".equals(type)) { float firstLoginTime = (float) jsonObject.get("firstLoginTime"); float lastLoginTime = (float) jsonObject.get("lastLoginTime"); log.info("设备首次登录时间:{},最后登录时间:{}", firstLoginTime, lastLoginTime); @@ -607,7 +605,7 @@ public class AppKafkaTask implements Callable { } //更新 - videoCallInfo.UpdateDeviceInfoByImei(imei,deviceInfoDTO.getFirstLoginTime(),deviceInfoDTO.getLastLoginTime()); + videoCallInfo.UpdateDeviceInfoByImei(imei, deviceInfoDTO.getFirstLoginTime(), deviceInfoDTO.getLastLoginTime()); } @@ -618,7 +616,7 @@ public class AppKafkaTask implements Callable { LatestLocationApp latestLocationApp = queryLocationByImei(imei); if (StringUtils.isNotNull(latestLocationApp)) { latestLocationApp.setTemperatureTime(new Date()); - updateLocationByImei(latestLocationApp, null, null, null, data,null); + updateLocationByImei(latestLocationApp, null, null, null, data, null); } //处理体温上传 handlerHeartRate(imei, "2", data, jsonObject.get("time").toString()); @@ -658,10 +656,10 @@ public class AppKafkaTask implements Callable { videoUser.setRelationship_image_id(relationShipImageId); videoUser.setUser_openid(deviceVideoApp.getUserId()); - // videoUser.setUser_openid(deviceVideoApp.getVideoId()); - // videoUser.setVideoType(deviceVideoApp.getVideoType()); + // videoUser.setUser_openid(deviceVideoApp.getVideoId()); + // videoUser.setVideoType(deviceVideoApp.getVideoType()); //声网 - if (CommonConstant.AUDIT_STATUS_TWO.equals(deviceVideoApp.getVideoType())){ + if (CommonConstant.AUDIT_STATUS_TWO.equals(deviceVideoApp.getVideoType())) { videoUser.setBairui_id(String.valueOf(deviceVideoApp.getVideoId())); videoUser.setVideoType("V0SW"); } @@ -716,11 +714,11 @@ public class AppKafkaTask implements Callable { /** 手表发起和APP/手表视频通话*/ else if ("upVideoCallWithAPP".equals(type)) { log.info("解析手表发起 ===>APP/手表视频通话指令"); - log.info("获取到的视频通话的参数:{}",jsonObject); + log.info("获取到的视频通话的参数:{}", jsonObject); //视频类型 String deviceVideoType = jsonObject.get("deviceVideoType").toString(); - int uid= RandomUtil.generateVerCodeInt(String.valueOf(System.currentTimeMillis())); + int uid = RandomUtil.generateVerCodeInt(String.valueOf(System.currentTimeMillis())); //视频通话类型 String callType = jsonObject.containsKey("call_type") ? jsonObject.get("call_type").toString() : "0"; //指令类型 @@ -742,7 +740,7 @@ public class AppKafkaTask implements Callable { // deviceVideoType=CommonConstant.VIDEO_TYPE_TWO; // } //判断是否是佰锐视频 - if (CommonConstant.VIDEO_TYPE_THREE.equals(deviceVideoType) ||CommonConstant.VIDEO_TYPE_TWO.equals(deviceVideoType) ) { + if (CommonConstant.VIDEO_TYPE_THREE.equals(deviceVideoType) || CommonConstant.VIDEO_TYPE_TWO.equals(deviceVideoType)) { baiRuiId = jsonObject.get("user_openid").toString(); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(DeviceVideoApp::getVideoId, baiRuiId); @@ -755,7 +753,7 @@ public class AppKafkaTask implements Callable { return; } } - int data = ApplicationUtil.getApplicationContext().getBean(DeviceVideoAppService.class).videoCall(imei, callType, downType, userId, null, deviceVideoType,String.valueOf(uid)); + int data = ApplicationUtil.getApplicationContext().getBean(DeviceVideoAppService.class).videoCall(imei, callType, downType, userId, null, deviceVideoType, String.valueOf(uid)); //邀请视频通话成功 并成功创建记录 if (CommonConstant.NUMBER_ONE == data) { //1.获取视频配置信息 @@ -783,9 +781,9 @@ public class AppKafkaTask implements Callable { } if (CommonConstant.VIDEO_TYPE_TWO.equals(deviceVideoType)) { //获取设备登陆视频的id - LambdaQueryWrapper queryWrapper= new LambdaQueryWrapper<>(); - queryWrapper.eq(DeviceVideoApp::getImei,imei); - queryWrapper.eq(DeviceVideoApp::getUserId,userId); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DeviceVideoApp::getImei, imei); + queryWrapper.eq(DeviceVideoApp::getUserId, userId); DeviceVideoApp deviceVideoApp = ApplicationUtil.getApplicationContext().getBean(DeviceVideoAppMapper.class).selectOne(queryWrapper); @@ -795,8 +793,8 @@ public class AppKafkaTask implements Callable { // downVideoCallWithWatch.setDevice_uid(1111); // downVideoCallWithWatch.setApp_uid(2222); downVideoCallWithWatch.setDevice_uid(uid); - // String baiRuiIdSW = jsonObject.get("user_openid").toString(); - log.info("获取到的声网id是:{}",deviceVideoApp.getVideoId()); + // String baiRuiIdSW = jsonObject.get("user_openid").toString(); + log.info("获取到的声网id是:{}", deviceVideoApp.getVideoId()); downVideoCallWithWatch.setApp_uid(deviceVideoApp.getVideoId()); downVideoCallWithWatch.setAppid(CommonConstant.SW_VIDEO_KEY); @@ -983,7 +981,7 @@ public class AppKafkaTask implements Callable { //手表<==>手表 else if (jsonObject.containsKey("call_device")) { String callDeviceIMEI = jsonObject.get("call_device").toString(); - int data = ApplicationUtil.getApplicationContext().getBean(DeviceVideoAppService.class).videoCall(imei, callType, downType, null, callDeviceIMEI, deviceVideoType,String.valueOf(uid)); + int data = ApplicationUtil.getApplicationContext().getBean(DeviceVideoAppService.class).videoCall(imei, callType, downType, null, callDeviceIMEI, deviceVideoType, String.valueOf(uid)); if (CommonConstant.NUMBER_ONE == data) { //邀请成功 已经在 videoCall方法 里面下发给了 对应的 callDevImei 手表了 log.info("手表打给手表成功"); @@ -1028,25 +1026,25 @@ public class AppKafkaTask implements Callable { log.info("video_id:{}", videoId); String openId = ""; LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - DeviceVideoRecordApp deviceVideoRecordApp=null; + DeviceVideoRecordApp deviceVideoRecordApp = null; DeviceVideoRecordAppService deviceVideoRecordAppService = ApplicationUtil.getApplicationContext().getBean(DeviceVideoRecordAppService.class); - if (StringUtils.isNotEmpty(videoId)){ + if (StringUtils.isNotEmpty(videoId)) { lambdaQueryWrapper.eq(DeviceVideoRecordApp::getVideoId, videoId); deviceVideoRecordApp = deviceVideoRecordAppService.getBaseMapper().selectOne(lambdaQueryWrapper); - }else { + } else { lambdaQueryWrapper.eq(DeviceVideoRecordApp::getImei, imei); lambdaQueryWrapper.eq(DeviceVideoRecordApp::getVideoId, null); lambdaQueryWrapper.orderByDesc(DeviceVideoRecordApp::getStartTime); List deviceVideoRecordApps = deviceVideoRecordAppService.getBaseMapper().selectList(lambdaQueryWrapper); - log.info("获取到视频通话的记录是=======:{}",deviceVideoRecordApps); - if (StringUtils.isNotEmpty(deviceVideoRecordApps) && deviceVideoRecordApps.size() > 0){ - deviceVideoRecordApp=deviceVideoRecordApps.get(0); - log.info("获取最后一条记录是:{}==========",deviceVideoRecordApp); + log.info("获取到视频通话的记录是=======:{}", deviceVideoRecordApps); + if (StringUtils.isNotEmpty(deviceVideoRecordApps) && deviceVideoRecordApps.size() > 0) { + deviceVideoRecordApp = deviceVideoRecordApps.get(0); + log.info("获取最后一条记录是:{}==========", deviceVideoRecordApp); } - if (StringUtils.isNull(deviceVideoRecordApp.getVideoId())){ + if (StringUtils.isNull(deviceVideoRecordApp.getVideoId())) { //删除那条记录 deviceVideoRecordAppService.getBaseMapper().deleteById(deviceVideoRecordApp.getId()); } @@ -1054,7 +1052,6 @@ public class AppKafkaTask implements Callable { } - if (null != deviceVideoRecordApp) { openId = deviceVideoRecordApp.getUserId(); } @@ -1062,14 +1059,14 @@ public class AppKafkaTask implements Callable { ownerInfoAppLambdaQueryWrapper.eq(DeviceOwnerInfoApp::getImei, imei); DeviceOwnerInfoApp ownerInfoApp = ApplicationUtil.getApplicationContext().getBean(DeviceOwnerInfoAppService.class).getBaseMapper().selectOne(ownerInfoAppLambdaQueryWrapper); String lang = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(openId, CommonConstant.IOS_LANGUAGE).toString(); - String msgTitle=I18nUtil.getMessage(CommonConstant.USER_UNBIND_DEVICE,lang); + String msgTitle = I18nUtil.getMessage(CommonConstant.USER_UNBIND_DEVICE, lang); if (null != ownerInfoApp) { ownerInfoApp.setNewVideoId(""); int i = ApplicationUtil.getApplicationContext().getBean(DeviceOwnerInfoAppService.class).getBaseMapper().updateById(ownerInfoApp); log.info("清除最新的视频通话id:{}", i); - msgTitle = ownerInfoApp.getName() + I18nUtil.getMessage(CommonConstant.DOWN_VIDEO_CALL,lang); + msgTitle = ownerInfoApp.getName() + I18nUtil.getMessage(CommonConstant.DOWN_VIDEO_CALL, lang); } - if (StringUtils.isNotEmpty(openId)){ + if (StringUtils.isNotEmpty(openId)) { //封装数据下发mqtt DeviceUpHandMessage deviceUpHandMessage = new DeviceUpHandMessage(); deviceUpHandMessage.setType("accountMessage"); @@ -1082,27 +1079,26 @@ public class AppKafkaTask implements Callable { deviceUpHandMessageChild.setOpenid(openId); deviceUpHandMessage.setMessage(deviceUpHandMessageChild); String sendPushToAccount = JSONObject.toJSONString(deviceUpHandMessage); - String agent=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(openId,CommonConstant.USER_AGENT); + String agent = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(openId, CommonConstant.USER_AGENT); //判断是发IOS还是安卓 - if (CommonConstant.ANDROID.equals(agent)){ + if (CommonConstant.ANDROID.equals(agent)) { ApplicationUtil.getApplicationContext().getBean(MqttPush.class).sendMqtt("3", openId, "1", "accountMessage", "reject", sendPushToAccount); - } - else { + } else { ApplicationUtil.getApplicationContext().getBean(BindingDeviceImpl.class).sendIOS(openId, deviceUpHandMessage, "accountMessage", "reject", msgTitle); } log.info("手表 主动挂断后成功推送给APP的信息为:{}", deviceUpHandMessage); } } - //手表打给手表 对方设备IMEI,IMEI,视频类型 upVideoCallWithAPP + //手表打给手表 对方设备IMEI,IMEI,视频类型 upVideoCallWithAPP else if ("UPVCALLDEV".equals(type)) { log.info("解析手表发起 ===>手表视频通话指令"); - log.info("获取到的视频通话的参数:{}",jsonObject); + log.info("获取到的视频通话的参数:{}", jsonObject); //视频类型 String deviceVideoType = jsonObject.get("deviceVideoType").toString(); - int uid= RandomUtil.generateVerCodeInt(String.valueOf(System.currentTimeMillis())); + int uid = RandomUtil.generateVerCodeInt(String.valueOf(System.currentTimeMillis())); //视频通话类型 String callType = jsonObject.containsKey("call_type") ? jsonObject.get("call_type").toString() : "0"; //指令类型 @@ -1119,7 +1115,7 @@ public class AppKafkaTask implements Callable { if (jsonObject.containsKey("user_openid")) { String userId = jsonObject.get("user_openid").toString(); log.info("手表发起和手表通话:{}", userId); - int data = ApplicationUtil.getApplicationContext().getBean(DeviceVideoAppService.class).videoCallDevice(imei, callType, downType, userId, userId, deviceVideoType,String.valueOf(uid)); + int data = ApplicationUtil.getApplicationContext().getBean(DeviceVideoAppService.class).videoCallDevice(imei, callType, downType, userId, userId, deviceVideoType, String.valueOf(uid)); //邀请视频通话成功 并成功创建记录 if (CommonConstant.NUMBER_ONE == data) { log.info("手表打给手表成功"); @@ -1144,79 +1140,72 @@ public class AppKafkaTask implements Callable { ApplicationUtil.getApplicationContext().getBean(IssueInstructions.class).emitDeviceDemand("downVideoCallFailInfo", imei, downVideoCallFailInfo); } } - } - - - - - else if("upWeather".equals(type)){ - log.info("天气上传数据:{}",jsonObject); + } else if ("upWeather".equals(type)) { + log.info("天气上传数据:{}", jsonObject); PositionInfo positionInfo = JSONObject.parseObject(jsonObject.toString(), PositionInfo.class); - if ((StringUtils.isNotNull(positionInfo.getBaseStation()) && positionInfo.getBaseStation().size()>0) - || (StringUtils.isNotNull(positionInfo.getWifi())) && positionInfo.getWifi().size()>2){ + if ((StringUtils.isNotNull(positionInfo.getBaseStation()) && positionInfo.getBaseStation().size() > 0) + || (StringUtils.isNotNull(positionInfo.getWifi())) && positionInfo.getWifi().size() > 2) { log.info("解析上传天气位置开始======================"); - DeviceLocationApp app = LocationUtil.getWeatherLocation(positionInfo); - if (StringUtils.isNotNull(app) && StringUtils.isNotEmpty(app.getAdcode())){ - String adcode=app.getAdcode(); - //放入缓存中 - RedisService redis = ApplicationUtil.getApplicationContext().getBean(RedisService.class); - String date = DateUtils.getDate(); - String weatherDate=redis.getCacheMapValue(adcode,"weatherDate"); - WeatherLive weatherLive =new WeatherLive(); - weatherLive.setIdent(RandomUtil.generateVerCode(6)); - weatherLive.setVender("20000"); - weatherLive.setImei(imei); - weatherLive.setTime(System.currentTimeMillis()); - weatherLive.setType("downWeather"); - weatherLive.setIsCDMA(positionInfo.getBaseStationType()); - weatherLive.setAdcode(adcode); - - if (StringUtils.isNotEmpty(weatherDate) && date.equals(weatherDate)){ + DeviceLocationApp app = LocationUtil.getWeatherLocation(positionInfo); + if (StringUtils.isNotNull(app) && StringUtils.isNotEmpty(app.getAdcode())) { + String adcode = app.getAdcode(); + //放入缓存中 + RedisService redis = ApplicationUtil.getApplicationContext().getBean(RedisService.class); + String date = DateUtils.getDate(); + String weatherDate = redis.getCacheMapValue(adcode, "weatherDate"); + WeatherLive weatherLive = new WeatherLive(); + weatherLive.setIdent(RandomUtil.generateVerCode(6)); + weatherLive.setVender("20000"); + weatherLive.setImei(imei); + weatherLive.setTime(System.currentTimeMillis()); + weatherLive.setType("downWeather"); + weatherLive.setIsCDMA(positionInfo.getBaseStationType()); + weatherLive.setAdcode(adcode); + + if (StringUtils.isNotEmpty(weatherDate) && date.equals(weatherDate)) { //获取缓存 - redis.getCacheMapValue(adcode,"adcode"); - redis.getCacheMapValue(adcode,"weatherDate"); - weatherLive.setWeather(redis.getCacheMapValue(adcode,"weather")); - weatherLive.setTemperature(redis.getCacheMapValue(adcode,"temperature")); - weatherLive.setWinddirection(redis.getCacheMapValue(adcode,"winddirection")); - weatherLive.setWindpower(redis.getCacheMapValue(adcode,"windpower")); - weatherLive.setHumidity(redis.getCacheMapValue(adcode,"humidity")); - weatherLive.setReporttime(redis.getCacheMapValue(adcode,"reporttime")); - weatherLive.setProvince(redis.getCacheMapValue(adcode,"province")); - weatherLive.setCity(redis.getCacheMapValue(adcode,"city")); - - }else { - redis.deleteObject(adcode); - log.info("请求天气接口开始======================"); - WeatherResult weather = LocationUtil.getWeather(app.getAdcode()); - if (StringUtils.isNotNull(weather) && StringUtils.isNotNull( weather.getLives())){ - Lives lives = weather.getLives().get(0); - log.info("获取到的天气是:{}",lives); - //设置缓存 - redis.setCacheMapValue(adcode,"adcode",adcode); - redis.setCacheMapValue(adcode,"weatherDate",date); - redis.setCacheMapValue(adcode,"weather",lives.getWeather()); - redis.setCacheMapValue(adcode,"temperature",lives.getTemperature()); - redis.setCacheMapValue(adcode,"winddirection",lives.getWinddirection()); - redis.setCacheMapValue(adcode,"windpower",lives.getWindpower()); - redis.setCacheMapValue(adcode,"humidity",lives.getHumidity()); - redis.setCacheMapValue(adcode,"province",lives.getProvince()); - redis.setCacheMapValue(adcode,"reporttime",lives.getReporttime()); - redis.setCacheMapValue(adcode,"city",lives.getCity()); - BeanUtils.copyBeanProp(weatherLive,lives); - } - //下发天气 - log.info("下发天气数据:{}",weatherLive); - IssueInstructions instructions = ApplicationUtil.getApplicationContext().getBean(IssueInstructions.class); - instructions.sendKafka(weatherLive); - - } - - } + redis.getCacheMapValue(adcode, "adcode"); + redis.getCacheMapValue(adcode, "weatherDate"); + weatherLive.setWeather(redis.getCacheMapValue(adcode, "weather")); + weatherLive.setTemperature(redis.getCacheMapValue(adcode, "temperature")); + weatherLive.setWinddirection(redis.getCacheMapValue(adcode, "winddirection")); + weatherLive.setWindpower(redis.getCacheMapValue(adcode, "windpower")); + weatherLive.setHumidity(redis.getCacheMapValue(adcode, "humidity")); + weatherLive.setReporttime(redis.getCacheMapValue(adcode, "reporttime")); + weatherLive.setProvince(redis.getCacheMapValue(adcode, "province")); + weatherLive.setCity(redis.getCacheMapValue(adcode, "city")); + } else { + redis.deleteObject(adcode); + log.info("请求天气接口开始======================"); + WeatherResult weather = LocationUtil.getWeather(app.getAdcode()); + if (StringUtils.isNotNull(weather) && StringUtils.isNotNull(weather.getLives())) { + Lives lives = weather.getLives().get(0); + log.info("获取到的天气是:{}", lives); + //设置缓存 + redis.setCacheMapValue(adcode, "adcode", adcode); + redis.setCacheMapValue(adcode, "weatherDate", date); + redis.setCacheMapValue(adcode, "weather", lives.getWeather()); + redis.setCacheMapValue(adcode, "temperature", lives.getTemperature()); + redis.setCacheMapValue(adcode, "winddirection", lives.getWinddirection()); + redis.setCacheMapValue(adcode, "windpower", lives.getWindpower()); + redis.setCacheMapValue(adcode, "humidity", lives.getHumidity()); + redis.setCacheMapValue(adcode, "province", lives.getProvince()); + redis.setCacheMapValue(adcode, "reporttime", lives.getReporttime()); + redis.setCacheMapValue(adcode, "city", lives.getCity()); + BeanUtils.copyBeanProp(weatherLive, lives); + } + //下发天气 + log.info("下发天气数据:{}", weatherLive); + IssueInstructions instructions = ApplicationUtil.getApplicationContext().getBean(IssueInstructions.class); + instructions.sendKafka(weatherLive); + } + + } - } + } } @@ -1230,9 +1219,9 @@ public class AppKafkaTask implements Callable { String MY_PACKAGE_NAME = "com.ecellsz.watch.guard"; Constants.useOfficial(); Message message; - Map map = new HashMap<>(16); + Map map = new HashMap<>(16); map.put("notify_foreground", "1"); - if(null!= intentUri) { + if (null != intentUri) { map.put("intent_uri", intentUri); } @@ -1248,10 +1237,10 @@ public class AppKafkaTask implements Callable { .description(body) .build(); //安卓推送 - // Sender sender = new Sender(APP_SECRET_KEY, Region.Other); + // Sender sender = new Sender(APP_SECRET_KEY, Region.Other); Sender senderAndroid = new Sender(APP_SECRET_KEY_ANDROID); - Result result =senderAndroid.send(message, regId, 3); - System.out.println("小米推送消息的regId为:"+regId+"推送结果为:"+result); + Result result = senderAndroid.send(message, regId, 3); + System.out.println("小米推送消息的regId为:" + regId + "推送结果为:" + result); } //根据邮箱查询用户id @@ -1278,20 +1267,22 @@ public class AppKafkaTask implements Callable { } public void insertOrUpdateStep(String imei, String step) { - log.info("{}新增或者更新步数{}",imei,step); + log.info("{}新增或者更新步数{}", imei, step); synchronized (SYS_OBJECT) { + DeviceStepDailyService bean = ApplicationUtil.getApplicationContext().getBean(DeviceStepDailyService.class); + //2.监听步数上传到数据库 LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(DeviceStepDaily::getImei, imei); //日期格式化 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = new Date(); + System.out.println("获取到步数的时间是:=======" + date1); String date = simpleDateFormat.format(date1); - System.out.println("获取到步数的时间是:======="+date); - lambdaQueryWrapper.eq(DeviceStepDaily::getCreateTime, date); + System.out.println("获取到步数的GMT时间是:=======" + date); + lambdaQueryWrapper.eq(DeviceStepDaily::getStepTime, date); try { //2.1.首先根据imei号和当前时间查询是否存在,存在则更新 - DeviceStepDailyService bean = ApplicationUtil.getApplicationContext().getBean(DeviceStepDailyService.class); DeviceStepDaily deviceStepDaily = bean.getBaseMapper().selectOne(lambdaQueryWrapper); //2.2.获取设备用户体重 LambdaQueryWrapper lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); @@ -1300,12 +1291,16 @@ public class AppKafkaTask implements Callable { //计算行驶距离和卡路里 double weight = null == deviceOwnerInfoApp ? 0.00 : Double.parseDouble(deviceOwnerInfoApp.getWeight()); Map distanceAndCalorie = getDistanceAndCalorie(Integer.valueOf(step), weight); + log.info("查询到的步数==============:{}", deviceStepDaily); //存在则更新 if (null != deviceStepDaily) { + log.info("更新步数=============:{}", deviceStepDaily); + deviceStepDaily.setStepTime(date); deviceStepDaily.setWalksNum(Integer.valueOf(step)); deviceStepDaily.setWalksDistance(distanceAndCalorie.get("distance").intValue()); deviceStepDaily.setWalksCalorie(distanceAndCalorie.get("calorie").intValue()); - deviceStepDaily.setUpdateTime(date1); + deviceStepDaily.setCreateTime(simpleDateFormat.parse(date)); + deviceStepDaily.setUpdateTime(new Date()); bean.getBaseMapper().updateById(deviceStepDaily); } else { @@ -1318,7 +1313,9 @@ public class AppKafkaTask implements Callable { deviceStepDaily1.setWalksNum(Integer.valueOf(step)); deviceStepDaily1.setWalksDistance(distanceAndCalorie.get("distance").intValue()); deviceStepDaily1.setWalksCalorie(distanceAndCalorie.get("calorie").intValue()); - deviceStepDaily1.setUpdateTime(date1); + deviceStepDaily1.setStepTime(date); + deviceStepDaily1.setUpdateTime(new Date()); + log.info("新增步数=============:{}", deviceStepDaily1); bean.getBaseMapper().insert(deviceStepDaily1); } } catch (Exception e) { @@ -1350,7 +1347,7 @@ public class AppKafkaTask implements Callable { batteryInfo.setLastBattery(battery); // batteryInfo.getBattery()>=10 低电量只推送一次。 - if (battery <= 10 && CommonConstant.AUDIT_STATUS_ONE.equals(batteryInfo.getLowBatteryAlarm()) && batteryInfo.getBattery()>=10) { + if (battery <= 10 && CommonConstant.AUDIT_STATUS_ONE.equals(batteryInfo.getLowBatteryAlarm()) && batteryInfo.getBattery() >= 10) { sendBattery(imei, "lowBattery", String.valueOf(battery)); } //更新 @@ -1437,11 +1434,11 @@ public class AppKafkaTask implements Callable { //根据管理员ID查询手机型号 RedisService redisService = ApplicationUtil.getApplicationContext().getBean(RedisService.class); String phoneType = redisService.getCacheMapValue(id, CommonConstant.USER_AGENT); - if (CommonConstant.ANDROID.equals(phoneType)){ + if (CommonConstant.ANDROID.equals(phoneType)) { //发送消息 - mqttPush.sendMqtt(CommonConstant.AUDIT_STATUS_THREE,id,CommonConstant.AUDIT_STATUS_ONE,"accountMessage","lowBattery",s1); + mqttPush.sendMqtt(CommonConstant.AUDIT_STATUS_THREE, id, CommonConstant.AUDIT_STATUS_ONE, "accountMessage", "lowBattery", s1); - }else if(CommonConstant.IOS.equals(phoneType)){ + } else if (CommonConstant.IOS.equals(phoneType)) { // //根据管理员Id获取语言信息 // String language = redisService.getCacheMapValue(id, CommonConstant.IOS_LANGUAGE); // String alert; @@ -1453,12 +1450,12 @@ public class AppKafkaTask implements Callable { // }else { // alert = String.format("The battery of %s watch is low, please charge it!", Optional.ofNullable(deviceOwnerInfoApp.getName()).orElse("宝贝")); // } - String lage=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(id,CommonConstant.IOS_LANGUAGE); - String alert =String.format(I18nUtil.getMessage("messages.ios.lowBattery",lage),Optional.ofNullable(deviceOwnerInfoApp.getName()).orElse("宝贝")); - bindingDeviceImpl.sendIOS(id,approvalMessages,"accountMessage","lowBattery",alert); + String lage = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(id, CommonConstant.IOS_LANGUAGE); + String alert = String.format(I18nUtil.getMessage("messages.ios.lowBattery", lage), Optional.ofNullable(deviceOwnerInfoApp.getName()).orElse("宝贝")); + bindingDeviceImpl.sendIOS(id, approvalMessages, "accountMessage", "lowBattery", alert); } - // mqttPush.sendMqtt(CommonConstant.AUDIT_STATUS_THREE, id, CommonConstant.AUDIT_STATUS_ONE, "accountMessage", "lowBattery", s1); + // mqttPush.sendMqtt(CommonConstant.AUDIT_STATUS_THREE, id, CommonConstant.AUDIT_STATUS_ONE, "accountMessage", "lowBattery", s1); } @@ -1544,8 +1541,8 @@ public class AppKafkaTask implements Callable { // } else { // alert = String.format("%s triggers SOS", Optional.ofNullable(deviceOwnerInfoApp.getName()).orElse("宝贝")); // } - String lage=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(id,CommonConstant.IOS_LANGUAGE); - String alert =String.format(I18nUtil.getMessage("messages.ios.sos",lage),Optional.ofNullable(deviceOwnerInfoApp.getName()).orElse("宝贝")); + String lage = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(id, CommonConstant.IOS_LANGUAGE); + String alert = String.format(I18nUtil.getMessage("messages.ios.sos", lage), Optional.ofNullable(deviceOwnerInfoApp.getName()).orElse("宝贝")); bindingDeviceImpl.sendIOS(id, approvalMessages, "accountMessage", "sos", alert); @@ -1555,100 +1552,94 @@ public class AppKafkaTask implements Callable { //mqttPush.sendMqtt(CommonConstant.AUDIT_STATUS_THREE, id, CommonConstant.AUDIT_STATUS_ONE, "accountMessage", "sos", s1); //安卓系统推送 String lang = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(id, CommonConstant.IOS_LANGUAGE); - String agent=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(id,CommonConstant.USER_AGENT); + String agent = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(id, CommonConstant.USER_AGENT); log.info("安卓IOS系统推送开始:{}", agent); - if ("Android".equals(agent)){ + if ("Android".equals(agent)) { - String content = deviceOwnerInfoApp.getName() +I18nUtil.getMessage(CommonConstant.TRIGGER_SOS,lang); + String content = deviceOwnerInfoApp.getName() + I18nUtil.getMessage(CommonConstant.TRIGGER_SOS, lang); //手机厂商机型:HW、XM等 - String AndroidType=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject(CommonConstant.ANDROID_AGENT+id); - if (StringUtils.isNotEmpty(AndroidType)){ - if ("HW".equals(AndroidType)){ + String AndroidType = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject(CommonConstant.ANDROID_AGENT + id); + if (StringUtils.isNotEmpty(AndroidType)) { + if ("HW".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("HW:"+id); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("HW:" + id); //服务端获取华为的token - String huaweiAccessToken=""; - if (null!=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken")){ - huaweiAccessToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken"); - } - else { + String huaweiAccessToken = ""; + if (null != ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken")) { + huaweiAccessToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken"); + } else { huaweiAccessToken = getHuaweiAccessToken(); - ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("huaweiAccessToken",huaweiAccessToken,2L,TimeUnit.HOURS); + ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("huaweiAccessToken", huaweiAccessToken, 2L, TimeUnit.HOURS); } - JSONObject first=new JSONObject(); - first.put("validate_only",false); - JSONObject titleObject=new JSONObject(); - titleObject.put("title",I18nUtil.getMessage(CommonConstant.ALARM_SOS,lang)); - titleObject.put("body",content); - JSONObject notificationObject=new JSONObject(); - notificationObject.put("notification",titleObject); - JSONObject clickActionObject=new JSONObject(); - clickActionObject.put("type",1); - clickActionObject.put("action","com.ecell.intent.action.MESSAGE"); - JSONObject notificationClick=new JSONObject(); - notificationClick.put("notification",clickActionObject); - notificationObject.put("android",notificationClick); - notificationObject.put("token",deviceToken); - first.put("message",notificationObject); - String huaweiMsgData= JSONObject.toJSONString(first); + JSONObject first = new JSONObject(); + first.put("validate_only", false); + JSONObject titleObject = new JSONObject(); + titleObject.put("title", I18nUtil.getMessage(CommonConstant.ALARM_SOS, lang)); + titleObject.put("body", content); + JSONObject notificationObject = new JSONObject(); + notificationObject.put("notification", titleObject); + JSONObject clickActionObject = new JSONObject(); + clickActionObject.put("type", 1); + clickActionObject.put("action", "com.ecell.intent.action.MESSAGE"); + JSONObject notificationClick = new JSONObject(); + notificationClick.put("notification", clickActionObject); + notificationObject.put("android", notificationClick); + notificationObject.put("token", deviceToken); + first.put("message", notificationObject); + String huaweiMsgData = JSONObject.toJSONString(first); log.info("华为系统推送开始token为:{}", huaweiAccessToken); - pushMessage(id,huaweiMsgData,huaweiAccessToken); - } - else if ("XM".equals(AndroidType)){ + pushMessage(id, huaweiMsgData, huaweiAccessToken); + } else if ("XM".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("XM:"+id); - String title = I18nUtil.getMessage(CommonConstant.ALARM_SOS,lang); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("XM:" + id); + String title = I18nUtil.getMessage(CommonConstant.ALARM_SOS, lang); String intentUri = "intent:#Intent;component=com.ecellsz.watch.guard/com.cyrus.mine.function.msg.MsgActivity;end"; log.info("小米系统推送开始token为:{}", deviceToken); - pushMiMessage(title,content,"",deviceToken,intentUri); - } - else if ("VI".equals(AndroidType)){ + pushMiMessage(title, content, "", deviceToken, intentUri); + } else if ("VI".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("VI:"+id); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("VI:" + id); //服务端获取VIVO的token - String viVoAccessToken=""; - if (null!=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken")){ - viVoAccessToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken"); - } - else { + String viVoAccessToken = ""; + if (null != ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken")) { + viVoAccessToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken"); + } else { viVoAccessToken = getViVoAccessToken(); - ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("viVoAccessToken",viVoAccessToken,12L,TimeUnit.HOURS); + ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("viVoAccessToken", viVoAccessToken, 12L, TimeUnit.HOURS); } - JSONObject msgJson=new JSONObject(); - msgJson.put("regId",deviceToken); - msgJson.put("notifyType",4); - msgJson.put("title",I18nUtil.getMessage(CommonConstant.ALARM_SOS,lang)); - msgJson.put("content",content); - msgJson.put("skipType",4); - msgJson.put("skipContent","intent://com.ecellsz.push.message/detail#Intent;scheme=vpushscheme;component=com.ecellsz.watch.guard/com.cyrus.mine.function.msg.MsgActivity;end"); + JSONObject msgJson = new JSONObject(); + msgJson.put("regId", deviceToken); + msgJson.put("notifyType", 4); + msgJson.put("title", I18nUtil.getMessage(CommonConstant.ALARM_SOS, lang)); + msgJson.put("content", content); + msgJson.put("skipType", 4); + msgJson.put("skipContent", "intent://com.ecellsz.push.message/detail#Intent;scheme=vpushscheme;component=com.ecellsz.watch.guard/com.cyrus.mine.function.msg.MsgActivity;end"); msgJson.put("requestId", com.ecell.internationalize.common.core.utils.uuid.UUID.fastUUID().toString(true)); //msgJson.put("clientCustomMap",downVideoCallWithWatch); - msgJson.put("classification",1); + msgJson.put("classification", 1); log.info("VIVO系统推送开始token为:{}", viVoAccessToken); sendViVoMessage(viVoAccessToken, msgJson, id); - } - else if ("OP".equals(AndroidType)){ + } else if ("OP".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("OP:"+id); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("OP:" + id); //服务端获取OPPO的token - String opPoAccessToken=""; - if (null!=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken")){ - opPoAccessToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken"); - } - else { + String opPoAccessToken = ""; + if (null != ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken")) { + opPoAccessToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken"); + } else { opPoAccessToken = getOpPoAccessToken(); - ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("opPoAccessToken",opPoAccessToken,12L,TimeUnit.HOURS); + ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("opPoAccessToken", opPoAccessToken, 12L, TimeUnit.HOURS); } - JSONObject postData=new JSONObject(); - postData.put("target_type",2); - postData.put("target_value",deviceToken); - JSONObject postData1=new JSONObject(); - postData1.put("title",I18nUtil.getMessage(CommonConstant.ALARM_SOS,lang)); - postData1.put("content",content); - postData1.put("click_action_type",1); - postData1.put("click_action_activity","com.ecell.intent.action.MESSAGE"); + JSONObject postData = new JSONObject(); + postData.put("target_type", 2); + postData.put("target_value", deviceToken); + JSONObject postData1 = new JSONObject(); + postData1.put("title", I18nUtil.getMessage(CommonConstant.ALARM_SOS, lang)); + postData1.put("content", content); + postData1.put("click_action_type", 1); + postData1.put("click_action_activity", "com.ecell.intent.action.MESSAGE"); //postData1.put("action_parameters",downVideoCallWithWatch); - postData.put("notification",postData1); + postData.put("notification", postData1); String str = JSONObject.toJSONString(postData); log.info("OP系统推送开始token为:{}", opPoAccessToken); sendOpPoMessage(opPoAccessToken, str, id); @@ -1708,7 +1699,7 @@ public class AppKafkaTask implements Callable { // alert = String.format("%s triggers SOS", Optional.ofNullable(deviceOwnerInfoApp.getName()).orElse("宝贝")); // } bindingDeviceImpl.sendIOS(id, approvalMessages, "accountMessage", "battery", null); - // mqttPush.sendMqtt(CommonConstant.AUDIT_STATUS_THREE, id, CommonConstant.AUDIT_STATUS_ONE, "accountMessage", "battery", s1); + // mqttPush.sendMqtt(CommonConstant.AUDIT_STATUS_THREE, id, CommonConstant.AUDIT_STATUS_ONE, "accountMessage", "battery", s1); } @@ -1769,7 +1760,7 @@ public class AppKafkaTask implements Callable { * @param positionInfo */ public synchronized void getLastLocationInfo(DeviceLocationApp app, PositionInfo positionInfo) { - log.info("最新位置解析:{}",app); + log.info("最新位置解析:{}", app); LatestLocationApp latestLocationApp = new LatestLocationApp(); BeanUtils.copyBeanProp(latestLocationApp, app); LatestLocationAppServiceImpl impl = ApplicationUtil.getApplicationContext().getBean(LatestLocationAppServiceImpl.class); @@ -1817,8 +1808,8 @@ public class AppKafkaTask implements Callable { * @param rate 心率 * @param temperature 体温 */ - private void updateLocationByImei(LatestLocationApp app, String battery, String stepNumber, String rate, String temperature,String oxygen) { - LatestLocationAppServiceImpl impl = ApplicationUtil.getApplicationContext().getBean(LatestLocationAppServiceImpl.class); + private void updateLocationByImei(LatestLocationApp app, String battery, String stepNumber, String rate, String temperature, String oxygen) { + LatestLocationAppServiceImpl impl = ApplicationUtil.getApplicationContext().getBean(LatestLocationAppServiceImpl.class); if (StringUtils.isNotEmpty(battery)) { app.setBattery(Integer.valueOf(battery)); } @@ -2030,7 +2021,7 @@ public class AppKafkaTask implements Callable { LambdaQueryWrapper deviceOwnerInfoAppLambdaQueryWrapper = new LambdaQueryWrapper<>(); deviceOwnerInfoAppLambdaQueryWrapper.eq(DeviceOwnerInfoApp::getImei, imei); DeviceOwnerInfoApp deviceOwnerInfoApp = ApplicationUtil.getApplicationContext().getBean(DeviceOwnerInfoAppService.class).getBaseMapper().selectOne(deviceOwnerInfoAppLambdaQueryWrapper); - String name=null == deviceOwnerInfoApp ? "" : deviceOwnerInfoApp.getName(); + String name = null == deviceOwnerInfoApp ? "" : deviceOwnerInfoApp.getName(); //根据imei号查找绑定的userId // ReminderMessageApp reminderMessageApp; LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -2050,20 +2041,18 @@ public class AppKafkaTask implements Callable { safeRailMessageChild.setTimestamp(System.currentTimeMillis()); safeRailMessage.setMessage(safeRailMessageChild); String sendPushToAccount = JSONObject.toJSONString(safeRailMessage); - String alert=""; + String alert = ""; String lang = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(userDeviceBindApp.getUserId(), CommonConstant.IOS_LANGUAGE); - String agent=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(userDeviceBindApp.getUserId(),CommonConstant.USER_AGENT); - if ("enter".equals(safetyRailApp.getAction())){ - alert=name+I18nUtil.getMessage(CommonConstant.ENTER_RAIL,lang); - } - else { - alert=name+I18nUtil.getMessage(CommonConstant.LEAVE_RAIL,lang); + String agent = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(userDeviceBindApp.getUserId(), CommonConstant.USER_AGENT); + if ("enter".equals(safetyRailApp.getAction())) { + alert = name + I18nUtil.getMessage(CommonConstant.ENTER_RAIL, lang); + } else { + alert = name + I18nUtil.getMessage(CommonConstant.LEAVE_RAIL, lang); } //判断是发IOS还是安卓 - if (CommonConstant.ANDROID.equals(agent)){ + if (CommonConstant.ANDROID.equals(agent)) { ApplicationUtil.getApplicationContext().getBean(MqttPush.class).sendMqtt("3", userDeviceBindApp.getUserId(), "1", "accountMessage", "rail", sendPushToAccount); - } - else { + } else { ApplicationUtil.getApplicationContext().getBean(BindingDeviceImpl.class).sendIOS(userDeviceBindApp.getUserId(), safeRailMessage, "accountMessage", "rail", alert); } } @@ -2180,12 +2169,6 @@ public class AppKafkaTask implements Callable { } - - - - - - /** * 心率/体温异常报警推送mqtt */ @@ -2203,7 +2186,7 @@ public class AppKafkaTask implements Callable { String reminderType = ""; if (CommonConstant.AUDIT_STATUS_ONE.equals(type)) { msg = name + "心率异常,当前监测心率为" + data + "次/分"; - msgContent = name +"手表当前监测心率为" + data + "次/分"; + msgContent = name + "手表当前监测心率为" + data + "次/分"; abNormalType = "abnormalHeartRate"; reminderType = "4"; } else { @@ -2231,113 +2214,106 @@ public class AppKafkaTask implements Callable { heartPush.setMessage(heartPushChild); String sendPushToAccount = JSONObject.toJSONString(heartPush); String lang = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(userDeviceBindApp.getUserId(), CommonConstant.IOS_LANGUAGE); - String agent=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(userDeviceBindApp.getUserId(),CommonConstant.USER_AGENT); - String alert=I18nUtil.getMessage(CommonConstant.ACCEPT_CHANT_VIDEO,lang); + String agent = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheMapValue(userDeviceBindApp.getUserId(), CommonConstant.USER_AGENT); + String alert = I18nUtil.getMessage(CommonConstant.ACCEPT_CHANT_VIDEO, lang); //判断是发IOS还是安卓 - if (CommonConstant.ANDROID.equals(agent)){ + if (CommonConstant.ANDROID.equals(agent)) { ApplicationUtil.getApplicationContext().getBean(MqttPush.class).sendMqtt("3", userDeviceBindApp.getUserId(), "1", "accountMessage", abNormalType, sendPushToAccount); - } - else { + } else { ApplicationUtil.getApplicationContext().getBean(BindingDeviceImpl.class).sendIOS(userDeviceBindApp.getUserId(), heartPush, "accountMessage", abNormalType, null); } log.info("心率/体温告警信息下发mqtt成功:{},心率为:{},类型为:{}", userDeviceBindApp.getUserId(), data, type); //安卓系统推送 - if ("Android".equals(agent)){ + if ("Android".equals(agent)) { //手机厂商机型:HW、XM等 - String AndroidType=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject(CommonConstant.ANDROID_AGENT+userDeviceBindApp.getUserId()); - if (StringUtils.isNotEmpty(AndroidType)){ - String content =""; - String abNormalMsg=""; + String AndroidType = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject(CommonConstant.ANDROID_AGENT + userDeviceBindApp.getUserId()); + if (StringUtils.isNotEmpty(AndroidType)) { + String content = ""; + String abNormalMsg = ""; if (CommonConstant.AUDIT_STATUS_ONE.equals(type)) { - content= name +I18nUtil.getMessage(CommonConstant.HEART_RATE_ABNORMAL,lang) + data +I18nUtil.getMessage(CommonConstant.PRE_MIN,lang); - abNormalMsg=I18nUtil.getMessage(CommonConstant.HEART_SIMPLE_ABNORMAL,lang); - }else { - content= name +I18nUtil.getMessage(CommonConstant.TEMP_ABNORMAL,lang) + data +"℃"; - abNormalMsg=I18nUtil.getMessage(CommonConstant.TEMP_SIMPLE,lang); + content = name + I18nUtil.getMessage(CommonConstant.HEART_RATE_ABNORMAL, lang) + data + I18nUtil.getMessage(CommonConstant.PRE_MIN, lang); + abNormalMsg = I18nUtil.getMessage(CommonConstant.HEART_SIMPLE_ABNORMAL, lang); + } else { + content = name + I18nUtil.getMessage(CommonConstant.TEMP_ABNORMAL, lang) + data + "℃"; + abNormalMsg = I18nUtil.getMessage(CommonConstant.TEMP_SIMPLE, lang); } - if ("HW".equals(AndroidType)){ + if ("HW".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("HW:"+userDeviceBindApp.getUserId()); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("HW:" + userDeviceBindApp.getUserId()); //服务端获取华为的token - String huaweiAccessToken=""; - if (null!=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken")){ - huaweiAccessToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken"); - } - else { + String huaweiAccessToken = ""; + if (null != ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken")) { + huaweiAccessToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("huaweiAccessToken"); + } else { huaweiAccessToken = getHuaweiAccessToken(); - ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("huaweiAccessToken",huaweiAccessToken,2L,TimeUnit.HOURS); + ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("huaweiAccessToken", huaweiAccessToken, 2L, TimeUnit.HOURS); } - JSONObject first=new JSONObject(); - first.put("validate_only",false); - JSONObject titleObject=new JSONObject(); - titleObject.put("title",abNormalMsg); - titleObject.put("body",content); - JSONObject notificationObject=new JSONObject(); - notificationObject.put("notification",titleObject); - JSONObject clickActionObject=new JSONObject(); - clickActionObject.put("type",1); - clickActionObject.put("action","com.ecell.intent.action.MESSAGE"); - JSONObject notificationClick=new JSONObject(); - notificationClick.put("notification",clickActionObject); - notificationObject.put("android",notificationClick); - notificationObject.put("token",deviceToken); - first.put("message",notificationObject); - String huaweiMsgData= JSONObject.toJSONString(first); - pushMessage(userDeviceBindApp.getUserId(),huaweiMsgData,huaweiAccessToken); - } - else if ("XM".equals(AndroidType)){ + JSONObject first = new JSONObject(); + first.put("validate_only", false); + JSONObject titleObject = new JSONObject(); + titleObject.put("title", abNormalMsg); + titleObject.put("body", content); + JSONObject notificationObject = new JSONObject(); + notificationObject.put("notification", titleObject); + JSONObject clickActionObject = new JSONObject(); + clickActionObject.put("type", 1); + clickActionObject.put("action", "com.ecell.intent.action.MESSAGE"); + JSONObject notificationClick = new JSONObject(); + notificationClick.put("notification", clickActionObject); + notificationObject.put("android", notificationClick); + notificationObject.put("token", deviceToken); + first.put("message", notificationObject); + String huaweiMsgData = JSONObject.toJSONString(first); + pushMessage(userDeviceBindApp.getUserId(), huaweiMsgData, huaweiAccessToken); + } else if ("XM".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("XM:"+userDeviceBindApp.getUserId()); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("XM:" + userDeviceBindApp.getUserId()); String intentUri = "intent:#Intent;component=com.ecellsz.watch.guard/com.cyrus.mine.function.msg.MsgActivity;end"; - pushMiMessage(abNormalMsg,content,"",deviceToken,intentUri); - } - else if ("VI".equals(AndroidType)){ + pushMiMessage(abNormalMsg, content, "", deviceToken, intentUri); + } else if ("VI".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("VI:"+userDeviceBindApp.getUserId()); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("VI:" + userDeviceBindApp.getUserId()); //服务端获取VIVO的token - String viVoAccessToken=""; - if (null!=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken")){ - viVoAccessToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken"); - } - else { + String viVoAccessToken = ""; + if (null != ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken")) { + viVoAccessToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("viVoAccessToken"); + } else { viVoAccessToken = getViVoAccessToken(); - ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("viVoAccessToken",viVoAccessToken,12L,TimeUnit.HOURS); + ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("viVoAccessToken", viVoAccessToken, 12L, TimeUnit.HOURS); } - JSONObject msgJson=new JSONObject(); - msgJson.put("regId",deviceToken); - msgJson.put("notifyType",4); - msgJson.put("title",abNormalMsg); - msgJson.put("content",content); - msgJson.put("skipType",4); - msgJson.put("skipContent","intent://com.ecellsz.push.message/detail#Intent;scheme=vpushscheme;component=com.ecellsz.watch.guard/com.cyrus.mine.function.msg.MsgActivity;end"); + JSONObject msgJson = new JSONObject(); + msgJson.put("regId", deviceToken); + msgJson.put("notifyType", 4); + msgJson.put("title", abNormalMsg); + msgJson.put("content", content); + msgJson.put("skipType", 4); + msgJson.put("skipContent", "intent://com.ecellsz.push.message/detail#Intent;scheme=vpushscheme;component=com.ecellsz.watch.guard/com.cyrus.mine.function.msg.MsgActivity;end"); msgJson.put("requestId", com.ecell.internationalize.common.core.utils.uuid.UUID.fastUUID().toString(true)); //msgJson.put("clientCustomMap",downVideoCallWithWatch); - msgJson.put("classification",1); + msgJson.put("classification", 1); sendViVoMessage(viVoAccessToken, msgJson, userDeviceBindApp.getUserId()); - } - else if ("OP".equals(AndroidType)){ + } else if ("OP".equals(AndroidType)) { //获取对应的token - String deviceToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("OP:"+userDeviceBindApp.getUserId()); + String deviceToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("OP:" + userDeviceBindApp.getUserId()); //服务端获取OPPO的token - String opPoAccessToken=""; - if (null!=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken")){ - opPoAccessToken=ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken"); - } - else { + String opPoAccessToken = ""; + if (null != ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken")) { + opPoAccessToken = ApplicationUtil.getApplicationContext().getBean(RedisService.class).getCacheObject("opPoAccessToken"); + } else { opPoAccessToken = getOpPoAccessToken(); - ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("opPoAccessToken",opPoAccessToken,12L,TimeUnit.HOURS); + ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("opPoAccessToken", opPoAccessToken, 12L, TimeUnit.HOURS); } - JSONObject postData=new JSONObject(); - postData.put("target_type",2); - postData.put("target_value",deviceToken); - JSONObject postData1=new JSONObject(); - postData1.put("title",abNormalMsg); - postData1.put("content",content); - postData1.put("click_action_type",1); - postData1.put("click_action_activity","com.ecell.intent.action.MESSAGE"); + JSONObject postData = new JSONObject(); + postData.put("target_type", 2); + postData.put("target_value", deviceToken); + JSONObject postData1 = new JSONObject(); + postData1.put("title", abNormalMsg); + postData1.put("content", content); + postData1.put("click_action_type", 1); + postData1.put("click_action_activity", "com.ecell.intent.action.MESSAGE"); //postData1.put("action_parameters",downVideoCallWithWatch); - postData.put("notification",postData1); + postData.put("notification", postData1); String str = JSONObject.toJSONString(postData); sendOpPoMessage(opPoAccessToken, str, userDeviceBindApp.getUserId()); } @@ -2387,7 +2363,8 @@ public class AppKafkaTask implements Callable { log.info("保存心率/体温告警信息保存到提醒消息表异常,异常原因:{}", e.getMessage()); } } - private String getHuaweiAccessToken(){ + + private String getHuaweiAccessToken() { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("https://oauth-login.cloud.huawei.com/oauth2/v2/token"); //设置Content-Type,此处根据实际情况确定 @@ -2400,78 +2377,75 @@ public class AppKafkaTask implements Callable { JSONObject result = new JSONObject(); try { int code = httpClient.executeMethod(postMethod); - log.info("获取华为token执行返回的code为:{}",code); - if (code == 200){ + log.info("获取华为token执行返回的code为:{}", code); + if (code == 200) { result = JSON.parseObject(postMethod.getResponseBodyAsString()); - log.info("返回的华为的token:{}",result.get("access_token").toString()); + log.info("返回的华为的token:{}", result.get("access_token").toString()); } } catch (IOException e) { e.printStackTrace(); } - return null == result.get("access_token")?null:result.get("access_token").toString(); + return null == result.get("access_token") ? null : result.get("access_token").toString(); } - private void pushMessage(String userId, String huaweiMsgData, String huaweiAccessToken) throws UnsupportedEncodingException { + private void pushMessage(String userId, String huaweiMsgData, String huaweiAccessToken) throws UnsupportedEncodingException { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("https://push-api.cloud.huawei.com/v1/102624281/messages:send"); //设置Content-Type,此处根据实际情况确定 postMethod.addRequestHeader("Content-Type", "application/json"); - postMethod.addRequestHeader("Authorization", "Bearer"+huaweiAccessToken); + postMethod.addRequestHeader("Authorization", "Bearer" + huaweiAccessToken); - RequestEntity se = new StringRequestEntity(huaweiMsgData ,"application/json" ,"UTF-8"); + RequestEntity se = new StringRequestEntity(huaweiMsgData, "application/json", "UTF-8"); postMethod.setRequestEntity(se); try { int code = httpClient.executeMethod(postMethod); - log.info("华为系统推送消息的code:{}",code); + log.info("华为系统推送消息的code:{}", code); JSONObject result = JSON.parseObject(postMethod.getResponseBodyAsString()); - log.info("返回的华为系统推送消息结果:{}",result); - String resultCode=result.get("code").toString(); - if ("80200003".equals(resultCode)){ - String accessToken=getHuaweiAccessToken(); - ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("huaweiAccessToken",accessToken,1L,TimeUnit.HOURS); + log.info("返回的华为系统推送消息结果:{}", result); + String resultCode = result.get("code").toString(); + if ("80200003".equals(resultCode)) { + String accessToken = getHuaweiAccessToken(); + ApplicationUtil.getApplicationContext().getBean(RedisService.class).setCacheObject("huaweiAccessToken", accessToken, 1L, TimeUnit.HOURS); //pushMessage(userId, huaweiMsgData, accessToken); } - if ("80000000".equals(resultCode)){ - log.info("推送给华为用户:{},信息成功:{}",userId,result); - } - else { - log.info("推送给华为用户:{},信息失败:{}",userId,result); + if ("80000000".equals(resultCode)) { + log.info("推送给华为用户:{},信息成功:{}", userId, result); + } else { + log.info("推送给华为用户:{},信息失败:{}", userId, result); } } catch (IOException e) { e.printStackTrace(); - } - finally { + } finally { httpClient.getHttpConnectionManager().closeIdleConnections(0); - log.info("线程:{}推送华为用户,释放连接完成",Thread.currentThread().getName()); + log.info("线程:{}推送华为用户,释放连接完成", Thread.currentThread().getName()); } } private String getViVoAccessToken() throws NoSuchAlgorithmException, UnsupportedEncodingException { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("https://api-push.vivo.com.cn/message/auth"); - String timestamp= String.valueOf(System.currentTimeMillis()); + String timestamp = String.valueOf(System.currentTimeMillis()); String sign = Md5Utils.signUtil(timestamp); - JSONObject jsonObject=new JSONObject(); - jsonObject.put("appId",104088249); - jsonObject.put("appKey","33a6df6da5a10d0e81c6737a192213fc"); - jsonObject.put("timestamp",timestamp); - jsonObject.put("sign",sign); - System.out.println("sign:"+sign); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("appId", 104088249); + jsonObject.put("appKey", "33a6df6da5a10d0e81c6737a192213fc"); + jsonObject.put("timestamp", timestamp); + jsonObject.put("sign", sign); + System.out.println("sign:" + sign); String str = JSONObject.toJSONString(jsonObject); postMethod.addRequestHeader("Content-Type", "application/json"); - RequestEntity se = new StringRequestEntity(str ,"application/json" ,"UTF-8"); + RequestEntity se = new StringRequestEntity(str, "application/json", "UTF-8"); postMethod.setRequestEntity(se); - String authToken=null; + String authToken = null; try { httpClient.executeMethod(postMethod); JSONObject result = JSON.parseObject(postMethod.getResponseBodyAsString()); - System.out.println("返回的小米系统推送消息结果:{}"+result); - if(Integer.parseInt(result.get("result").toString()) == 0){ - authToken=result.get("authToken").toString(); - log.info("获取VIVO token成功:{}",authToken); - } - else { - log.info("获取VIVO token失败:{}",result); + System.out.println("返回的小米系统推送消息结果:{}" + result); + if (Integer.parseInt(result.get("result").toString()) == 0) { + authToken = result.get("authToken").toString(); + log.info("获取VIVO token成功:{}", authToken); + } else { + log.info("获取VIVO token失败:{}", result); } } catch (IOException e) { e.printStackTrace(); @@ -2484,27 +2458,25 @@ public class AppKafkaTask implements Callable { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("https://api-push.vivo.com.cn/message/send"); postMethod.addRequestHeader("Content-Type", "application/json"); - postMethod.addRequestHeader("authToken",viVoAccessToken); - RequestEntity se = new StringRequestEntity(str ,"application/json" ,"UTF-8"); + postMethod.addRequestHeader("authToken", viVoAccessToken); + RequestEntity se = new StringRequestEntity(str, "application/json", "UTF-8"); postMethod.setRequestEntity(se); try { int code = httpClient.executeMethod(postMethod); - log.info("VIVO系统推送消息的code:{}",code); + log.info("VIVO系统推送消息的code:{}", code); JSONObject result = JSON.parseObject(postMethod.getResponseBodyAsString()); - log.info("返回的VIVO系统推送消息结果:{}",result); - int resultCode=Integer.parseInt(result.get("result").toString()); - if (resultCode == 0){ - log.info("推送给VIVO用户:{},信息成功:{}",userId,result); - } - else { - log.info("推送给VIVO用户:{},信息失败:{}",userId,result); + log.info("返回的VIVO系统推送消息结果:{}", result); + int resultCode = Integer.parseInt(result.get("result").toString()); + if (resultCode == 0) { + log.info("推送给VIVO用户:{},信息成功:{}", userId, result); + } else { + log.info("推送给VIVO用户:{},信息失败:{}", userId, result); } } catch (IOException e) { e.printStackTrace(); - } - finally { + } finally { httpClient.getHttpConnectionManager().closeIdleConnections(0); - log.info("线程:{}推送VIVO用户,释放连接完成",Thread.currentThread().getName()); + log.info("线程:{}推送VIVO用户,释放连接完成", Thread.currentThread().getName()); } } @@ -2516,54 +2488,52 @@ public class AppKafkaTask implements Callable { String signData = "2a005bdf43cd450e8ab1622cd4a3d087" + timestamp + "e69449a5e366430ba7cf532745b396f2"; String sign = Md5Utils.getSha256Str(signData); System.out.println(sign); - postMethod.addParameter("app_key","2a005bdf43cd450e8ab1622cd4a3d087"); - postMethod.addParameter("timestamp",timestamp); - postMethod.addParameter("sign",sign); - String authToken=null; + postMethod.addParameter("app_key", "2a005bdf43cd450e8ab1622cd4a3d087"); + postMethod.addParameter("timestamp", timestamp); + postMethod.addParameter("sign", sign); + String authToken = null; try { int code = httpClient.executeMethod(postMethod); - log.info("OPPO系统推送消息的code:{}",code); + log.info("OPPO系统推送消息的code:{}", code); JSONObject result = JSON.parseObject(postMethod.getResponseBodyAsString()); - log.info("返回的OPPO系统推送消息结果:{}",result); - int resultCode=Integer.parseInt(result.get("code").toString()); - if (resultCode == 0){ - log.info("推送给VIVO用户,信息成功:{}",result); + log.info("返回的OPPO系统推送消息结果:{}", result); + int resultCode = Integer.parseInt(result.get("code").toString()); + if (resultCode == 0) { + log.info("推送给VIVO用户,信息成功:{}", result); JSONObject data = JSON.parseObject(result.get("data").toString()); - authToken=data.get("auth_token").toString(); - } - else { - log.info("推送给VIVO用户:信息失败:{}",result); + authToken = data.get("auth_token").toString(); + } else { + log.info("推送给VIVO用户:信息失败:{}", result); } } catch (IOException e) { e.printStackTrace(); } return authToken; } + private void sendOpPoMessage(String opPoAccessToken, String str, String userId) { HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod("https://api.push.oppomobile.com/server/v1/message/notification/unicast"); postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8"); postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded"); - postMethod.addRequestHeader("auth_token",opPoAccessToken); - postMethod.addParameter("message",str); + postMethod.addRequestHeader("auth_token", opPoAccessToken); + postMethod.addParameter("message", str); try { int code = httpClient.executeMethod(postMethod); - log.info("OPPO系统推送消息的code:{}",code); + log.info("OPPO系统推送消息的code:{}", code); JSONObject result = JSON.parseObject(postMethod.getResponseBodyAsString()); - log.info("返回的OPPO系统推送消息结果:{}",result); - int resultCode=Integer.parseInt(result.get("code").toString()); - if (resultCode == 0){ - log.info("推送给OPPO用户{},信息成功:{}",userId,result); - } - else { - log.info("推送给OPPO用户{}:信息失败:{}",userId,result); + log.info("返回的OPPO系统推送消息结果:{}", result); + int resultCode = Integer.parseInt(result.get("code").toString()); + if (resultCode == 0) { + log.info("推送给OPPO用户{},信息成功:{}", userId, result); + } else { + log.info("推送给OPPO用户{}:信息失败:{}", userId, result); } } catch (IOException e) { e.printStackTrace(); - } - finally { + } finally { httpClient.getHttpConnectionManager().closeIdleConnections(0); - log.info("线程:{}推送OPPO用户,释放连接完成",Thread.currentThread().getName()); + log.info("线程:{}推送OPPO用户,释放连接完成", Thread.currentThread().getName()); } } } diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/com/ecell/internationalize/app/mapper/DeviceStepDailyMapper.xml b/ecell-internationalize/ecell-internationalize-app/src/main/resources/com/ecell/internationalize/app/mapper/DeviceStepDailyMapper.xml index bf74fd5..75d4d28 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/resources/com/ecell/internationalize/app/mapper/DeviceStepDailyMapper.xml +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/com/ecell/internationalize/app/mapper/DeviceStepDailyMapper.xml @@ -14,6 +14,9 @@ - id, i_mei, walks_num, walks_distance, walks_calorie, create_user, create_time, update_user, update_time + id, i_mei, walks_num, walks_distance, walks_calorie, create_user, create_time, update_user, update_time,step_time + diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_bn_BD.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_bn_BD.properties new file mode 100644 index 0000000..0df2a06 --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_bn_BD.properties @@ -0,0 +1,85 @@ +messages.title=\u099A\u09C0\u09A8\u09BE \u09AD\u09BE\u09B7\u09BE\u09B0 \u0987\u09A8\u09CD\u099F\u09BE\u09B0\u09A8\u09CD\u09AF\u09BE\u09B6\u09A8\u09BE\u09B2\u09C7\u09B6\u09A8\u09BE\u09B2\u09C7\u09B6\u09A8 +messages.success=\u0985\u09AA\u09BE\u09B0\u09C7\u09B6\u09A8 \u09B8\u09AB\u09B2 \u09B9\u09DF\u09C7\u099B\u09C7 +messages.error=\u0985\u09AA\u09BE\u09B0\u09C7\u09B6\u09A8 \u09AC\u09CD\u09AF\u09B0\u09CD\u09A5, \u09B9\u09CD\u09AF\u09BE\u09A8\u09CD\u09A1\u09BF\u0982 \u098F\u09B0 \u099C\u09A8\u09CD\u09AF \u09AA\u09CD\u09B0\u09B6\u09BE\u09B8\u0995\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09AF\u09CB\u0997\u09BE\u09AF\u09CB\u0997 \u0995\u09B0\u09C1\u09A8 +messages.pwd.empty=\u09AA\u09BE\u09B8\u0993\u09DF\u09BE\u09B0\u09CD\u09A1 \u09AB\u09BE\u0981\u0995\u09BE, \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AA\u09BE\u09B8\u0993\u09DF\u09BE\u09B0\u09CD\u09A1 \u09B2\u09BF\u0996\u09C1\u09A8 +messages.pwd.length=\u09AA\u09BE\u09B8\u0993\u09AF\u09BC\u09BE\u09B0\u09CD\u09A1\u09C7\u09B0 \u09A6\u09C8\u09B0\u09CD\u0998\u09CD\u09AF 6-32 \u09AC\u09BF\u099F\u09C7\u09B0 \u09AE\u09A7\u09CD\u09AF\u09C7 \u09A5\u09BE\u0995\u09A4\u09C7 \u09B9\u09AC\u09C7 +messages.firm.phone=\u09AA\u09B0\u09BF\u099A\u09BF\u09A4\u09BF \u09AB\u09CB\u09A8 \u09A8\u09BE\u09AE\u09CD\u09AC\u09BE\u09B0 \u09AB\u09BE\u0981\u0995\u09BE \u09B9\u09A4\u09C7 \u09AA\u09BE\u09B0\u09C7 \u09A8\u09BE +messages.email.subject=\u0987-\u09AE\u09C7\u0987\u09B2 \u09AA\u09B0\u09C0\u0995\u09CD\u09B7\u09BE \u0995\u09CB\u09A1 +messages.email.text_pre=\u09AA\u09CD\u09B0\u09BF\u09AF\u09BC \u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0, \u09B9\u09CD\u09AF\u09BE\u09B2\u09CB: \u098F\u0987 \u0985\u09A8\u09C1\u09B0\u09CB\u09A7\u09C7\u09B0 \u099C\u09A8\u09CD\u09AF \u0987\u09AE\u09C7\u0987\u09B2 \u0995\u09CD\u09AF\u09BE\u09AB\u09BF\u0995\u09C7\u09B6\u09A8 \u0995\u09CB\u09A1: +messages.email.text_tail=,\u098F\u0987 \u099A\u09BF\u09B9\u09CD\u09A8\u09BF\u09A4 \u0995\u09CB\u09A1 \u09EB \u09AE\u09BF\u09A8\u09BF\u099F\u09C7\u09B0 \u099C\u09A8\u09CD\u09AF \u09AC\u09C8\u09A7\u0964 \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u098F\u0995 \u09B8\u09AE\u09DF\u09C7 \u098F\u099F\u09BF \u09B2\u09BF\u0996\u09C1\u09A8 \u0964 \u09AF\u09A6\u09BF \u09A8\u09BF\u099C\u09C7\u09B0 \u0995\u09BE\u099B\u09C7 \u0985\u09AA\u09BE\u09B0\u09C7\u09B6\u09A8 \u09A8\u09BE \u0995\u09B0\u09C7, \u09A4\u09AC\u09C7 \u098F\u0987 \u0987-\u09AE\u09C7\u0987\u09B2 \u0989\u09AA\u09C7\u0995\u09CD\u09B7\u09BE \u0995\u09B0\u09C1\u09A8 (\u098F\u099F\u09BF \u09B8\u09CD\u09AC\u09DF\u0982\u0995\u09CD\u09B0\u09BF\u09DF\u09AD\u09BE\u09AC\u09C7 \u09AA\u09BE\u09A0\u09BF +messages.email.code.expire=\u09AA\u09B0\u09BF\u099A\u09BF\u09A4\u09BF \u0995\u09CB\u09A1 \u09B6\u09C7\u09B7 \u09B9\u09DF\u09C7\u099B\u09C7 +messages.email.code.fail=\u09AA\u09B0\u09BF\u099A\u09BF\u09A4\u09BF \u0995\u09CB\u09A1 \u09B8\u09A0\u09BF\u0995 \u09A8\u09DF +messages.email.register.exit=\u0987-\u09AE\u09C7\u0987\u09B2 \u09A8\u09BF\u09AC\u09A8\u09CD\u09A7\u09A8 \u0995\u09B0\u09BE \u09B9\u09DF\u09C7\u099B\u09C7 +messages.login.not.exit=\u0987-\u09AE\u09C7\u0987\u09B2 \u09AC\u09BF\u09A6\u09CD\u09AF\u09AE\u09BE\u09A8 \u09A8\u09C7\u0987, \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09B8\u09A0\u09BF\u0995 \u0987-\u09AE\u09C7\u0987\u09B2 \u09A0\u09BF\u0995\u09BE\u09A8\u09BE \u09B2\u09BF\u0996\u09C1\u09A8 +messages.email.stop=\u0987-\u09AE\u09C7\u0987\u09B2 \u09A8\u09BF\u09B7\u09CD\u0995\u09CD\u09B0\u09BF\u09DF \u0995\u09B0\u09BE \u09B9\u09DF\u09C7\u099B\u09C7\u0964 \u09B8\u09BE\u09B9\u09BE\u09AF\u09CD\u09AF\u09C7\u09B0 \u099C\u09A8\u09CD\u09AF \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AA\u09CD\u09B0\u09B6\u09BE\u09B8\u0995\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09AF\u09CB\u0997\u09BE\u09AF\u09CB\u0997 \u0995\u09B0\u09C1\u09A8 +messages.pwd.error=\u09B2\u09BF\u0996\u09BF\u09A4 \u09AA\u09BE\u09B8\u0993\u09DF\u09BE\u09B0\u09CD\u09A1 \u09B8\u09A0\u09BF\u0995 \u09A8\u09DF, \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AA\u09C1\u09A8\u09B0\u09BE\u09DF \u09B2\u09BF\u0996\u09C1\u09A8 +messages.isPhone.null=\u09AA\u09CD\u09B0\u09A5\u09AE\u09C7 \u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8 \u09A8\u09BE\u09AE\u09CD\u09AC\u09BE\u09B0 \u09AC\u09BE\u0987\u09A8 \u0995\u09B0\u09C1\u09A8 +messages.imei.isNull=\u09AC\u09CD\u09AF\u09BE\u0995-\u098F\u09A8\u09CD\u09A1 \u09B8\u09BF\u09B8\u09CD\u099F\u09C7\u09AE\u09C7 \u098F\u0987 IMEI \u0989\u09AA\u09B8\u09CD\u09A5\u09BF\u09A4 \u09A8\u09C7\u0987\u0964 \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AE\u09CD\u09AF\u09BE\u09A8\u09C7\u099C\u09C7\u09A8\u09CD\u099F\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09AF\u09CB\u0997\u09BE\u09AF\u09CB\u0997 \u0995\u09B0\u09C1\u09A8 +messages.imei.notAudit=\u09AC\u09CD\u09AF\u09BE\u0995-\u098F\u09A8\u09CD\u09A1 \u09B8\u09BF\u09B8\u09CD\u099F\u09C7\u09AE\u09C7 \u098F\u0987 IMEI \u09AA\u09BE\u09B8 \u0995\u09B0\u09BE \u09B9\u09DF\u09A8\u09BF\u0964 \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09AF\u09CB\u0997\u09BE\u09AF\u09CB\u0997 \u0995\u09B0\u09C1\u09A8 +messages.maximum.limit.exceeded=\u0986\u09AA\u09A8\u09BF \u0987\u09A4\u09CB\u09AE\u09A7\u09CD\u09AF\u09C7 \u09EC \u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u09C7\u09B0 \u099C\u09A8\u09CD\u09AF \u09AA\u09CD\u09B0\u09DF\u09CB\u0997 \u0995\u09B0\u09C7\u099B\u09C7\u09A8 \u098F\u09AC\u0982 \u0985\u09A8\u09CD\u09AF \u0995\u09CB\u09A8 \u09A1\u09BF\u09AD\u09BE\u0987\u09B8 \u09AF\u09CB\u0997 \u0995\u09B0\u09A4\u09C7 \u09AA\u09BE\u09B0\u09C7\u09A8 \u09A8\u09BE +messages.device.phone=\u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u09C7\u09B0 \u09AB\u09CB\u09A8 \u09A8\u09BE\u09AE\u09CD\u09AC\u09BE\u09B0 \u09AB\u09BE\u0981\u0995\u09BE \u09B9\u09A4\u09C7 \u09AA\u09BE\u09B0\u09C7 \u09A8\u09BE +messages.binding.device.error=\u0986\u09AA\u09A8\u09BF \u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u099F\u09BF\u0995\u09C7 \u0987\u09A4\u09CB\u09AE\u09A7\u09CD\u09AF\u09C7 \u09AC\u09BE\u0981\u09A7\u09BE \u09A6\u09BF\u09DF\u09C7\u099B\u09C7\u09A8 \u0964 \u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0 \u09AC\u09B0\u09CD\u09A4\u09AE\u09BE\u09A8\u09C7 \u098F\u099F\u09BF \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u099B\u09C7\u09A8\u0964 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8\u09C7\u09B0 \u099C\u09A8\u09CD\u09AF \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AA +messages.binding.device.isNotNull=\u0986\u09AA\u09A8\u09BF \u0987\u09A4\u09CB\u09AE\u09A7\u09CD\u09AF\u09C7 \u098F\u0987 \u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u099F\u09BF \u09AC\u09BE\u0987\u09A8\u09CD\u09A1 \u0995\u09B0\u09C7\u099B\u09C7\u09A8 +messages.bad.request=\u0985\u09AA\u09BE\u09B0\u09C7\u09B6\u09A8 \u0985\u09A8\u09C1\u09AE\u09A4\u09BF \u09A8\u09C7\u0987 +messages.not.bind=\u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u099F\u09BF \u09AC\u09BE\u0987\u09A8\u09CD\u09A1 \u0995\u09B0\u09C1\u09A8 +messages.device.empty=\u0995\u09CB\u09A8\u09CB \u09A1\u09BF\u09AD\u09BE\u0987\u09B8 \u09AA\u09BE\u0993\u09DF\u09BE \u09AF\u09BE\u09DF\u09A8\u09BF +messages.clock.number=\u09A4\u09BF\u09A8\u099F\u09BF \u0985\u09CD\u09AF\u09BE\u09B2\u09BE\u09B0\u09CD\u09AE \u09AF\u09CB\u0997 \u0995\u09B0\u09CB +messages.class.number=\u098F\u0995\u099F\u09BF \u0995\u09CD\u09B2\u09BE\u09B8 \u09A8\u09BF\u09B7\u09C7\u09A7\u09BE\u099C\u09CD\u099E\u09BE\u09B0 \u09B8\u09AE\u09DF \u09AF\u09CB\u0997 \u0995\u09B0\u09BE \u09AF\u09BE\u09DF \u09A8\u09BE \u09A4\u09BF\u09A8\u09C7\u09B0 \u09AC\u09C7\u09B6\u09C0 \u09AF\u09CB\u0997 \u0995\u09B0\u09A4\u09C7 \u09AA\u09BE\u09B0\u09C7 +messages.admin.operation=\u09B6\u09C1\u09A7\u09C1\u09AE\u09BE\u09A4\u09CD\u09B0 \u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0 \u0985\u09AA\u09BE\u09B0\u09C7\u09B6\u09A8\u09C7\u09B0 \u099C\u09A8\u09CD\u09AF \u09B8\u09C0\u09AE\u09BE\u09AC\u09A6\u09CD\u09A7 +messages.bind.user=\u09A1\u09BF\u09AD\u09BE\u0987\u09B8 \u09B8\u0982\u09AF\u09C1\u0995\u09CD\u09A4 \u09A8\u09DF \u0985\u09A5\u09AC\u09BE \u0985\u09CD\u09AF\u09BE\u0995\u09BE\u0989\u09A8\u09CD\u099F \u09AA\u09C7\u09A4\u09C7 \u09AC\u09CD\u09AF\u09B0\u09CD\u09A5 +messages.binding.video.type=\u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u099F\u09BF \u09AD\u09BF\u09A1\u09BF\u0993 \u09A7\u09B0\u09A8\u09C7\u09B0 \u09B8\u09C7\u099F \u09A8\u09C7\u0987\u0964 \u09AC\u09BE\u0987\u09A8\u09CD\u09A1\u09BF\u0982 \u098F\u09B0 \u0986\u0997\u09C7 \u09AD\u09BF\u09A1\u09BF\u0993 \u09A7\u09B0\u09A8 \u09A8\u09BF\u09B0\u09CD\u09A7\u09BE\u09B0\u09A3 \u0995\u09B0\u09BE\u09B0 \u099C\u09A8\u09CD\u09AF \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AA\u09CD\u09B0\u09B6\u09BE\u09B8\u0995\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09AF\u09CB\u0997\u09BE\u09AF\u09CB\u0997 +messages.user.hasLogin=\u0986\u09AA\u09A8\u09BE\u09B0 \u0985\u09CD\u09AF\u09BE\u0995\u09BE\u0989\u09A8\u09CD\u099F \u0985\u09A8\u09CD\u09AF \u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u09C7 \u09B2\u0997-\u0987\u09A8 \u0995\u09B0\u09BE \u09B9\u09DF\u09C7\u099B\u09C7 +messages.apply.error=\u0986\u09AA\u09A8\u09BF \u0987\u09A4\u09CB\u09AE\u09A7\u09CD\u09AF\u09C7 \u09AC\u09BE\u0987\u09A8\u09CD\u09A1\u09BF\u0982 \u098F\u09B0 \u099C\u09A8\u09CD\u09AF \u09AA\u09CD\u09B0\u09CB\u0997\u09CD\u09B0\u09BE\u09AE \u0995\u09B0\u09C7\u099B\u09C7\u09A8 \u0964 \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09A7\u09C8\u09B0\u09CD\u09AF\u09CD\u09AF\u09A7\u09BE\u09B0\u09A3 \u0995\u09B0\u09C1\u09A8 \u098F\u09AC\u0982 \u0998\u09DC\u09BF \u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0 +messages.binding.not.error=\u098F\u0987 \u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u099F\u09BF \u098F\u0996\u09A8\u09CB \u09AC\u09BE\u0987\u09A8\u09CD\u09A1 \u0995\u09B0\u09BE \u09B9\u09DF\u09A8\u09BF\u0964 \u09AE\u09A8\u09CB\u09AF\u09CB\u0997 \u09AA\u09CD\u09B0\u09DF\u09CB\u0997 \u0995\u09B0\u09BE\u09B0 \u0986\u0997\u09C7 \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AC\u09BE\u0987\u09A8\u09CD\u09A1 \u0995\u09B0\u09C1\u09A8 +messages.apply.follow.error=\u098F\u0987 \u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0 \u0987\u09A4\u09CB\u09AE\u09A7\u09CD\u09AF\u09C7 \u098F\u0995\u099F\u09BF \u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0 \u098F\u09AC\u0982 \u09AE\u09A8\u09CB\u09AF\u09CB\u0997 \u09AA\u09CD\u09B0\u09DF\u09CB\u0997 \u0995\u09B0\u09A4\u09C7 \u09AA\u09BE\u09B0\u09C7 \u09A8\u09BE +messages.unbinding.error=C\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0 \u09AC\u09BE\u0987\u09A8\u09CD\u09A1 \u0995\u09B0\u09BE \u09B9\u09DF\u09A8\u09BF\u0964 \u09AC\u09BE\u0987\u09A8\u09CD\u09A1\u09BF\u0982 \u098F\u09B0 \u09AA\u09B0 \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AC\u09BE\u0987\u09A8\u09CD\u09A1 \u0995\u09B0\u09C1\u09A8 +messages.user.does.not.exist=\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0\u09B0 \u0985\u09B8\u09CD\u09A4\u09BF\u09A4\u09CD\u09AC \u09A8\u09C7\u0987 +messages.adminId.not.null=\u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0\u09C7\u09B0 ID \u09A8\u09BF\u09B7\u09CD\u0995\u09CD\u09B0\u09BF\u09DF \u0995\u09B0\u09BE \u09AF\u09BE\u099A\u09CD\u099B\u09C7 \u09A8\u09BE +messages.userId.not.null=\u0985\u09CD\u09AF\u09BE\u09AA\u09CD\u09B2\u09BF\u0995\u09C7\u09A8\u09CD\u099F ID \u09A8\u09BF\u09B7\u09CD\u0995\u09CD\u09B0\u09BF\u09DF \u0995\u09B0\u09BE \u09AF\u09BE\u099A\u09CD\u099B\u09C7 \u09A8\u09BE +messages.deviceAttention.error=\u09AC\u09BE\u09B0\u09CD\u09A4\u09BE \u09B0\u09C7\u0995\u09B0\u09CD\u09A1 \u0985\u09A8\u09C1\u09AA\u09B8\u09CD\u09A5\u09BF\u09A4 +messages.attention.not.exist=\u09AE\u09A8\u09CB\u09AF\u09CB\u0997 \u09B0\u09C7\u0995\u09B0\u09CD\u09A1\u09C7\u09B0 \u099C\u09A8\u09CD\u09AF \u0985\u09CD\u09AF\u09BE\u09AA\u09CD\u09B2\u09BF\u0995\u09C7\u09B6\u09A8 \u0985\u09B8\u09CD\u09A4\u09BF\u09A4\u09CD\u09AC \u09A8\u09C7\u0987 +messages.group.info=\u098F\u0987 \u09AE\u09C1\u09B9\u09C2\u09B0\u09CD\u09A4\u09C7 \u0995\u09CB\u09A8 \u0997\u09CD\u09B0\u09C1\u09AA \u09A4\u09A5\u09CD\u09AF \u0989\u09AA\u09B8\u09CD\u09A5\u09BF\u09A4 \u09A8\u09C7\u0987 + rails.count=\u09A8\u09BF\u09B0\u09BE\u09AA\u09A4\u09CD\u09A4\u09BE \u09AC\u09C7\u09DC\u09BE\u09B0 \u09B8\u0982\u0996\u09CD\u09AF\u09BE \u09EA \u099C\u09A8\u09C7\u09B0 \u09AC\u09C7\u09B6\u09BF \u09AC\u09C7\u09DC\u09C7 \u09AF\u09BE\u09AC\u09C7 \u09A8\u09BE +messages.device.owner.info=\u09AC\u09B0\u09CD\u09A4\u09AE\u09BE\u09A8\u09C7 \u0995\u09CB\u09A8 \u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u09C7\u09B0 \u09AE\u09BE\u09B2\u09BF\u0995 \u09A4\u09A5\u09CD\u09AF \u0989\u09AA\u09B8\u09CD\u09A5\u09BF\u09A4 \u09A8\u09C7\u0987\u0964 \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AA\u09CD\u09B0\u09B6\u09BE\u09B8\u0995\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09AF\u09CB\u0997\u09BE\u09AF\u09CB\u0997 \u0995\u09B0\u09C1\u09A8 +messages.positioning.model.error=\u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u09C7\u09B0 \u0995\u09CB\u09A8 \u0985\u09AC\u09B8\u09CD\u09A5\u09BE\u09A8\u09C7\u09B0 \u09AE\u09CB\u09A1 \u09A8\u09C7\u0987\u0964 \u098F\u099F\u09BF \u09A8\u09BF\u09B0\u09CD\u09A7\u09BE\u09B0\u09A3 \u0995\u09B0\u09BE\u09B0 \u099C\u09A8\u09CD\u09AF \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AA\u09CD\u09B0\u09B6\u09BE\u09B8\u0995\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09AF\u09CB\u0997\u09BE\u09AF\u09CB\u0997 \u0995\u09B0\u09C1\u09A8 +message.video.call=\u09AD\u09BF\u09A1\u09BF\u0993 \u0995\u09B2 +message.invite.call=\u0986\u09AA\u09A8\u09BE\u0995\u09C7 \u0995\u09B2 \u0995\u09B0\u09A4\u09C7 \u0986\u09AE\u09A8\u09CD\u09A4\u09CD\u09B0\u09A3 \u099C\u09BE\u09A8\u09BE\u09A8 +message.trigger.sos=\u0998\u09A1\u09BC\u09BF \u099F\u09CD\u09B0\u09BF\u0997\u09BE\u09B0 SOS +message.alarm.sos=\u09AA\u09C1\u09B2\u09BF\u09B6 \u09AB\u09CB\u09A8 \u0995\u09B0\u09C1\u09A8 +heart.rate.abnormal=\u09B8\u09CD\u09AC\u09BE\u09AD\u09BE\u09AC\u09BF\u0995 \u09B9\u09C3\u09A6\u09DF\u09C7\u09B0 \u09B9\u09BE\u09B0, \u09AC\u09B0\u09CD\u09A4\u09AE\u09BE\u09A8\u09C7 \u09AA\u09B0\u09CD\u09AF\u09AC\u09C7\u0995\u09CD\u09B7\u09A3 \u0995\u09B0\u09BE \u09B9\u09C3\u09A6\u09DF\u09C7\u09B0 \u09B9\u09BE\u09B0 +pre.min=\u09AE\u09BF\u09A8\u09BF\u099F +heart.rate.current=\u0998\u09DC\u09BF\u09B0 \u09AC\u09B0\u09CD\u09A4\u09AE\u09BE\u09A8 \u09AA\u09B0\u09CD\u09AF\u09AC\u09C7\u0995\u09CD\u09B7\u09A3 \u0995\u09B0\u09BE \u09B9\u09C3\u09A6\u09DF\u09C7\u09B0 \u09B9\u09BE\u09B0 +temp.abnormal=\u09B8\u09CD\u09AC\u09BE\u09AD\u09BE\u09AC\u09BF\u0995 \u09B6\u09B0\u09C0\u09B0\u09C7\u09B0 \u09A4\u09BE\u09AA\u09AE\u09BE\u09A4\u09CD\u09B0\u09BE, \u09AC\u09B0\u09CD\u09A4\u09AE\u09BE\u09A8 \u09AA\u09B0\u09CD\u09AF\u09AC\u09C7\u0995\u09CD\u09B7\u09A3 \u0995\u09B0\u09BE \u09B6\u09B0\u09C0\u09B0\u09C7\u09B0 \u09A4\u09BE\u09AA\u09AE\u09BE\u09A4\u09CD\u09B0\u09BE \u09B9\u099A\u09CD\u099B\u09C7 +temp.current=\u0998\u09DC\u09BF\u09B0 \u09A6\u09CD\u09AC\u09BE\u09B0\u09BE \u09AC\u09B0\u09CD\u09A4\u09AE\u09BE\u09A8 \u09A4\u09BE\u09AA\u09AE\u09BE\u09A4\u09CD\u09B0\u09BE \u09AA\u09B0\u09CD\u09AF\u09AC\u09C7\u0995\u09CD\u09B7\u09A3 \u0995\u09B0\u09BE \u09B9\u099A\u09CD\u099B\u09C7 +heart.simple.abnormal=\u09B9\u09C3\u09A6\u09DF\u09C7\u09B0 \u09B8\u09CD\u09AC\u09BE\u09AD\u09BE\u09AC\u09BF\u0995\u09A4\u09BE +temp.simple=\u0985\u09B8\u09CD\u09AC\u09BE\u09AD\u09BE\u09AC\u09BF\u0995 \u09B6\u09B0\u09C0\u09B0\u09C7\u09B0 \u09A4\u09BE\u09AA\u09AE\u09BE\u09A4\u09CD\u09B0\u09BE +message.chant.video=WeChat \u09AC\u09BE\u09B0\u09CD\u09A4\u09BE +accept.chant.video=WeChat \u09AC\u09BE\u09B0\u09CD\u09A4\u09BE \u0997\u09CD\u09B0\u09B9\u09A3 \u0995\u09B0\u09BE \u09B9\u09DF\u09C7\u099B\u09C7 +messages.ios.chatGroupRemove=\u3010%s\u3011%s \u0985\u09B8\u09AE\u09CD\u09AD\u09AC \u0998\u09DC\u09BF +messages.ios.chatGroupDisband=\u0998\u09DC\u09BF\u09B0 \u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0 \u3010%s\u3011 \u0998\u09DC\u09BF\u099F\u09BF \u09AB\u09CD\u09AF\u09BE\u0995\u09CD\u099F\u09B0\u09BF \u09AC\u09C8\u09B6\u09BF\u09B7\u09CD\u099F\u09CD\u09AF\u09BE\u09AC\u09B2\u09C0\u09A4\u09C7 \u09AA\u09C1\u09A8\u09B0\u09C1\u09A6\u09CD\u09A7\u09BE\u09B0 \u0995\u09B0\u09C7\u099B\u09C7\u09A8 +messages.ios.checkedResults=\u0998\u09DC\u09BF\u09B0 \u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0 (%s) \u0986\u09AA\u09A8\u09BF \u0998\u09DC\u09BF\u09B0 \u0985\u09A8\u09C1\u09B8\u09B0\u09A3 \u0995\u09B0\u09A4\u09C7 \u09B8\u09AE\u09B0\u09CD\u09A5\u09A8 \u0995\u09B0\u09C7\u099B\u09C7\u09A8 +messages.ios.applicationRrecord=\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0\uFF08%s\uFF09\u09AE\u09A8\u09CB\u09AF\u09CB\u0997 \u09AA\u09CD\u09B0\u09DF\u09CB\u0997 \u0995\u09B0\u09CB[%s] \u09A1\u09BE\u0987\u09A8 \u0998\u09DC\u09BF +messages.ios.lowBattery=%s \u0998\u09DC\u09BF\u09B0 \u099A\u09BE\u09B0\u09CD\u099C \u0995\u09AE, \u099A\u09BE\u09B0\u09CD\u099C \u0995\u09B0\u09C1\u09A8! +messages.ios.sos=%s \u099F\u09CD\u09B0\u09BE\u0987\u0997\u09BE\u09B0 SOS +user.unbind.device=\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0 \u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u099F\u09BF \u0986\u09A8\u09B2\u09CB\u09A1 \u0995\u09B0\u09C7\u099B\u09C7 +down.video.call=\u09AD\u09BF\u09A1\u09BF\u0993 \u0995\u09B2 \u0986\u09AA \u0995\u09B0\u09BE \u09B9\u099A\u09CD\u099B\u09C7 +enter.rail=\u09A8\u09BF\u09B0\u09BE\u09AA\u09A6 \u098F\u09B2\u09BE\u0995\u09BE \u09B2\u09BF\u0996\u09C1\u09A8 +leave.rail= \u09A8\u09BF\u09B0\u09BE\u09AA\u09A6 \u098F\u09B2\u09BE\u0995\u09BE \u099B\u09C7\u09DC\u09C7 \u09A6\u09BE\u0993 +call.follow=\u0998\u09DC\u09BF\u09B0 \u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0 \u0986\u09AA\u09A8\u09BE\u0995\u09C7 \u0998\u09DC\u09BF\u099F\u09BE \u09A5\u09C7\u0995\u09C7 \u09A8\u09BF\u09B0\u09CD\u09A7\u09BE\u09B0\u09A3 \u0995\u09B0\u09C7\u099B\u09C7 +pre.identity.transer=\u0986\u09AA\u09A8\u09BF \u0998\u09DC\u09BF\u099F\u09BE \u09B0\u09C7\u0996\u09C7\u099B\u09C7\u09A8 +after.identity.transer=\u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0\u09C7\u09B0 \u09AA\u09B0\u09BF\u099A\u09DF \u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09A8 +accept.identity.transer=\u0985\u09CD\u09AF\u09BE\u09A1\u09AE\u09BF\u09A8\u09BF\u09B8\u09CD\u099F\u09CD\u09B0\u09C7\u099F\u09B0\u09C7\u09B0 \u09AA\u09B0\u09BF\u099A\u09DF \u0986\u09AA\u09A8\u09BE\u09B0 \u0995\u09BE\u099B\u09C7 \u09AA\u09B0\u09BF\u09AC\u09B0\u09CD\u09A4\u09A8 \u0995\u09B0\u09C7 +message.addressBook.max=\u09A0\u09BF\u0995\u09BE\u09A8\u09BE\u09AC\u0987\u09DF\u09C7\u09B0 \u09AE\u09CB\u099F \u09B8\u0982\u0996\u09CD\u09AF\u09BE \u0986\u09AA\u09A8\u09BF \u09EB\u09E6 \u099C\u09A8\u09C7\u09B0 \u09AC\u09C7\u09B6\u09C0 \u09AF\u09CB\u0997 \u0995\u09B0\u09C7\u099B\u09C7\u09A8 \u098F\u09AC\u0982 \u0986\u09AE\u09B0\u09BE \u09A4\u09BE\u09A6\u09C7\u09B0 \u09AF\u09CB\u0997 \u0995\u09B0\u09A4\u09C7 \u09AA\u09BE\u09B0\u099B\u09BF \u09A8\u09BE\u0964 +exit.list.video.call=\u0986\u09AA\u09A8\u09BF \u09AD\u09BF\u09A1\u09BF\u0993 \u0995\u09B2 \u09B8\u09A6\u09B8\u09CD\u09AF\u09A6\u09C7\u09B0 \u09A4\u09BE\u09B2\u09BF\u0995\u09BE\u09DF \u09A8\u09C7\u0987 \u098F\u09AC\u0982 \u09AD\u09BF\u09A1\u09BF\u0993 \u0995\u09B2 \u0995\u09B0\u09A4\u09C7 \u09AA\u09BE\u09B0\u09C7\u09A8 \u09A8\u09BE +cannot.video.call=\u098F\u0987 \u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u099F\u09BF \u09AD\u09BF\u09A1\u09BF\u0993 \u0995\u09B2 \u09B8\u09AE\u09B0\u09CD\u09A5\u09A8 \u0995\u09B0\u09C7 \u09A8\u09BE +disabled.video.call=\u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u099F\u09BF \u09AC\u09B0\u09CD\u09A4\u09AE\u09BE\u09A8\u09C7 \u098F\u0995\u099F\u09BF \u0995\u09CD\u09B2\u09BE\u09B8 \u09A8\u09BF\u09B7\u09CD\u0995\u09CD\u09B0\u09BF\u09DF \u0985\u09AC\u09B8\u09CD\u09A5\u09BE\u09DF \u0986\u099B\u09C7 \u098F\u09AC\u0982 \u09AD\u09BF\u09A1\u09BF\u0993 \u0995\u09B2 \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09A4\u09C7 \u09AA\u09BE\u09B0\u09C7 \u09A8\u09BE +not.internet.video.call=\u0998\u09A1\u09BC\u09BF \u09A8\u09C7\u099F\u0993\u09AF\u09BC\u09BE\u09B0\u09CD\u0995\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09B8\u0982\u09AF\u09C1\u0995\u09CD\u09A4 \u09A8\u09AF\u09BC, \u09B8\u09AE\u09CD\u09AD\u09AC\u09A4 \u09AC\u09B0\u09CD\u09A4\u09AE\u09BE\u09A8\u09C7 \u09B8\u0982\u0995\u09C7\u09A4 \u0996\u09BE\u09B0\u09BE\u09AA \u09AC\u09BE \u09AC\u09A8\u09CD\u09A7 +long.time.video.call=\u09AD\u09BF\u09A1\u09BF\u0993 \u09B8\u09AE\u09DF \u0985\u09A8\u09C7\u0995 \u09A6\u09C0\u09B0\u09CD\u0998, \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u0986\u09AC\u09BE\u09B0 \u09AB\u09CB\u09A8 \u0995\u09B0\u09C1\u09A8 +process.video.call=\u0998\u09DC\u09BF\u099F\u09BE \u09AD\u09BF\u09A1\u09BF\u0993 \u0995\u09B2\u09C7 \u0986\u099B\u09C7, \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AA\u09B0\u09C7 \u0986\u09AC\u09BE\u09B0 \u099A\u09C7\u09B7\u09CD\u099F\u09BE \u0995\u09B0\u09C1\u09A8 +phone.has.exit=\u09AB\u09CB\u09A8 \u09A8\u09BE\u09AE\u09CD\u09AC\u09BE\u09B0 \u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0 \u0995\u09B0\u09BE \u09B9\u09DF\u09C7\u099B\u09C7, \u0985\u09A8\u09C1\u0997\u09CD\u09B0\u09B9 \u0995\u09B0\u09C7 \u09AA\u09C1\u09A8\u09B0\u09BE\u09DF \u09B2\u09BF\u0996\u09C1\u09A8 +messages.apply.device.model.error=\u09A1\u09BF\u09AD\u09BE\u0987\u09B8 \u09AE\u09A1\u09C7\u09B2 \u0996\u09C1\u0981\u099C\u09C7 \u09AA\u09BE\u0993\u09DF\u09BE \u09AF\u09BE\u09DF\u09A8\u09BF, \u0985\u09A8\u09C1\u09B8\u09B0\u09A3 \u0995\u09B0\u09A4\u09C7 \u09AC\u09CD\u09AF\u09B0\u09CD\u09A5 +messages.whether.apply.error=\u098F\u0987 \u09A1\u09BF\u09AD\u09BE\u0987\u09B8 \u0985\u09CD\u09AF\u09BE\u09AA\u09CD\u09B2\u09BF\u0995\u09C7\u09B6\u09A8 \u09AA\u09CD\u09B0\u09B6\u09BE\u09B8\u0995\u09C7\u09B0 \u09A8\u09BF\u09B0\u09C0\u0995\u09CD\u09B7\u09A3 \u09AA\u09CD\u09B0\u09AF\u09BC\u09CB\u099C\u09A8 +messages.apply.bind.error=\u098F\u0987 \u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u099F\u09BF \u0987\u09A4\u09CB\u09AE\u09A7\u09CD\u09AF\u09C7 \u09AC\u09BE\u0987\u09A8\u09CD\u09A1 \u0995\u09B0\u09BE \u09B9\u09DF\u09C7\u099B\u09C7, \u0986\u09AC\u09BE\u09B0 \u09AC\u09BE\u0987\u09A8\u09CD\u09A1 \u0995\u09B0\u09BE \u09AF\u09BE\u099A\u09CD\u099B\u09C7 \u09A8\u09BE +messages.ios.automaticApproval=\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0 (%s) \u0997\u09CD\u09B0\u09C1\u09AA\u09C7 \u09AF\u09CB\u0997\u09A6\u09BE\u09A8 \u0995\u09B0\u09C7\u099B\u09C7\u09A8 +messages.password.error=\u09AA\u09C1\u09B0\u09CB\u09A8\u09CB \u09AA\u09BE\u09B8\u0993\u09DF\u09BE\u09B0\u09CD\u09A1 \u09AD\u09C1\u09B2 +messages.query.device.error=\u09A1\u09BF\u09AD\u09BE\u0987\u09B8\u099F\u09BF \u0987\u09A8\u09CD\u099F\u09BE\u09B0\u09A8\u09C7\u099F\u09C7\u09B0 \u09B8\u09BE\u09A5\u09C7 \u09B8\u0982\u09AF\u09C1\u0995\u09CD\u09A4 \u09A8\u09DF \u0985\u09A5\u09AC\u09BE \u0985\u09A8\u09B2\u09BE\u0987\u09A8\u09C7 \u09A8\u09DF \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_de_DE.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_de_DE.properties new file mode 100644 index 0000000..8870fc4 --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_de_DE.properties @@ -0,0 +1,85 @@ +messages.title=Internationalisierung der chinesischen Sprache +messages.success=Betrieb erfolgreich +messages.error=Operation fehlgeschlagen, bitte kontaktieren Sie den Administrator f\u00FCr die Handhabung +messages.pwd.empty=Passwort ist leer, bitte Passwort eingeben +messages.pwd.length=Die L\u00E4nge des eingegebenen Passworts sollte zwischen 6-32 Bits liegen +messages.firm.phone=Nachrichten.firm.phone=Kontakttelefonnummer kann nicht leer sein +messages.email.subject=E-Mail-Verifizierungscode +messages.email.text_pre=Sehr geehrter Benutzer, Hallo: Der E-Mail-Verifizierungscode f\u00FCr diese Anfrage lautet: +messages.email.text_tail=,Dieser Verifikationscode ist innerhalb von 5 Minuten g\u00FCltig, bitte geben Sie es rechtzeitig ein, wenn Sie nicht selbst handeln, ignorieren Sie bitte die E-Mail (dies ist eine automatische E-Mail, bitte antworten Sie nicht direkt) +messages.email.code.expire=Der Verifizierungscode ist abgelaufen +messages.email.code.fail=Der Verifizierungscode ist falsch +messages.email.register.exit=E-Mail wurde registriert +messages.login.not.exit=E-Mail existiert nicht, bitte geben Sie die korrekte E-Mail-Adresse ein +messages.email.stop=Die E-Mail wurde deaktiviert. Bitte wenden Sie sich an den Administrator, um Hilfe zu erhalten. +messages.pwd.error=Das eingegebene Passwort ist falsch, bitte geben Sie es erneut ein +messages.isPhone.null=Bitte binden Sie zuerst Ihre Telefonnummer ein +messages.imei.isNull=Dieses imei existiert nicht im Hintergrundsystem Bitte wenden Sie sich an die Verwaltung +messages.imei.notAudit=Diese IMEI wurde nicht im Backend-System \u00FCbergeben. Bitte wenden Sie sich an den Administrator +messages.maximum.limit.exceeded=Sie haben sich bereits f\u00FCr 6-Ger\u00E4te beworben und k\u00F6nnen keine weiteren Ger\u00E4te hinzuf\u00FCgen +messages.device.phone=Die Ger\u00E4tenummer kann nicht leer sein +messages.binding.device.error=Sie haben das Ger\u00E4t bereits gebunden. Der Administrator genehmigt es derzeit. Bitte kontaktieren Sie den Administrator f\u00FCr die Genehmigung +messages.binding.device.isNotNull=Sie haben dieses Ger\u00E4t bereits gebunden +messages.bad.request=Betrieb nicht erlaubt +messages.not.bind=Bitte binden Sie das Ger\u00E4t +messages.device.empty=Kein Ger\u00E4t gefunden +messages.clock.number=Nicht mehr als drei Alarme hinzuf\u00FCgen +messages.class.number=Das Hinzuf\u00FCgen einer Sperrfrist f\u00FCr Klassen darf drei nicht \u00FCberschreiten +messages.admin.operation=Nur auf Administratorvorg\u00E4nge beschr\u00E4nkt +messages.bind.user=Ungebundenes Ger\u00E4t oder Konto konnte nicht abgerufen werden +messages.binding.video.type=Bitte kontaktieren Sie den Administrator, um den Videotyp vor der Bindung festzulegen. +messages.user.hasLogin=Ihr Konto wurde auf einem anderen Ger\u00E4t angemeldet +messages.apply.error=Sie haben bereits eine Bindung beantragt. Bitte haben Sie Geduld und warten Sie auf die \u00DCberpr\u00FCfung durch den Uhrenadministrator. +messages.binding.not.error=Dieses Ger\u00E4t wurde noch nicht gebunden. Bitte binden Sie es an, bevor Sie sich um Aufmerksamkeit bewerben. +messages.apply.follow.error=Dieser Benutzer ist bereits Administrator und kann keine Aufmerksamkeit beantragen +messages.unbinding.error=Der Nutzer ist nicht gebunden. Bitte l\u00F6sen Sie die Bindung nach der Bindung +messages.user.does.not.exist=Benutzer existiert nicht +messages.adminId.not.null=Administrator-ID kann nicht null sein +messages.userId.not.null=Bewerber-ID kann nicht null sein +messages.deviceAttention.error=Nachrichtendatensatz existiert nicht +messages.attention.not.exist=Antrag auf Aufmerksamkeitsregister existiert nicht +messages.group.info=Zur Zeit sind keine Gruppeninformationen verf\u00FCgbar +rails.count=Die Anzahl der Sicherheitsz\u00E4une darf 4 nicht \u00FCberschreiten +messages.device.owner.info=Zur Zeit sind keine Informationen zum Ger\u00E4tebesitzer verf\u00FCgbar. Bitte wenden Sie sich an den Administrator +messages.positioning.model.error=Das Ger\u00E4t hat keinen Positionierungsmodus eingestellt. Bitte kontaktieren Sie den Administrator, um ihn einzurichten. +message.video.call=Videoanruf +message.invite.call=Sie zu einem Anruf einladen +message.trigger.sos=Uhr l\u00F6st SOS aus +message.alarm.sos=Rufen Sie die Polizei +heart.rate.abnormal=Abnormale Herzfrequenz, derzeit \u00FCberwacht Herzfrequenz ist +pre.min=Pro Minute +heart.rate.current=Die aktuell \u00FCberwachte Herzfrequenz der Uhr ist +temp.abnormal=Abnormale K\u00F6rpertemperatur, die aktuell \u00FCberwachte K\u00F6rpertemperatur ist +temp.current=Die aktuelle Temperatur, die von der Uhr \u00FCberwacht wird, ist +heart.simple.abnormal=St\u00F6rungen der Herzfrequenz +temp.simple=Abnormale K\u00F6rpertemperatur +message.chant.video=WeChat-Nachrichten +accept.chant.video=WeChat-Nachricht empfangen +messages.ios.chatGroupRemove=\u3010%s\u3011s %s unfolgow watch +messages.ios.chatGroupDisband=Der Administrator der Uhr \u3010%s\u3011 hat die Uhr auf die Werkseinstellungen zur\u00FCckgesetzt +messages.ios.checkedResults=Der Administrator der Uhr (%s) hat zugestimmt, dass Sie der Uhr folgen +messages.ios.applicationRrecord=Benutzer (%s) gilt f\u00FCr Follow [%s] watch +messages.ios.lowBattery=%s Der aktuelle Batteriestand der S-Uhr ist niedrig, bitte laden Sie es! +messages.ios.sos=%s l\u00F6st SOS aus +user.unbind.device=Der Benutzer hat das Ger\u00E4t entbunden +down.video.call=Ich lege den Videoanruf auf +enter.rail=Betreten Sie die sichere Zone +leave.rail= Verlassen Sie den sicheren Bereich +call.follow=Der Admin Ihrer Uhr hat Ihre Uhr nicht mehr verfolgt +pre.identity.transer=Sie haben die Uhr platziert +after.identity.transer=\u00DCbertragung der Administratoridentit\u00E4t an +accept.identity.transer=Administrator \u00FCbertr\u00E4gt Ihnen die Administratoridentit\u00E4t +message.addressBook.max=Die Gesamtzahl der Adressbuch-Mitglieder, die Sie hinzugef\u00FCgt haben, \u00FCbersteigt 50, und wir k\u00F6nnen sie nicht weiter hinzuf\u00FCgen +exit.list.video.call=Sie befinden sich nicht auf der Liste der Videoanrufmitglieder und k\u00F6nnen keine Videoanrufe t\u00E4tigen +cannot.video.call=Dieses Ger\u00E4t unterst\u00FCtzt keine Videoanrufe +disabled.video.call=Das Ger\u00E4t befindet sich derzeit in einem Klasse deaktivierten Zustand und kann keine Videoanrufe t\u00E4tigen +not.internet.video.call=Die Uhr ist nicht mit dem Netzwerk verbunden, m\u00F6glicherweise ist das Signal schlecht oder ausgeschaltet +long.time.video.call=Die Videozeit ist zu lang, bitte rufen Sie sp\u00E4ter noch einmal an +process.video.call=Die Uhr befindet sich in einem Videoanruf, bitte versuchen Sie es sp\u00E4ter erneut +phone.has.exit=Die Telefonnummer wurde verwendet, bitte erneut eingeben +messages.apply.device.model.error=Das Ger\u00E4temodell kann nicht gefunden werden, kann nicht folgen +messages.whether.apply.error=Die Ger\u00E4teanwendung erfordert eine Administratorpr\u00FCfung +messages.apply.bind.error=Dieses Ger\u00E4t wurde bereits gebunden, kann nicht wieder gebunden werden +messages.ios.automaticApproval=Benutzer (%s) tritt der Gruppe bei +messages.password.error=Altes Passwort falsch +messages.query.device.error=Das Ger\u00E4t ist nicht mit dem Internet verbunden oder nicht online \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_es_ES.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_es_ES.properties new file mode 100644 index 0000000..d2a5f91 --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_es_ES.properties @@ -0,0 +1,85 @@ +messages.title=Internacionalizaci\u00F3n del chino +messages.success=Operaci\u00F3n exitosa +messages.error=La operaci\u00F3n fall\u00F3, P\u00F3ngase en contacto con el Administrador para procesarlo +messages.pwd.empty=La contrase\u00F1a est\u00E1 vac\u00EDa, introduzca la contrase\u00F1a +messages.pwd.length=La longitud de la contrase\u00F1a introducida debe estar entre 6 - 32 d\u00EDgitos +messages.firm.phone=El n\u00FAmero de tel\u00E9fono de contacto no puede estar vac\u00EDo +messages.email.subject=C\u00F3digo de verificaci\u00F3n del buz\u00F3n +messages.email.text_pre=Estimado usuario, hola: el C\u00F3digo de verificaci\u00F3n de correo electr\u00F3nico solicitado es: +messages.email.text_tail=,Este C\u00F3digo de verificaci\u00F3n es v\u00E1lido en 5 minutos, por favor ingrese a tiempo, si no opera por s\u00ED mismo, ignorar el correo (este es un correo enviado autom\u00E1ticamente, por favor no responda directamente) +messages.email.code.expire=El C\u00F3digo de verificaci\u00F3n ha expirado +messages.email.code.fail=El C\u00F3digo de verificaci\u00F3n es incorrecto +messages.email.register.exit=El buz\u00F3n ha sido registrado +messages.login.not.exit=El buz\u00F3n no existe, introduzca el buz\u00F3n correcto +messages.email.stop=El buz\u00F3n ha sido desactivado, P\u00F3ngase en contacto con el Administrador para procesarlo. +messages.pwd.error=La contrase\u00F1a introducida es incorrecta, vuelva a ingresar +messages.isPhone.null=Por favor, vincule el n\u00FAmero de tel\u00E9fono m\u00F3vil primero. +messages.imei.isNull=Este IMEI no existe en el sistema de fondo, P\u00F3ngase en contacto con la gesti\u00F3n +messages.imei.notAudit=Este IMEI no pas\u00F3 en el sistema de fondo, P\u00F3ngase en contacto con el Administrador +messages.maximum.limit.exceeded=Ha agregado 6 dispositivos solicitados y no puede agregar otros dispositivos +messages.device.phone=El n\u00FAmero de tel\u00E9fono del dispositivo no puede estar vac\u00EDo +messages.binding.device.error=Ya est\u00E1 vinculado al Administrador del dispositivo en proceso de aprobaci\u00F3n, P\u00F3ngase en contacto con el Administrador para su aprobaci\u00F3n. +messages.binding.device.isNotNull=Ya ha vinculado el dispositivo +messages.bad.request=Operaciones no permitidas +messages.not.bind=Por favor, vincule el dispositivo +messages.device.empty=No se ha consultado el dispositivo +messages.clock.number=A\u00F1adir despertador no puede exceder de tres +messages.class.number=A\u00F1adir clases no puede tener m\u00E1s de tres per\u00EDodos prohibidos +messages.admin.operation=Limitado a la operaci\u00F3n del Administrador +messages.bind.user=Dispositivo no vinculado o fall\u00F3 la obtenci\u00F3n de la cuenta +messages.binding.video.type=El dispositivo no ha establecido el tipo de video, P\u00F3ngase en contacto con el Administrador para configurar el tipo de video en la vinculaci\u00F3n. +messages.user.hasLogin=Su cuenta se ha iniciado sesi\u00F3n en otros dispositivos +messages.apply.error=Ya has solicitado la vinculaci\u00F3n, por favor espera pacientemente a que el Administrador del reloj lo revise. +messages.binding.not.error=Este dispositivo a\u00FAn no est\u00E1 vinculado, por favor, vincule primero a la solicitud para prestar atenci\u00F3n. +messages.apply.follow.error=El usuario ya es administrador y no puede solicitar atenci\u00F3n +messages.unbinding.error=El usuario no est\u00E1 vinculado, por favor, se desata despu\u00E9s de vincular +messages.user.does.not.exist=El usuario no existe +messages.adminId.not.null=El ID del Administrador no puede ser nulo +messages.userId.not.null=El ID del solicitante no puede ser nulo +messages.deviceAttention.error=El registro de mensajes no existe +messages.attention.not.exist=El registro de atenci\u00F3n a la solicitud no existe +messages.group.info=No hay informaci\u00F3n de grupo por el momento +rails.count=El n\u00FAmero de vallas de Seguridad no puede exceder de 4 +messages.device.owner.info=No hay informaci\u00F3n del propietario del dispositivo, P\u00F3ngase en contacto con el Administrador +messages.positioning.model.error=El dispositivo no tiene establecido el modo de localizaci\u00F3n, P\u00F3ngase en contacto con el Administrador para configurarlo. +message.video.call=Videollamada +message.invite.call=Se le invita a llamar +message.trigger.sos=El reloj activa sos +message.alarm.sos=Alarma +heart.rate.abnormal=Frecuencia card\u00EDaca anormal, la frecuencia card\u00EDaca de monitoreo actual es +pre.min=Segundo/minuto +heart.rate.current=El reloj monitorea actualmente la frecuencia card\u00EDaca en +temp.abnormal=Temperatura corporal anormal, la temperatura corporal actual monitoreada es +temp.current=El reloj monitorea actualmente la temperatura corporal como +heart.simple.abnormal=Frecuencia card\u00EDaca anormal +temp.simple=Temperatura corporal anormal +message.chant.video=Noticias de Wechat +accept.chant.video=Recibe un mensaje de Wechat +messages.ios.chatGroupRemove=El reloj de atenci\u00F3n cancelado de %s de \u3010%s\u3011 +messages.ios.chatGroupDisband=El Administrador del reloj \u3010%s\u3011 recupera la configuraci\u00F3n de f\u00E1brica del relojEl Administrador del reloj [s] recupera la configuraci\u00F3n de f\u00E1brica del reloj +messages.ios.checkedResults=El Administrador del reloj (%s) ha aceptado que siga el reloj +messages.ios.applicationRrecord=El usuario (%s) solicita atenci\u00F3n al reloj \u3010%s\u3011 +messages.ios.lowBattery=\u00A1El reloj %s est\u00E1 actualmente bajo, \u00A1 por favor, cargue! +messages.ios.sos=%s activa sos +user.unbind.device=El usuario ha desatado el dispositivo +down.video.call=Se colg\u00F3 la videollamada +enter.rail=Acceso a zonas seguras +leave.rail= Salir de la zona de Seguridad +call.follow=El Administrador del reloj cancela su atenci\u00F3n al reloj +pre.identity.transer=Usted ha puesto el reloj +after.identity.transer=La identidad del Administrador se transfiere a +accept.identity.transer=El Administrador le transfiere la identidad del Administrador +message.addressBook.max=El n\u00FAmero total de miembros de la libreta de direcciones que ha agregado supera los 50 y no puede seguir a\u00F1adiendo +exit.list.video.call=No est\u00E1 en la lista de miembros de videollamada, no puede hacer videollamada +cannot.video.call=El dispositivo no admite videollamadas +disabled.video.call=El dispositivo est\u00E1 desactivado en clase y no se puede hacer videollamada +not.internet.video.call=El reloj no est\u00E1 conectado a Internet y puede tener una se\u00F1al pobre o apagada en la actualidad. +long.time.video.call=El video es demasiado largo, por favor llame m\u00E1s tarde. +process.video.call=El reloj est\u00E1 en videollamada, por favor vuelva a intentarlo m\u00E1s tarde. +phone.has.exit=El n\u00FAmero de tel\u00E9fono m\u00F3vil ya est\u00E1 en uso, por favor vuelva a ingresar +messages.apply.device.model.error=No se ha encontrado el modelo del dispositivo y no se puede prestar atenci\u00F3n +messages.whether.apply.error=La solicitud del dispositivo debe ser revisada por el Administrador. +messages.apply.bind.error=El dispositivo ya est\u00E1 vinculado y no se puede repetir la vinculaci\u00F3n. +messages.ios.automaticApproval=Usuarios (%s) se unen al Grupo +messages.password.error=Error en la contrase\u00F1a antigua +messages.query.device.error=El dispositivo no est\u00E1 conectado o no est\u00E1 en l\u00EDnea \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_fr_FR.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_fr_FR.properties new file mode 100644 index 0000000..42f4719 --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_fr_FR.properties @@ -0,0 +1,89 @@ +messages.title=Internationalisation en chinois +messages.success=Op\u00E9ration r\u00E9ussie +messages.error=L'op\u00E9ration a \u00E9chou\u00E9, contactez l'Administrateur +messages.pwd.empty=Le mot de passe est vide, veuillez entrer le mot de passe +messages.pwd.length=La longueur du mot de passe saisi doit \u00EAtre comprise entre 6 et 32 bits +messages.firm.phone=Le num\u00E9ro de t\u00E9l\u00E9phone du contact ne peut pas \u00EAtre vide +messages.email.subject=Code de v\u00E9rification de la bo\u00EEte aux lettres +messages.email.text_pre=Cher utilisateur, bonjour: le Code de v\u00E9rification du message pour cette demande est: +messages.email.text_tail=, +59/10000 +\u5B9E\u65F6\u7FFB\u8BD1 +\u5212\u8BD1 +Ce CAPTCHA est valide dans les 5 minutes, s'il vous pla\u00EEt entrer dans le temps, si vous ne le faites pas vous - m\u00EAme, s'il vous pla\u00EEt ignorer le message (il s'agit d'un message envoy\u00E9 automatiquement, s'il vous pla\u00EEt ne pas r\u00E9pondre directement) +messages.email.code.expire=Le Code de v\u00E9rification a expir\u00E9 +messages.email.code.fail=Le Code de v\u00E9rification est erron\u00E9 +messages.email.register.exit=La bo\u00EEte aux lettres est enregistr\u00E9e +messages.login.not.exit=La bo\u00EEte aux lettres n'existe pas, veuillez entrer la bonne bo\u00EEte aux lettres +messages.email.stop=La bo\u00EEte aux lettres a \u00E9t\u00E9 d\u00E9sactiv\u00E9e, veuillez contacter l'Administrateur +messages.pwd.error=Le mot de passe entr\u00E9 est incorrect, veuillez le saisir \u00E0 nouveau +messages.isPhone.null=Veuillez d'abord lier le num\u00E9ro de t\u00E9l\u00E9phone portable +messages.imei.isNull=Cet IMEI n'existe pas dans le syst\u00E8me d'arri\u00E8re - plan contact administration +messages.imei.notAudit=Cet IMEI ne passe pas dans le syst\u00E8me d'arri\u00E8re - plan veuillez contacter l'Administrateur +messages.maximum.limit.exceeded=Vous avez ajout\u00E9 6 appareils demand\u00E9s vous ne pouvez pas ajouter d'autres appareils +messages.device.phone=Le num\u00E9ro de t\u00E9l\u00E9phone de l'appareil ne peut pas \u00EAtre vide +messages.binding.device.error=Vous avez d\u00E9j\u00E0 li\u00E9 ce p\u00E9riph\u00E9rique Administrateur en cours d'approbation contacter l'Administrateur approbation +messages.binding.device.isNotNull=Vous avez d\u00E9j\u00E0 li\u00E9 l'appareil +messages.bad.request=Op\u00E9rations non autoris\u00E9es +messages.not.bind=Veuillez lier l'\u00E9quipement +messages.device.empty=Pas d'enqu\u00EAte sur l'appareil +messages.clock.number=Ajouter une alarme ne peut pas \u00EAtre plus de trois +messages.class.number=Ajouter un cours ne peut pas avoir plus de trois p\u00E9riodes d\u00E9sactiv\u00E9es +messages.admin.operation=Actions de l'administrateur uniquement +messages.bind.user=P\u00E9riph\u00E9rique non li\u00E9 ou \u00E9chec de l'obtention du compte +messages.binding.video.type=L'appareil n'a pas de type vid\u00E9o d\u00E9fini veuillez contacter l'Administrateur pour d\u00E9finir le type de vid\u00E9o dans BIND +messages.user.hasLogin=Votre num\u00E9ro de compte est connect\u00E9 sur un autre appareil +messages.apply.error=Vous avez demand\u00E9 une liaison Veuillez patienter jusqu'\u00E0 ce que l'Administrateur de la montre v\u00E9rifie +messages.binding.not.error=Cet appareil n'a pas encore \u00E9t\u00E9 li\u00E9 s'il vous pla\u00EEt d'abord li\u00E9 dans l'application suivre +messages.apply.follow.error=L'utilisateur est d\u00E9j\u00E0 Administrateur ne peut pas demander \u00E0 suivre +messages.unbinding.error=Cet utilisateur n'est pas li\u00E9 s'il vous pla\u00EEt d\u00E9lier apr\u00E8s la liaison +messages.user.does.not.exist=L'utilisateur n'existe pas +messages.adminId.not.null=L'id Administrateur ne peut pas \u00EAtre null +messages.userId.not.null=L'id du demandeur ne peut pas \u00EAtre null +messages.deviceAttention.error=L'enregistrement du message n'existe pas +messages.attention.not.exist=Dossier de suivi de la demande n'existe pas +messages.group.info=Aucune information de groupe pour le moment +rails.count=Le nombre de cl\u00F4tures de s\u00E9curit\u00E9 ne peut pas d\u00E9passer 4 +messages.device.owner.info=Pas encore d'informations sur le propri\u00E9taire de l'appareil contacter l'Administrateur +messages.positioning.model.error=L'appareil n'a pas de mode de localisation d\u00E9fini veuillez contacter l'Administrateur pour la configuration +message.video.call=Appel vid\u00E9o +message.invite.call=Vous inviter \u00E0 appeler +message.trigger.sos=La montre d\u00E9clenche SOS +message.alarm.sos=Alarme +heart.rate.abnormal=Fr\u00E9quence cardiaque anormale, la fr\u00E9quence cardiaque actuellement surveill\u00E9e est +pre.min=Temps/points +heart.rate.current=La montre surveille actuellement la fr\u00E9quence cardiaque pour +temp.abnormal=Temp\u00E9rature corporelle anormale, la temp\u00E9rature corporelle actuellement surveill\u00E9e est +temp.current=La montre surveille actuellement la temp\u00E9rature corporelle est +heart.simple.abnormal=Anomalies de la fr\u00E9quence cardiaque +temp.simple=Anomalies de la temp\u00E9rature corporelle +message.chant.video=Messages micro - chat +accept.chant.video=Recevoir un message microchat +messages.ios.chatGroupRemove=%s de \u3010%s\u3011 ne plus suivre la montre +messages.ios.chatGroupDisband=L'Administrateur de la montre\u3010%s\u3011 restaure les param\u00E8tres d'usine de la montre +messages.ios.checkedResults=L'Administrateur de la montre (%s) a accept\u00E9 que vous suiviez la montre +messages.ios.applicationRrecord=Utilisateur (%s) demande de suivre [%s] montres +messages.ios.lowBattery=%s la montre est actuellement faible, veuillez la recharger! +messages.ios.sos=%s d\u00E9clenche SOS +user.unbind.device=L'utilisateur a d\u00E9sengag\u00E9 l'\u00E9quipement +down.video.call=Raccroch\u00E9 l'appel vid\u00E9o +enter.rail=Acc\u00E8s \u00E0 la zone s\u00E9curis\u00E9e +leave.rail= Quitter la zone de s\u00E9curit\u00E9 +call.follow=Admin de la montre annuler votre suivi de la montre +pre.identity.transer=Vous avez mis la montre +after.identity.transer=Le statut d'administrateur est transf\u00E9r\u00E9 \u00E0 +accept.identity.transer=Administrateur transfert du statut d'administrateur \u00E0 vous +message.addressBook.max=Vous avez ajout\u00E9 plus de 50 Membres au total et vous ne pouvez pas continuer \u00E0 ajouter +exit.list.video.call=Vous n'\u00EAtes pas dans la liste des membres d'appel vid\u00E9o et vous ne pouvez pas passer d'appel vid\u00E9o +cannot.video.call=L'appareil ne prend pas en charge les appels vid\u00E9o +disabled.video.call=L'appareil est d\u00E9sactiv\u00E9 en classe et ne peut pas passer d'appel vid\u00E9o +not.internet.video.call=La montre n'est pas connect\u00E9e, peut - \u00EAtre que le signal actuel est mauvais ou \u00E9teint +long.time.video.call=Vid\u00E9o trop longue, veuillez composer plus tard +process.video.call=La montre est en appel vid\u00E9o, r\u00E9essayez plus tard +phone.has.exit=Le num\u00E9ro de t\u00E9l\u00E9phone est d\u00E9j\u00E0 utilis\u00E9, veuillez le saisir \u00E0 nouveau +messages.apply.device.model.error=Ce mod\u00E8le d'appareil n'a pas \u00E9t\u00E9 trouv\u00E9 et ne peut pas \u00EAtre suivi +messages.whether.apply.error=Cette demande d'appareil n\u00E9cessite un audit Administrateur +messages.apply.bind.error=L'appareil a d\u00E9j\u00E0 \u00E9t\u00E9 li\u00E9 et ne peut pas \u00EAtre li\u00E9 \u00E0 plusieurs reprises +messages.ios.automaticApproval=L'utilisateur (%s) rejoint le Groupe +messages.password.error=Ancien mot de passe incorrect +messages.query.device.error=L'appareil n'est pas connect\u00E9 ou n'est pas en ligne \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_it_IT.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_it_IT.properties new file mode 100644 index 0000000..d42d9e9 --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_it_IT.properties @@ -0,0 +1,84 @@ +messages.title=Internazionalizzazione cinese +messages.success=Operazione riuscita +messages.error=Operazione fallita, contattare l'amministratore per la gestione +messages.pwd.empty=La password \u00E8 vuota, inserisci la password +messages.pwd.length=La lunghezza della password inserita dovrebbe essere compresa tra 6-32 bit +messages.firm.phone=Il numero di telefono del contatto non pu\u00F2 essere vuoto +messages.email.subject=Codice di verifica e-mail +messages.email.text_pre=Gentile utente, salve: Il codice di verifica email per questa richiesta \u00E8: +messages.email.text_tail=,Questo codice di verifica \u00E8 valido per 5 minuti. Si prega di inserirlo in modo tempestivo. Se non gestito da soli, si prega di ignorare questa e-mail (questa \u00E8 una e-mail inviata automaticamente, si prega di non rispondere direttamente) +messages.email.code.expire=Il codice \u00E8 scaduto +messages.email.code.fail=Il codice di verifica non \u00E8 corretto +messages.email.register.exit=E-mail registrata +messages.login.not.exit=Email non esiste, inserisci l'indirizzo email corretto +messages.email.stop=L'email \u00E8 stata disattivata. Si prega di contattare l'amministratore per assistenza +messages.pwd.error=La password inserita non \u00E8 corretta, si prega di reinserire +messages.isPhone.null=Si prega di legare prima il numero di telefono +messages.imei.isNull=Questo IMEI non esiste nel sistema backend. Si prega di contattare la direzione +messages.imei.notAudit=Questo IMEI non \u00E8 passato nel sistema backend. Si prega di contattare l'amministratore +messages.maximum.limit.exceeded=Hai gi\u00E0 richiesto 6 dispositivi e non puoi aggiungere altri dispositivi +messages.device.phone=Il numero di telefono del dispositivo non pu\u00F2 essere vuoto +messages.binding.device.error=Hai gi\u00E0 legato il dispositivo. L'amministratore lo sta approvando. Contatta l'amministratore per l'approvazione +messages.binding.device.isNotNull=Hai gi\u00E0 legato questo dispositivo +messages.bad.request=Operazione non consentita +messages.not.bind=Legare il dispositivo +messages.device.empty=Nessun dispositivo trovato +messages.clock.number=Aggiungere non pi\u00F9 di tre allarmi +messages.class.number=L'aggiunta di un periodo di divieto di classe non pu\u00F2 superare tre +messages.admin.operation=Limitato solo alle operazioni di amministratore +messages.bind.user=Non \u00E8 riuscito a collegare il dispositivo o a recuperare l'account +messages.binding.video.type=Il dispositivo non ha un set di tipo video. Si prega di contattare l'amministratore per impostare il tipo di video prima del binding +messages.user.hasLogin=Il tuo account \u00E8 stato effettuato l'accesso su un altro dispositivo +messages.apply.error=Si prega di avere pazienza e attendere che l'amministratore dell'orologio riveda +messages.binding.not.error=Questo dispositivo non \u00E8 stato ancora legato. Si prega di legarlo prima di richiedere attenzione +messages.apply.follow.error=Questo utente \u00E8 gi\u00E0 un amministratore e non pu\u00F2 richiedere attenzione +messages.unbinding.error=L'utente non \u00E8 vincolato. Si prega di sbloccare dopo l'associazione +messages.user.does.not.exist=utente non esiste +messages.adminId.not.null=L'ID amministratore non pu\u00F2 essere nullo +messages.userId.not.null=L'ID del richiedente non pu\u00F2 essere nullo +messages.deviceAttention.error=Il record del messaggio non esiste +messages.attention.not.exist=La domanda di registrazione dell'attenzione non esiste +messages.group.info=Nessuna informazione di gruppo disponibile al momento +rails.count=Il numero di recinzioni di sicurezza non pu\u00F2 superare 4 +messages.device.owner.info=Al momento non sono disponibili informazioni sul proprietario del dispositivo. +messages.positioning.model.error=Il dispositivo non ha una modalit\u00E0 di posizionamento impostata. Si prega di contattare l'amministratore per configurarlo +message.video.call=Videochiamata +message.invite.call=Invito a fare una chiamata +message.trigger.sos=Attivatori di controllo SOS +message.alarm.sos=Chiama la polizia +heart.rate.abnormal=Frequenza cardiaca anormale, frequenza cardiaca attualmente monitorata \u00E8 +pre.min=ore/minuto +heart.rate.current=L'attuale frequenza cardiaca monitorata dell'orologio \u00E8 +temp.abnormal=Temperatura corporea anormale, l'attuale temperatura corporea monitorata \u00E8 +temp.current=La temperatura corrente monitorata dall'orologio \u00E8 +heart.simple.abnormal=anomalie della frequenza cardiaca +temp.simple=Temperatura anormale +message.chant.video=Messaggi WeChat +accept.chant.video=Ricevi un messaggio di microchat +messages.ios.chatGroupRemove=\u3010%s\u3011's %s unfollow watch +messages.ios.chatGroupDisband=L'amministratore di watch \u3010%s\u3011 ha ripristinato l'orologio alle impostazioni di fabbrica +messages.ios.checkedResults=L'amministratore di watch (%s) ha accettato di seguire l'orologio +messages.ios.applicationRrecord=L'utente (%s) si applica a seguire [%s] watch +messages.ios.lowBattery=%s Il livello attuale della batteria dell'orologio S \u00E8 basso, si prega di caricarlo! +user.unbind.device=L'utente ha sbloccato il dispositivo +down.video.call=Riagganciare la videochiamata +enter.rail=Entra nella zona sicura +leave.rail= Lasciare l'area sicura +call.follow=L'amministratore dell'orologio non ti ha seguito dall'orologio +pre.identity.transer=Hai messo l'orologio. +after.identity.transer=Trasferire l'identit\u00E0 di amministratore a +accept.identity.transer=L'amministratore trasferisce l'identit\u00E0 dell'amministratore all'utente +message.addressBook.max=Il numero totale di membri della rubrica che hai aggiunto supera i 50 e non possiamo continuare ad aggiungerli +exit.list.video.call=Non sei nell'elenco dei membri delle videochiamate e non puoi effettuare videochiamate +cannot.video.call=Questo dispositivo non supporta le videochiamate +disabled.video.call=Il dispositivo \u00E8 attualmente in uno stato di disabilitazione della classe e non pu\u00F2 effettuare videochiamate +not.internet.video.call=L'orologio non \u00E8 collegato a rete, potrebbe essere scarso o spento +long.time.video.call=Il tempo del video \u00E8 troppo lungo, si prega di chiamare di nuovo pi\u00F9 tardi +process.video.call=L'orologio \u00E8 in videochiamata, riprova pi\u00F9 tardi +phone.has.exit=Il numero di telefono \u00E8 stato utilizzato, si prega di reinserire +messages.apply.device.model.error=Impossibile trovare il modello del dispositivo, impossibile seguire +messages.whether.apply.error=L'applicazione del dispositivo richiede la revisione dell'amministratore +messages.apply.bind.error=Questo dispositivo \u00E8 gi\u00E0 stato collegato, non pu\u00F2 essere collegato di nuovo +messages.ios.automaticApproval=L'utente (%s) si unisce al gruppo +messages.password.error=Vecchia password errata +messages.query.device.error=Il dispositivo non \u00E8 connesso a Internet o non \u00E8 online \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ja_JP.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ja_JP.properties new file mode 100644 index 0000000..0cb79c4 --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ja_JP.properties @@ -0,0 +1,85 @@ +messages.title=\u4E2D\u56FD\u8A9E\u306E\u56FD\u969B\u5316 +messages.success=\u64CD\u4F5C\u304C\u6210\u529F\u3057\u307E\u3057\u305F +messages.error=\u64CD\u4F5C\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u7BA1\u7406\u8005\u306B\u9023\u7D61\u3057\u3066\u51E6\u7406\u3057\u3066\u304F\u3060\u3055\u3044 +messages.pwd.empty=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u7A7A\u3067\u3059\u3002\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +messages.pwd.length=\u5165\u529B\u3059\u308B\u30D1\u30B9\u30EF\u30FC\u30C9\u306E\u9577\u3055\u306F6\uFF5E32\u30D3\u30C3\u30C8\u3067\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093 +messages.firm.phone=\u9023\u7D61\u5148\u96FB\u8A71\u756A\u53F7\u3092\u7A7A\u767D\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +messages.email.subject=\u30E1\u30FC\u30EB\u30DC\u30C3\u30AF\u30B9\u8A8D\u8A3C\u30B3\u30FC\u30C9 +messages.email.text_pre=\u5C0A\u656C\u3059\u308B\u30E6\u30FC\u30B6\u30FC\u3001\u3053\u3093\u306B\u3061\u306F\uFF1A\u4ECA\u56DE\u8981\u6C42\u3055\u308C\u305F\u30E1\u30FC\u30EB\u8A8D\u8A3C\u30B3\u30FC\u30C9\u306F\uFF1A +messages.email.text_tail=,\u672C\u691C\u8A3C\u30B3\u30FC\u30C9\u306F5\u5206\u4EE5\u5185\u306B\u6709\u52B9\u3067\u3001\u76F4\u3061\u306B\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3001\u3082\u3057\u672C\u4EBA\u304C\u64CD\u4F5C\u3057\u306A\u3044\u306A\u3089\u3070\u3001\u3053\u306E\u30E1\u30FC\u30EB\u3092\u7121\u8996\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u3053\u308C\u306F\u81EA\u52D5\u9001\u4FE1\u3055\u308C\u305F\u30E1\u30FC\u30EB\u3067\u3001\u76F4\u63A5\u8FD4\u4E8B\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044\uFF09 +messages.email.code.expire=\u8A8D\u8A3C\u30B3\u30FC\u30C9\u304C\u671F\u9650\u5207\u308C\u3067\u3059 +messages.email.code.fail=\u8A8D\u8A3C\u30B3\u30FC\u30C9\u306B\u8AA4\u308A\u304C\u3042\u308B +messages.email.register.exit=\u30E1\u30FC\u30EB\u30DC\u30C3\u30AF\u30B9\u306F\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u3059 +messages.login.not.exit=\u30E1\u30FC\u30EB\u30DC\u30C3\u30AF\u30B9\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u6B63\u3057\u3044\u30E1\u30FC\u30EB\u30DC\u30C3\u30AF\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +messages.email.stop=\u30E1\u30FC\u30EB\u30DC\u30C3\u30AF\u30B9\u306F\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC\u306B\u9023\u7D61\u3057\u3066\u304F\u3060\u3055\u3044 +messages.pwd.error=\u5165\u529B\u3057\u305F\u30D1\u30B9\u30EF\u30FC\u30C9\u306B\u8AA4\u308A\u304C\u3042\u308A\u307E\u3057\u305F\u3002\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +messages.isPhone.null=\u307E\u305A\u643A\u5E2F\u756A\u53F7\u3092\u30D0\u30A4\u30F3\u30C9\u3057\u3066\u304F\u3060\u3055\u3044 +messages.imei.isNull=\u3053\u306Eimei\u306F\u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u30B7\u30B9\u30C6\u30E0\u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u7BA1\u7406\u306B\u304A\u554F\u3044\u5408\u308F\u305B\u304F\u3060\u3055\u3044 +messages.imei.notAudit=\u3053\u306Eimei\u306F\u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u30B7\u30B9\u30C6\u30E0\u3067\u5931\u6557\u3057\u307E\u3057\u305F\u7BA1\u7406\u8005\u306B\u9023\u7D61\u3057\u3066\u304F\u3060\u3055\u3044 +messages.maximum.limit.exceeded=\u8FFD\u52A0\u7533\u8ACB\u6E08\u307F\u306E6\u3064\u306E\u30C7\u30D0\u30A4\u30B9\u306F\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093 +messages.device.phone=\u30C7\u30D0\u30A4\u30B9\u306E\u643A\u5E2F\u756A\u53F7\u3092\u7A7A\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +messages.binding.device.error=\u30C7\u30D0\u30A4\u30B9\u7BA1\u7406\u8005\u304C\u627F\u8A8D\u4E2D\u3067\u3042\u308B\u3053\u3068\u3092\u30D0\u30A4\u30F3\u30C9\u3057\u307E\u3057\u305F\u7BA1\u7406\u8005\u306B\u627F\u8A8D\u3092\u9023\u7D61\u3057\u3066\u304F\u3060\u3055\u3044 +messages.binding.device.isNotNull=\u30C7\u30D0\u30A4\u30B9\u3092\u30D0\u30A4\u30F3\u30C9\u3057\u307E\u3057\u305F +messages.bad.request=\u8A31\u53EF\u3055\u308C\u3066\u3044\u306A\u3044\u64CD\u4F5C +messages.not.bind=\u30C7\u30D0\u30A4\u30B9\u3092\u30D0\u30A4\u30F3\u30C9\u3057\u3066\u304F\u3060\u3055\u3044 +messages.device.empty=\u30C7\u30D0\u30A4\u30B9\u306B\u30AF\u30A8\u30EA\u304C\u3042\u308A\u307E\u305B\u3093 +messages.clock.number=\u76EE\u899A\u307E\u3057\u6642\u8A08\u30923\u3064\u4EE5\u4E0A\u8FFD\u52A0\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +messages.class.number=\u6388\u696D\u7981\u6B62\u671F\u9593\u3092\u8FFD\u52A0\u3059\u308B\u306B\u306F\u30013\u3064\u3092\u8D85\u3048\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +messages.admin.operation=\u7BA1\u7406\u8005\u30A2\u30AF\u30B7\u30E7\u30F3\u306E\u307F +messages.bind.user=\u30C7\u30D0\u30A4\u30B9\u3092\u30D0\u30A4\u30F3\u30C9\u3057\u3066\u3044\u306A\u3044\u304B\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F +messages.binding.video.type=\u3053\u306E\u30C7\u30D0\u30A4\u30B9\u306B\u306F\u30D3\u30C7\u30AA\u30BF\u30A4\u30D7\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30D0\u30A4\u30F3\u30C9\u4E2D\u306E\u30D3\u30C7\u30AA\u30BF\u30A4\u30D7\u3092\u8A2D\u5B9A\u3059\u308B\u306B\u306F\u3001\u7BA1\u7406\u8005\u306B\u9023\u7D61\u3057\u3066\u304F\u3060\u3055\u3044 +messages.user.hasLogin=\u3042\u306A\u305F\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u306F\u4ED6\u306E\u30C7\u30D0\u30A4\u30B9\u306B\u30ED\u30B0\u30A4\u30F3\u3055\u308C\u3066\u3044\u307E\u3059 +messages.apply.error=\u30D0\u30A4\u30F3\u30C9\u3092\u7533\u8ACB\u3057\u307E\u3057\u305F\u8155\u6642\u8A08\u7BA1\u7406\u8005\u306E\u78BA\u8A8D\u3092\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 +messages.binding.not.error=\u3053\u306E\u30C7\u30D0\u30A4\u30B9\u306F\u307E\u3060\u30D0\u30A4\u30F3\u30C9\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u6700\u521D\u306B\u30D0\u30A4\u30F3\u30C9\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +messages.apply.follow.error=\u3053\u306E\u30E6\u30FC\u30B6\u30FC\u306F\u7BA1\u7406\u8005\u3067\u3042\u308B\u305F\u3081\u3001\u30D5\u30A9\u30ED\u30FC\u3092\u7533\u8ACB\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +messages.unbinding.error=\u3053\u306E\u30E6\u30FC\u30B6\u306F\u30D0\u30A4\u30F3\u30C9\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30D0\u30A4\u30F3\u30C9\u5F8C\u306B\u30D0\u30A4\u30F3\u30C9\u89E3\u9664\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +messages.user.does.not.exist=\u30E6\u30FC\u30B6\u30FC\u304C\u5B58\u5728\u3057\u307E\u305B\u3093 +messages.adminId.not.null=\u7BA1\u7406\u8005ID\u306Fnull\u306B\u3067\u304D\u307E\u305B\u3093 +messages.userId.not.null=\u7533\u8ACB\u8005ID\u306Fnull\u306B\u3067\u304D\u307E\u305B\u3093 +messages.deviceAttention.error=\u30E1\u30C3\u30BB\u30FC\u30B8\u30EC\u30B3\u30FC\u30C9\u306F\u5B58\u5728\u3057\u307E\u305B\u3093 +messages.attention.not.exist=\u8CFC\u8CB7\u4F9D\u983C\u30A6\u30A9\u30C3\u30C1\u30EC\u30B3\u30FC\u30C9\u306F\u5B58\u5728\u3057\u307E\u305B\u3093 +messages.group.info=\u30B0\u30EB\u30FC\u30D7\u60C5\u5831\u304C\u4E00\u6642\u7684\u306B\u3042\u308A\u307E\u305B\u3093 +rails.count=\u5B89\u5168\u67F5\u306E\u6570\u306F4\u3064\u3092\u8D85\u3048\u3066\u306F\u306A\u3089\u306A\u3044 +messages.device.owner.info=\u30C7\u30D0\u30A4\u30B9\u6240\u6709\u8005\u60C5\u5831\u304C\u3042\u308A\u307E\u305B\u3093\u7BA1\u7406\u8005\u306B\u9023\u7D61\u3057\u3066\u304F\u3060\u3055\u3044 +messages.positioning.model.error=\u3053\u306E\u30C7\u30D0\u30A4\u30B9\u306B\u306F\u4F4D\u7F6E\u6C7A\u3081\u30E2\u30FC\u30C9\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u7BA1\u7406\u8005\u306B\u9023\u7D61\u3057\u3066\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044 +message.video.call=\u30D3\u30C7\u30AA\u7740\u4FE1 +message.invite.call=\u304A\u96FB\u8A71\u3092\u304A\u62DB\u304D\u3057\u307E\u3059 +message.trigger.sos=\u6642\u8A08\u304CSOS\u3092\u30C8\u30EA\u30AC\u30FC\u3059\u308B +message.alarm.sos=\u30A2\u30E9\u30FC\u30E0 +heart.rate.abnormal=\u5FC3\u62CD\u6570\u7570\u5E38\u3001\u73FE\u5728\u306E\u30E2\u30CB\u30BF\u30EA\u30F3\u30B0\u5FC3\u62CD\u6570\u306F +pre.min=\u30B5\u30D6/\u30B5\u30D6 +heart.rate.current=\u8155\u6642\u8A08\u306E\u73FE\u5728\u306E\u30E2\u30CB\u30BF\u30EA\u30F3\u30B0\u5FC3\u62CD\u6570\u306F +temp.abnormal=\u4F53\u6E29\u7570\u5E38\u3001\u73FE\u5728\u306E\u30E2\u30CB\u30BF\u30EA\u30F3\u30B0\u4F53\u6E29\u306F +temp.current=\u8155\u6642\u8A08\u306E\u73FE\u5728\u306E\u76E3\u8996\u4F53\u6E29\u306F +heart.simple.abnormal=\u5FC3\u62CD\u6570\u7570\u5E38 +temp.simple=\u4F53\u6E29\u7570\u5E38 +message.chant.video=\u3061\u3087\u3063\u3068\u8A71\u3092\u3059\u308B +accept.chant.video=\u5FAE\u30C1\u30E3\u30C3\u30C8\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u53D7\u3051\u53D6\u308B +messages.ios.chatGroupRemove=\u3010%s\u3011\u306E%s\u30A6\u30A9\u30C3\u30C1\u30A6\u30A9\u30C3\u30C1\u306E\u30A6\u30A9\u30C3\u30C1\u89E3\u9664 +messages.ios.chatGroupDisband=\u8155\u6642\u8A08\u3010%s\u3011\u306E\u7BA1\u7406\u8005\u304C\u8155\u6642\u8A08\u3092\u51FA\u8377\u6642\u306E\u8A2D\u5B9A\u306B\u623B\u3059 +messages.ios.checkedResults=\u8155\u6642\u8A08\uFF08%s\uFF09\u306E\u7BA1\u7406\u8005\u306F\u3001\u8155\u6642\u8A08\u306B\u6CE8\u76EE\u3059\u308B\u3053\u3068\u306B\u540C\u610F\u3057\u307E\u3057\u305F +messages.ios.applicationRrecord=\u30E6\u30FC\u30B6\uFF08%s\uFF09\u304C[%s]\u30A6\u30A9\u30C3\u30C1\u3078\u306E\u95A2\u5FC3\u3092\u7533\u8ACB +messages.ios.lowBattery=%s\u8155\u6642\u8A08\u306F\u73FE\u5728\u96FB\u6C17\u91CF\u304C\u4F4E\u3044\u306E\u3067\u3001\u5145\u96FB\u3057\u3066\u304F\u3060\u3055\u3044\uFF01 +messages.ios.sos=%s\u30C8\u30EA\u30ACSOS +user.unbind.device=\u30E6\u30FC\u30B6\u304C\u30C7\u30D0\u30A4\u30B9\u3092\u30D0\u30A4\u30F3\u30C9\u89E3\u9664\u3057\u307E\u3057\u305F +down.video.call=\u30D3\u30C7\u30AA\u901A\u8A71\u3092\u5207\u65AD\u3057\u307E\u3057\u305F +enter.rail=\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30A8\u30EA\u30A2\u306B\u5165\u308B +leave.rail= \u5B89\u5168\u533A\u57DF\u3092\u96E2\u308C\u308B +call.follow=\u30A6\u30A9\u30C3\u30C1\u306E\u7BA1\u7406\u8005\u304C\u30A6\u30A9\u30C3\u30C1\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3059 +pre.identity.transer=\u3042\u306A\u305F\u306F\u8155\u6642\u8A08\u3092 +after.identity.transer=\u7BA1\u7406\u8005ID\u306E\u8EE2\u9001\u5148 +accept.identity.transer=\u7BA1\u7406\u8005\u306F\u7BA1\u7406\u8005ID\u3092\u3042\u306A\u305F\u306B\u8EE2\u9001\u3057\u307E\u3059 +message.addressBook.max=\u8FFD\u52A0\u3057\u305F\u30A2\u30C9\u30EC\u30B9\u5E33\u30E1\u30F3\u30D0\u30FC\u306E\u7DCF\u6570\u306F50\u3092\u8D85\u3048\u3001\u8FFD\u52A0\u3092\u7D9A\u884C\u3067\u304D\u307E\u305B\u3093 +exit.list.video.call=\u30D3\u30C7\u30AA\u901A\u8A71\u53EF\u80FD\u30E1\u30F3\u30D0\u30FC\u30EA\u30B9\u30C8\u306B\u3044\u306A\u3044\u306E\u3067\u3001\u30D3\u30C7\u30AA\u901A\u8A71\u3067\u304D\u307E\u305B\u3093 +cannot.video.call=\u3053\u306E\u30C7\u30D0\u30A4\u30B9\u306F\u30D3\u30C7\u30AA\u901A\u8A71\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093 +disabled.video.call=\u30C7\u30D0\u30A4\u30B9\u306F\u6388\u696D\u4E2D\u306B\u7121\u52B9\u306B\u306A\u3063\u3066\u304A\u308A\u3001\u30D3\u30C7\u30AA\u901A\u8A71\u306F\u3067\u304D\u307E\u305B\u3093 +not.internet.video.call=\u8155\u6642\u8A08\u306F\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u306B\u63A5\u7D9A\u3055\u308C\u3066\u304A\u3089\u305A\u3001\u73FE\u5728\u306E\u4FE1\u53F7\u5DEE\u3084\u96FB\u6E90\u30AA\u30D5\u306E\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 +long.time.video.call=\u30D3\u30C7\u30AA\u306E\u6642\u9593\u304C\u9577\u3059\u304E\u307E\u3059\u306E\u3067\u3001\u5F8C\u3067\u30C0\u30A4\u30E4\u30EB\u3057\u3066\u304F\u3060\u3055\u3044 +process.video.call=\u8155\u6642\u8A08\u306F\u30D3\u30C7\u30AA\u901A\u8A71\u4E2D\u3067\u3059\u306E\u3067\u3001\u5F8C\u3067\u304A\u8A66\u3057\u304F\u3060\u3055\u3044 +phone.has.exit=\u643A\u5E2F\u756A\u53F7\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u306E\u3067\u3001\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +messages.apply.device.model.error=\u30C7\u30D0\u30A4\u30B9\u30E2\u30C7\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3001\u30D5\u30A9\u30ED\u30FC\u3067\u304D\u307E\u305B\u3093 +messages.whether.apply.error=\u3053\u306E\u30C7\u30D0\u30A4\u30B9\u306E\u7533\u8ACB\u306B\u306F\u7BA1\u7406\u8005\u306E\u30EC\u30D3\u30E5\u30FC\u304C\u5FC5\u8981\u3067\u3059 +messages.apply.bind.error=\u30C7\u30D0\u30A4\u30B9\u306F\u30D0\u30A4\u30F3\u30C9\u3055\u308C\u3066\u304A\u308A\u3001\u30D0\u30A4\u30F3\u30C9\u3092\u7E70\u308A\u8FD4\u3059\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +messages.ios.automaticApproval=\u30E6\u30FC\u30B6\u30FC\uFF08%s\uFF09\u304C\u30B0\u30EB\u30FC\u30D7\u306B\u53C2\u52A0 +messages.password.error=\u53E4\u3044\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC +messages.query.device.error=\u30C7\u30D0\u30A4\u30B9\u304C\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u306B\u63A5\u7D9A\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u3001\u30AA\u30F3\u30E9\u30A4\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093 \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ko_KR.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ko_KR.properties new file mode 100644 index 0000000..301c464 --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ko_KR.properties @@ -0,0 +1,85 @@ +messages.title=\uC911\uAD6D\uC5B4 \uAD6D\uC81C\uD654 +messages.success=\uC791\uC5C5 \uC131\uACF5 +messages.error=\uC791\uC5C5\uC5D0 \uC7A5\uC560\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uAD00\uB9AC\uC790\uC5D0\uAC8C \uBB38\uC758\uD558\uC2ED\uC2DC\uC624. +messages.pwd.empty=\uC554\uD638\uAC00 \uBE44\uC5B4 \uC788\uC2B5\uB2C8\uB2E4. \uC554\uD638\uB97C \uC785\uB825\uD558\uC2ED\uC2DC\uC624. +messages.pwd.length=\uC785\uB825\uD55C \uC554\uD638\uC758 \uAE38\uC774\uB294 6-32\uBE44\uD2B8\uC5EC\uC57C \uD569\uB2C8\uB2E4. +messages.firm.phone=\uC5F0\uB77D\uCC98 \uC804\uD654 \uBC88\uD638\uB294 \uBE44\uC6CC\uB458 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.email.subject=\uBA54\uC77C\uBC15\uC2A4 \uC778\uC99D \uCF54\uB4DC +messages.email.text_pre=\uC874\uACBD\uD558\uB294 \uC0AC\uC6A9\uC790\uB2D8, \uC548\uB155\uD558\uC138\uC694: \uC774\uBC88 \uC694\uCCAD\uC758 \uBA54\uC77C \uC778\uC99D\uBC88\uD638\uB294 \uB2E4\uC74C\uACFC \uAC19\uC2B5\uB2C8\uB2E4. +messages.email.text_tail=, \uC774 \uC778\uC99D \uCF54\uB4DC\uB294 5\uBD84 \uC774\uB0B4\uC5D0 \uC720\uD6A8\uD569\uB2C8\uB2E4. \uC989\uC2DC \uC785\uB825\uD558\uC2ED\uC2DC\uC624. \uBCF8\uC778\uC774 \uC870\uC791\uD558\uC9C0 \uC54A\uC73C\uBA74 \uC774 \uBA54\uC77C\uC744 \uBB34\uC2DC\uD558\uC2ED\uC2DC\uC624. (\uC790\uB3D9\uC73C\uB85C \uBC1C\uC1A1\uB41C \uBA54\uC77C\uC785\uB2C8\uB2E4. \uC9C1\uC811 \uD68C\uC2E0\uD558\uC9C0 \uB9C8\uC2ED\uC2DC\uC624.) +messages.email.code.expire=\uC720\uD6A8\uC131 \uAC80\uC0AC \uCF54\uB4DC\uAC00 \uB9CC\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +messages.email.code.fail=\uC778\uC99D \uCF54\uB4DC\uAC00 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +messages.email.register.exit=\uBA54\uC77C\uBC15\uC2A4 \uB4F1\uB85D\uB428 +messages.login.not.exit=\uBA54\uC77C\uBC15\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \uC62C\uBC14\uB978 \uBA54\uC77C\uBC15\uC2A4\uB97C \uC785\uB825\uD558\uC2ED\uC2DC\uC624. +messages.email.stop=\uBA54\uC77C\uBC15\uC2A4\uAC00 \uBE44\uD65C\uC131\uD654\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uAD00\uB9AC\uC790\uC5D0\uAC8C \uBB38\uC758\uD558\uC2ED\uC2DC\uC624. +messages.pwd.error=\uC798\uBABB\uB41C \uC554\uD638\uB97C \uC785\uB825\uD588\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC785\uB825\uD558\uC2ED\uC2DC\uC624. +messages.isPhone.null=\uD578\uB4DC\uD3F0 \uBC88\uD638\uBD80\uD130 \uC5F0\uACB0\uD574 \uC8FC\uC138\uC694. +messages.imei.isNull=\uC774 imei\uAC00 \uBC31\uADF8\uB77C\uC6B4\uB4DC \uC2DC\uC2A4\uD15C\uC5D0 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uAD00\uB9AC\uC790\uC5D0\uAC8C \uBB38\uC758\uD558\uC2ED\uC2DC\uC624. +messages.imei.notAudit=\uC774 imei\uAC00 \uBC31\uADF8\uB77C\uC6B4\uB4DC \uC2DC\uC2A4\uD15C\uC744 \uD1B5\uACFC\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. \uAD00\uB9AC\uC790\uC5D0\uAC8C \uBB38\uC758\uD558\uC2ED\uC2DC\uC624. +messages.maximum.limit.exceeded=\uC2E0\uCCAD\uC744 \uCD94\uAC00\uD588\uC2B5\uB2C8\uB2E4. 6\uAC1C\uC758 \uC7A5\uCE58\uB97C \uCD94\uAC00\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.device.phone=\uC7A5\uCE58 \uD578\uB4DC\uD3F0 \uBC88\uD638\uB294 \uBE44\uC6CC\uB458 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 +messages.binding.device.error=\uC774 \uC7A5\uCE58 \uAD00\uB9AC\uC790\uAC00 \uC774\uBBF8 \uBC14\uC778\uB529\uB418\uC5B4 \uC2B9\uC778 \uC911\uC785\uB2C8\uB2E4. \uAD00\uB9AC\uC790\uC5D0\uAC8C \uBB38\uC758\uD558\uC5EC \uC2B9\uC778\uD558\uC2ED\uC2DC\uC624. +messages.binding.device.isNotNull=\uC7A5\uCE58\uAC00 \uC774\uBBF8 \uBC14\uC778\uB529\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4. +messages.bad.request=\uD5C8\uC6A9\uB418\uC9C0 \uC54A\uB294 \uC791\uC5C5 +messages.not.bind=\uC7A5\uCE58\uB97C \uBC14\uC778\uB529\uD558\uC2ED\uC2DC\uC624. +messages.device.empty=\uC7A5\uCE58\uC5D0 \uB300\uD55C \uC9C8\uC758\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.clock.number=\uC54C\uB78C\uC744 \uCD94\uAC00\uD558\uBA74 3\uAC1C\uB97C \uCD08\uACFC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.class.number=\uC218\uC5C5 \uC2DC\uAC04 \uCD94\uAC00 \uBE44\uD65C\uC131\uD654 \uC2DC\uAC04 3\uAC1C \uCD08\uACFC \uBD88\uAC00 +messages.admin.operation=\uAD00\uB9AC\uC790 \uC791\uC5C5\uB9CC +messages.bind.user=\uC7A5\uCE58\uAC00 \uBC14\uC778\uB529\uB418\uC9C0 \uC54A\uC558\uAC70\uB098 \uACC4\uC815\uC744 \uAC00\uC838\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. +messages.binding.video.type=\uC7A5\uCE58\uC5D0 \uBE44\uB514\uC624 \uC720\uD615\uC774 \uC124\uC815\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uAD00\uB9AC\uC790\uC5D0\uAC8C \uBB38\uC758\uD558\uC5EC \uBE44\uB514\uC624 \uC720\uD615\uC774 \uBC14\uC778\uB529\uB418\uACE0 \uC788\uB294\uC9C0 \uD655\uC778\uD558\uC2ED\uC2DC\uC624. +messages.user.hasLogin=\uADC0\uD558\uC758 \uACC4\uC815\uC774 \uB2E4\uB978 \uC7A5\uCE58\uC5D0 \uB85C\uADF8\uC778\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +messages.apply.error=\uBC14\uC778\uB529\uC744 \uC2E0\uCCAD\uD588\uC73C\uB2C8 \uC2DC\uACC4 \uAD00\uB9AC\uC790\uC758 \uAC80\uD1A0\uB97C \uAE30\uB2E4\uB9AC\uC138\uC694 +messages.binding.not.error=\uC774 \uC7A5\uCE58\uB294 \uC544\uC9C1 \uBC14\uC778\uB529\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uAD6C\uB3C5 \uC2E0\uCCAD\uC5D0 \uBC14\uC778\uB529\uD558\uC2ED\uC2DC\uC624. +messages.apply.follow.error=\uC774 \uC0AC\uC6A9\uC790\uB294 \uC774\uBBF8 \uAD00\uB9AC\uC790\uB85C\uC11C \uAD00\uC2EC\uC744 \uC694\uCCAD\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.unbinding.error=\uC774 \uC0AC\uC6A9\uC790\uAC00 \uBC14\uC778\uB529\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uBC14\uC778\uB529 \uD6C4 \uBC14\uC778\uB529\uC744 \uD574\uC81C\uD558\uC2ED\uC2DC\uC624. +messages.user.does.not.exist=\uC0AC\uC6A9\uC790\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.adminId.not.null=\uAD00\uB9AC\uC790 id\uB294 null\uC77C \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.userId.not.null=\uC2E0\uCCAD\uC790 id\uB294 null\uC774 \uB420 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.deviceAttention.error=\uBA54\uC2DC\uC9C0 \uB808\uCF54\uB4DC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.attention.not.exist=\uC2E0\uCCAD \uAD00\uC2EC \uAE30\uB85D\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +messages.group.info=\uADF8\uB8F9 \uC815\uBCF4 \uC5C6\uC74C +rails.count=\uC548\uC804 \uD39C\uC2A4 \uC218\uB7C9\uC740 4\uAC1C\uB97C \uCD08\uACFC\uD560 \uC218 \uC5C6\uB2E4 +messages.device.owner.info=\uC7A5\uCE58 \uC18C\uC720\uC790 \uC815\uBCF4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \uAD00\uB9AC\uC790\uC5D0\uAC8C \uBB38\uC758\uD558\uC2ED\uC2DC\uC624. +messages.positioning.model.error=\uC7A5\uCE58\uC5D0 \uB85C\uCF00\uC774\uC158 \uBAA8\uB4DC\uAC00 \uC124\uC815\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uAD00\uB9AC\uC790\uC5D0\uAC8C \uBB38\uC758\uD558\uC5EC \uC124\uC815\uD558\uC2ED\uC2DC\uC624. +message.video.call=\uBE44\uB514\uC624 \uBC1C\uC2E0 +message.invite.call=\uD1B5\uD654 \uCD08\uB300 +message.trigger.sos=\uC2DC\uACC4 \uD2B8\uB9AC\uAC70 SOS +message.alarm.sos=\uACBD\uBCF4 +heart.rate.abnormal=\uC2EC\uBC15\uC218 \uC774\uC0C1, \uD604\uC7AC \uBAA8\uB2C8\uD130\uB9C1 \uC2EC\uBC15\uC218\uB294 +pre.min=\uCC28/\uBD84 +heart.rate.current=\uC2DC\uACC4\uC758 \uD604\uC7AC \uBAA8\uB2C8\uD130\uB9C1 \uC2EC\uBC15\uC218\uB294 +temp.abnormal=\uCCB4\uC628 \uC774\uC0C1, \uD604\uC7AC \uBAA8\uB2C8\uD130\uB9C1 \uCCB4\uC628\uC740 +temp.current=\uC2DC\uACC4\uC758 \uD604\uC7AC \uBAA8\uB2C8\uD130\uB9C1 \uCCB4\uC628\uC740 +heart.simple.abnormal=\uC2EC\uBC15\uC218 \uC774\uC0C1 +temp.simple=\uCCB4\uC628 \uC774\uC0C1 +message.chant.video=\uB9C8\uC774\uD06C\uB85C \uCC44\uD305 \uBA54\uC2DC\uC9C0 +accept.chant.video=\uC704\uCC57 \uBA54\uC2DC\uC9C0\uB97C \uBC1B\uB2E4. +messages.ios.chatGroupRemove=\u3010%s\u3011\uC758%s\uC2DC\uACC4 \uD314\uB85C\uC6B0 \uCDE8\uC18C +messages.ios.chatGroupDisband=\uC2DC\uACC4\u3010%s\u3011\uC758 \uAD00\uB9AC\uC790\uAC00 \uC2DC\uACC4\uB97C \uACF5\uC7A5 \uC124\uC815\uC73C\uB85C \uBCF5\uC6D0 +messages.ios.checkedResults=\uC2DC\uACC4 (%s) \uC758 \uAD00\uB9AC\uC790\uAC00 \uC2DC\uACC4\uC5D0 \uAD00\uC2EC\uC744 \uAC16\uB294 \uAC83\uC5D0 \uB3D9\uC758\uD588\uC2B5\uB2C8\uB2E4. +messages.ios.applicationRrecord=\uC0AC\uC6A9\uC790 (%s) \uAC00 [%s] \uC2DC\uACC4 \uD314\uB85C\uC6B0 \uC694\uCCAD +messages.ios.lowBattery=%s \uC2DC\uACC4\uB294 \uD604\uC7AC \uBC30\uD130\uB9AC\uAC00 \uC801\uC2B5\uB2C8\uB2E4. \uCDA9\uC804\uD558\uC138\uC694! +messages.ios.sos=%s \uD2B8\uB9AC\uAC70 SOS +user.unbind.device=\uC0AC\uC6A9\uC790\uAC00 \uC7A5\uCE58 \uBC14\uC778\uB529 \uD574\uC81C\uB428 +down.video.call=\uC601\uC0C1\uD1B5\uD654\uB97C \uB04A\uC5C8\uC2B5\uB2C8\uB2E4. +enter.rail=\uBCF4\uC548 \uC601\uC5ED \uC9C4\uC785 +leave.rail= \uC548\uC804\uAD6C\uC5ED\uC744 \uBC97\uC5B4\uB098\uB2E4 +call.follow=\uC2DC\uACC4 \uAD00\uB9AC\uC790\uAC00 \uC2DC\uACC4\uB97C \uD314\uB85C\uC6B0\uD558\uB294 \uAC83\uC744 \uCDE8\uC18C +pre.identity.transer=\uB2F9\uC2E0\uC740 \uC774\uBBF8 \uC190\uBAA9\uC2DC\uACC4\uB97C +after.identity.transer=\uAD00\uB9AC\uC790 \uC790\uACA9 \uC774\uC804 +accept.identity.transer=\uAD00\uB9AC\uC790\uAC00 \uAD00\uB9AC\uC790 \uC2E0\uBD84\uC744 \uB2F9\uC2E0\uC5D0\uAC8C \uC774\uC804\uD569\uB2C8\uB2E4 +message.addressBook.max=\uCD94\uAC00\uD55C \uCD1D \uC8FC\uC18C\uB85D \uAD6C\uC131\uC6D0 \uC218\uAC00 50\uAC1C\uB97C \uCD08\uACFC\uD558\uC5EC \uCD94\uAC00\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +exit.list.video.call=\uD654\uC0C1 \uD1B5\uD654 \uAC00\uB2A5 \uAD6C\uC131\uC6D0 \uBAA9\uB85D\uC5D0 \uC5C6\uC2B5\uB2C8\uB2E4. \uD654\uC0C1 \uD1B5\uD654\uB97C \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +cannot.video.call=\uC774 \uC7A5\uCE58\uB294 \uBE44\uB514\uC624 \uD1B5\uD654\uB97C \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. +disabled.video.call=\uC7A5\uCE58\uAC00 \uC218\uC5C5 \uC911 \uBE44\uD65C\uC131\uD654\uB418\uC5B4 \uC788\uC5B4 \uD654\uC0C1 \uD1B5\uD654\uAC00 \uBD88\uAC00\uB2A5\uD569\uB2C8\uB2E4. +not.internet.video.call=\uC2DC\uACC4\uAC00 \uC5F0\uACB0\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uD604\uC7AC \uC2E0\uD638\uAC00 \uB098\uC058\uAC70\uB098 \uAEBC\uC838 \uC788\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4. +long.time.video.call=\uBE44\uB514\uC624 \uC2DC\uAC04\uC774 \uB108\uBB34 \uAE41\uB2C8\uB2E4. \uB098\uC911\uC5D0 \uB2E4\uC2DC \uAC78\uC5B4 \uC8FC\uC2ED\uC2DC\uC624. +process.video.call=\uC2DC\uACC4\uAC00 \uC601\uC0C1\uD1B5\uD654 \uC911\uC785\uB2C8\uB2E4. \uB098\uC911\uC5D0 \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC2ED\uC2DC\uC624. +phone.has.exit=\uD578\uB4DC\uD3F0 \uBC88\uD638\uAC00 \uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC785\uB2C8\uB2E4. \uB2E4\uC2DC \uC785\uB825\uD558\uC2ED\uC2DC\uC624. +messages.apply.device.model.error=\uC774 \uC7A5\uCE58 \uBAA8\uB378\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC8FC\uBAA9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.whether.apply.error=\uC774 \uC7A5\uCE58 \uC694\uCCAD\uC740 \uAD00\uB9AC\uC790\uC758 \uAC80\uD1A0\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4. +messages.apply.bind.error=\uC7A5\uCE58\uAC00 \uC774\uBBF8 \uBC14\uC778\uB529\uB418\uC5B4 \uC788\uC73C\uBBC0\uB85C \uBC14\uC778\uB529\uC744 \uBC18\uBCF5\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. +messages.ios.automaticApproval=\uC0AC\uC6A9\uC790 (%s) \uADF8\uB8F9 \uCC38\uC5EC +messages.password.error=\uC774\uC804 \uC554\uD638 \uC624\uB958 +messages.query.device.error=\uC7A5\uCE58\uAC00 \uB124\uD2B8\uC6CC\uD06C\uC5D0 \uC5F0\uACB0\uB418\uC5B4 \uC788\uC9C0 \uC54A\uAC70\uB098 \uC628\uB77C\uC778 \uC0C1\uD0DC\uAC00 \uC544\uB2D9\uB2C8\uB2E4. \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ms_MY.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ms_MY.properties new file mode 100644 index 0000000..bc328a6 --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ms_MY.properties @@ -0,0 +1,85 @@ +messages.title=Penginternasionalisasi bahasa Cina +messages.success=Operasi berjaya +messages.error=Operasi gagal, sila hubungi pentadbir untuk mengendalikan +messages.pwd.empty=Katalaluan kosong, sila masukkan kata laluan +messages.pwd.length=Panjang kata laluan yang dimasukkan sepatutnya diantara 6-32 bit +messages.firm.phone=Nombor telefon kenalan tidak boleh kosong +messages.email.subject=Kod pengesahan e-mel +messages.email.text_pre=\u5C0A\u656C\u7684\u7528\u6237,\u60A8\u597D: \u672C\u6B21\u8BF7\u6C42\u7684\u90AE\u4EF6\u9A8C\u8BC1\u7801\u4E3A: +messages.email.text_tail=,Kod pengesahan ini sah selama 5 minit. Sila masukkan dalam cara tepat masa. Jika tidak beroperasi sendiri, sila abaikan e-mel ini (ini adalah e-mel yang dihantar secara automatik, sila jangan menjawab secara langsung\uFF09 +messages.email.code.expire=Kod pengesahan telah tamat +messages.email.code.fail=Kod pengesahan tidak betul +messages.email.register.exit=E- mel telah didaftarkan +messages.login.not.exit=Emel tidak wujud, sila masukkan alamat emel yang betul +messages.email.stop=E- mel telah dinyahaktifkan. Sila hubungi pentadbir untuk bantuan +messages.pwd.error=Katalaluan yang dimasukkan adalah salah, sila masukkan semula +messages.isPhone.null=Sila ikat nombor telefon anda dahulu +messages.imei.isNull=IMEI ini tidak wujud dalam sistem bahagian belakang. Sila hubungi pengurusan +messages.imei.notAudit=Imei ini tidak lulus dalam sistem latar belakang Sila hubungi pentadbir +messages.maximum.limit.exceeded=Anda telah dilaksanakan untuk 6 peranti dan tidak dapat menambah mana-mana peranti lain +messages.device.phone=Nombor telefon peranti tidak boleh kosong +messages.binding.device.error=Anda telah mengikat peranti. Pengurus sedang menyetujuinya. Sila hubungi pengurus untuk persetujuan +messages.binding.device.isNotNull=Anda telah mengikat peranti ini +messages.bad.request=Operasi tidak dibenarkan +messages.not.bind=Sila ikat peranti +messages.device.empty=No device found +messages.clock.number=Tambah tidak lebih dari tiga penggera +messages.class.number=Tambah tempoh larangan kelas tidak dapat melebihi tiga +messages.admin.operation=Had pada operasi pentadbir sahaja +messages.bind.user=Peranti tidak terikat atau gagal mendapatkan akaun +messages.binding.video.type=Peranti tidak mempunyai set jenis video. Sila hubungi pentadbir untuk tetapkan jenis video sebelum ikatan +messages.user.hasLogin=Akaun anda telah log masuk pada peranti lain +messages.apply.error=Anda telah melaksanakan pengikatan. Sila bersabar dan tunggu pengurus menonton untuk mengulang +messages.binding.not.error=Peranti ini belum terikat lagi. Sila ikat sebelum melaksanakan untuk perhatian +messages.apply.follow.error=Pengguna ini sudah pengurus dan tidak dapat melaksanakan perhatian +messages.unbinding.error=Pengguna tidak terikat. Sila nyahikat selepas mengikat +messages.user.does.not.exist=pengguna tidak wujud +messages.adminId.not.null=ID Pengurus tidak boleh kosong +messages.userId.not.null=ID aplikant tidak boleh kosong +messages.deviceAttention.error=Rekod mesej tidak wujud +messages.attention.not.exist=Application for attention record does not exist +messages.group.info=Tiada maklumat kumpulan yang tersedia pada masa ini +rails.count=Bilangan pagar keselamatan tidak boleh melebihi 4 +messages.device.owner.info=Semasa tiada maklumat pemilik peranti tersedia. Sila hubungi pentadbir +messages.positioning.model.error=Peranti tidak mempunyai mod posisi ditetapkan. Sila hubungi pengurus untuk menetapkannya +message.video.call=Panggilan video +message.invite.call=Mengajak anda untuk membuat panggilan +message.trigger.sos=Lihat pemicu SOS +message.alarm.sos=Panggil polis. +heart.rate.abnormal=Kadar jantung tidak normal, kadar jantung yang sedang diawasi adalah +pre.min=Setiap/minit +heart.rate.current=Kadar jantung yang diawasi saat ini adalah +temp.abnormal=Abnormal body temperature, the current monitored body temperature is +temp.current=Suhu semasa yang diawasi oleh jam +heart.simple.abnormal=abnormaliti kadar jantung +temp.simple=Suhu badan tidak normal +message.chant.video=Mesej WeChat +accept.chant.video=Mesej Diterima WeChat +messages.ios.chatGroupRemove=Jam tidak diikuti \u3010%s\u3011 +messages.ios.chatGroupDisband=Pengurus menonton \u3010%s\u3011 mengembalikan jam ke tetapan kilang +messages.ios.checkedResults=Pengurus jam tangan (%s) telah bersetuju untuk mengikuti jam tangan anda +messages.ios.applicationRrecord=Pengguna (%s) berlaku untuk mengikuti jam [%s] +messages.ios.lowBattery=%s The current battery level of the S watch is low, please load it! +messages.ios.sos=%s memicu SOS +user.unbind.device=Pengguna telah nyahikat peranti +down.video.call=Menutup panggilan video +enter.rail=Masukkan zon selamat +leave.rail=Tinggalkan kawasan selamat +call.follow=Pengurus jam telah tidak mengikuti anda dari jam +pre.identity.transer=Anda telah meletakkan jam tangan +after.identity.transer=Pemindahan identiti pengurus ke +accept.identity.transer=Pengurus memindahkan identiti pengurus kepada anda +message.addressBook.max=Jumlah ahli buku alamat yang anda tambahkan lebih dari 50, dan kami tidak dapat terus menambahnya +exit.list.video.call=Anda tidak berada dalam senarai anggota panggilan video dan tidak dapat membuat panggilan video +cannot.video.call=Peranti ini tidak menyokong panggilan video +disabled.video.call=Peranti kini dalam keadaan dilumpuhkan kelas dan tidak dapat membuat panggilan video +not.internet.video.call=Jam tidak tersambung ke internet, mungkin disebabkan isyarat atau matian yang buruk +long.time.video.call=Masa video terlalu panjang, sila hubungi lagi kemudian +process.video.call=Jam adalah pada panggilan video, sila cuba lagi kemudian +phone.has.exit=Nombor telefon telah digunakan, sila masukkan semula +messages.apply.device.model.error=Tidak dapat cari model peranti, tidak dapat mengikuti +messages.whether.apply.error=Aplikasi peranti memerlukan ulasan pentadbir +messages.apply.bind.error=Peranti ini sudah terikat, tidak dapat terikat lagi +messages.ios.automaticApproval=Pengguna (%s) bergabung dengan kumpulan +messages.password.error=Katalaluan lama tidak betul +messages.query.device.error=Peranti tidak disambung ke internet atau tidak online \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_pt_PT.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_pt_PT.properties new file mode 100644 index 0000000..6de675e --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_pt_PT.properties @@ -0,0 +1,85 @@ +messages.title=Internacionaliza\u00E7\u00E3o da l\u00EDngua chinesa +messages.success=Opera\u00E7\u00E3o bem sucedida +messages.error=A opera\u00E7\u00E3o falhou, por favor contacte o administrador para lidar +messages.pwd.empty=A senha est\u00E1 vazia, por favor introduz a senha +messages.pwd.length=O comprimento da senha introduzida deve ser entre 6 e 32 bits +messages.firm.phone=O n\u00FAmero de telefone de contato n\u00E3o pode estar vazio +messages.email.subject=C\u00F3digo de verifica\u00E7\u00E3o de correio electr\u00F3nico +messages.email.text_pre=Querido usu\u00E1rio, ol\u00E1: O c\u00F3digo de verifica\u00E7\u00E3o do email para este pedido \u00E9: +messages.email.text_tail=,Este c\u00F3digo de verifica\u00E7\u00E3o \u00E9 v\u00E1lido por 5 minutos. Por favor introduz-o em tempo oportuno. Se n\u00E3o for operado sozinho, por favor ignore este e-mail (este \u00E9 um e-mail enviado automaticamente, por favor n\u00E3o responda diretamente\uFF09 +messages.email.code.expire=O c\u00F3digo de verifica\u00E7\u00E3o expirou +messages.email.code.fail=O c\u00F3digo de verifica\u00E7\u00E3o \u00E9 incorrecto +messages.email.register.exit=O correio electr\u00F3nico foi registado +messages.login.not.exit=O correio electr\u00F3nico n\u00E3o existe, por favor introduz o endere\u00E7o correto +messages.email.stop=O email foi desactivado. Por favor, contacte o administrador para ajuda +messages.pwd.error=A senha introduzida \u00E9 incorrecta, por favor reintroduza +messages.isPhone.null=Por favor, ligar primeiro seu n\u00FAmero de telefone +messages.imei.isNull=Esse IMEI n\u00E3o existe no sistema de infraestrutura. Por favor, contate com a gest\u00E3o +messages.imei.notAudit=Este IMEI n\u00E3o passou no sistema de infraestrutura. Por favor, contacte o administrador +messages.maximum.limit.exceeded=Voc\u00EAs j\u00E1 aplicaram 6 dispositivos e n\u00E3o podem adicionar nenhum outro dispositivo +messages.device.phone=O n\u00FAmero de telefone do dispositivo n\u00E3o pode estar vazio +messages.binding.device.error=Voc\u00EA j\u00E1 ligou o dispositivo. O administrador est\u00E1 aprovando o dispositivo. Por favor, contacte o administrador para aprova\u00E7\u00E3o +messages.binding.device.isNotNull=Voc\u00EAs j\u00E1 ligaram esse dispositivo +messages.bad.request=Opera\u00E7\u00E3o n\u00E3o permitida +messages.not.bind=Por favor, liga o dispositivo +messages.device.empty=N\u00E3o foi encontrado nenhum dispositivo +messages.clock.number=Ajude n\u00E3o mais de tr\u00EAs alarmes +messages.class.number=Adicionar um per\u00EDodo de proibi\u00E7\u00E3o de classes n\u00E3o pode exceder tr\u00EAs +messages.admin.operation=Limitado apenas \u00E0s opera\u00E7\u00F5es de administrador +messages.bind.user=Dispositivo n\u00E3o ligado ou n\u00E3o conseguiu obter conta +messages.binding.video.type=O dispositivo n\u00E3o tem um conjunto de tipo de v\u00EDdeo. Por favor, contacte o administrador para configurar o tipo de v\u00EDdeo antes de ligar +messages.user.hasLogin=Sua conta foi registada em outro dispositivo +messages.apply.error=Voc\u00EA j\u00E1 solicitou liga\u00E7\u00E3o. Por favor fique paciente e espere que o administrador do rel\u00F3gio reviste +messages.binding.not.error=Este dispositivo ainda n\u00E3o foi ligado. Por favor, liga-o antes de aplicar aten\u00E7\u00E3o +messages.apply.follow.error=Este usu\u00E1rio j\u00E1 \u00E9 um administrador e n\u00E3o pode pedir aten\u00E7\u00E3o +messages.unbinding.error=O usu\u00E1rio n\u00E3o est\u00E1 ligado. Por favor desligar ap\u00F3s liga\u00E7\u00E3o +messages.user.does.not.exist=o usu\u00E1rio n\u00E3o existe +messages.adminId.not.null=O ID do administrador n\u00E3o pode ser nulo +messages.userId.not.null=O ID do requerente n\u00E3o pode ser nulo +messages.deviceAttention.error=O registro das mensagens n\u00E3o existe +messages.attention.not.exist=A aplica\u00E7\u00E3o para registro de aten\u00E7\u00E3o n\u00E3o existe +messages.group.info=N\u00E3o h\u00E1 informa\u00E7\u00E3o de grupo dispon\u00EDvel neste momento +rails.count=O n\u00FAmero de cercas de seguran\u00E7a n\u00E3o pode exceder 4 +messages.device.owner.info=Atualmente n\u00E3o h\u00E1 informa\u00E7\u00E3o dispon\u00EDvel sobre propriet\u00E1rios de dispositivos. Por favor, contacte o administrador +messages.positioning.model.error=O dispositivo n\u00E3o tem um modo de posicionamento configurado. Por favor, contacte o administrador para configurar +message.video.call=Chamada de v\u00EDdeo +message.invite.call=Convida voc\u00EA a fazer uma chamada +message.trigger.sos=Vejam desencadeando SOS +message.alarm.sos=chame a pol\u00EDcia +heart.rate.abnormal=Frequ\u00EAncia card\u00EDaca anormal, atualmente a frequ\u00EAncia card\u00EDaca monitorada \u00E9 +pre.min=Por/minuto +heart.rate.current=A frequ\u00EAncia card\u00EDaca atual monitorada do rel\u00F3gio \u00E9 +temp.abnormal=Temperatura corporal anormal, a actual temperatura corporal monitorada \u00E9 +temp.current=A temperatura atual monitorada pelo rel\u00F3gio \u00E9 +heart.simple.abnormal=anormalidades na frequ\u00EAncia card\u00EDaca +temp.simple=Temperatura corporal anormal +message.chant.video=Mensagens WeChat +accept.chant.video=Received WeChat message +messages.ios.chatGroupRemove=o rel\u00F3gio de \u3010%s\u3011 +messages.ios.chatGroupDisband=O administrador do rel\u00F3gio \u3010%s\u3011 restaurou o rel\u00F3gio \u00E0s configura\u00E7\u00F5es da f\u00E1brica +messages.ios.checkedResults=O administrador do rel\u00F3gio (%s) concordou que voc\u00EA seguisse o rel\u00F3gio +messages.ios.applicationRrecord=O usu\u00E1rio (%s) se aplica para seguir o rel\u00F3gio [%s] +messages.ios.lowBattery=%s O n\u00EDvel atual de bateria do rel\u00F3gio S \u00E9 baixo, por favor carrega-o! +messages.ios.sos=%s desencadea SOS +user.unbind.device=O usu\u00E1rio desliga o dispositivo +down.video.call=Colgando a chamada de v\u00EDdeo +enter.rail=Entre na zona segura +leave.rail= Deixe a \u00E1rea segura +call.follow=O administrador do rel\u00F3gio desseguiu-o do rel\u00F3gio +pre.identity.transer=Voc\u00EA colocou o rel\u00F3gio +after.identity.transer=Transfer \u00EAncia de identidade de administrador para +accept.identity.transer=O administrador transfere a identidade do administrador para voc\u00EA +message.addressBook.max=O n\u00FAmero total de membros do caderno de endere\u00E7os que voc\u00EA acrescentou excede 50, e n\u00E3o podemos continuar adicionando-os +exit.list.video.call=Voc\u00EA n\u00E3o est\u00E1 na lista dos membros das chamadas de v\u00EDdeo e n\u00E3o pode fazer chamadas de v\u00EDdeo +cannot.video.call=Este dispositivo n\u00E3o suporta chamadas de v\u00EDdeo +disabled.video.call=O dispositivo est\u00E1 atualmente em estado de classe desactivado e n\u00E3o pode fazer chamadas de v\u00EDdeo +not.internet.video.call=O rel\u00F3gio n\u00E3o est\u00E1 conectado \u00E0 internet, possivelmente devido a um mau sinal ou apagado +long.time.video.call=O tempo de v\u00EDdeo \u00E9 muito longo, por favor ligue mais tarde +process.video.call=O rel\u00F3gio est\u00E1 em uma chamada de v\u00EDdeo, por favor tente de novo mais tarde +phone.has.exit=O n\u00FAmero de telefone foi usado, por favor reintroduza +messages.apply.device.model.error=N\u00E3o conseguimos encontrar o modelo do dispositivo, n\u00E3o conseguimos seguir +messages.whether.apply.error=A aplica\u00E7\u00E3o do dispositivo requer revis\u00E3o do administrador +messages.apply.bind.error=Este dispositivo j\u00E1 est\u00E1 ligado, n\u00E3o pode ser ligado novamente +messages.ios.automaticApproval=O usu\u00E1rio (%s) se junta ao grupo +messages.password.error=Old password incorrect + messages.query.device.error=O dispositivo n\u00E3o est\u00E1 conectado \u00E0 internet ou n\u00E3o online \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ru.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ru.properties index 52d28cc..265eaad 100644 --- a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ru.properties +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_ru.properties @@ -1,7 +1,7 @@ messages.pwd.empty=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u044C, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430 messages.adminId.not.null=\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u043E\u043F\u043E\u0437\u043D\u0430\u0442\u044C \u043D\u0443\u043B\u044C message.invite.call=\u0412\u0430\u0441 \u043F\u0440\u043E\u0441\u044F\u0442 \u043A \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443. -messages.ios.chatGroupRemove=[% \u0441] % \u0441 \u043E\u0442\u0431\u043E\u0439 \u043E\u0442 \u0447\u0430\u0441\u043E\u0432 +messages.ios.chatGroupRemove=[%s] %s \u043E\u0442\u0431\u043E\u0439 \u043E\u0442 \u0447\u0430\u0441\u043E\u0432 messages.login.not.exit=\u0410\u0431\u043E\u043D\u0435\u043D\u0442\u0441\u043A\u0438\u0439 \u044F\u0449\u0438\u043A \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0439 process.video.call=\u0427\u0430\u0441\u044B \u043D\u0430 \u0432\u0438\u0434\u0435\u043E, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u0437\u0432\u043E\u043D\u0438\u0442\u0435 \u043F\u043E\u0437\u0436\u0435 messages.binding.device.error=\u0412\u044B \u0443\u0436\u0435 \u0441\u0432\u044F\u0437\u044B\u0432\u0430\u043B\u0438 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430, \u0442\u0430\u043A \u0447\u0442\u043E \u0441\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u043E\u043C \u0434\u043B\u044F \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F @@ -42,14 +42,14 @@ temp.current=\u0412 \u043D\u0430\u0441\u0442\u043E\u044F\u0449\u0435\u0435 \u043 messages.userId.not.null=\u041B\u0438\u0447\u043D\u043E\u0441\u0442\u044C \u0437\u0430\u044F\u0432\u0438\u0442\u0435\u043B\u044F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430 \u043D\u0430 \u043D\u0443\u043B\u044C exit.list.video.call=\u0412\u0430\u0441 \u043D\u0435\u0442 \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0447\u043B\u0435\u043D\u043E\u0432 \u0432\u0438\u0434\u0435\u043E\u043A\u043E\u043D\u0442\u0430\u043A\u0442\u0430, \u0438 \u0432\u044B \u043D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u0432\u0438\u0434\u0435\u043E\u0437\u0432\u043E\u043D\u043E\u043A messages.binding.device.isNotNull=\u0412\u044B \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043B\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E -messages.ios.chatGroupDisband=\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440 (%) \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0447\u0430\u0441\u044B \u0432 \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 +messages.ios.chatGroupDisband=\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440 (%s) \u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0447\u0430\u0441\u044B \u0432 \u0438\u0441\u0445\u043E\u0434\u043D\u043E\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 rails.count=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u043E\u0433\u0440\u0430\u0436\u0434\u0435\u043D\u0438\u0439 \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u043E \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u0442\u044C 4 messages.group.info=\u041F\u043E\u043A\u0430 \u043D\u0435\u0442 \u043D\u0438\u043A\u0430\u043A\u043E\u0439 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438 messages.isPhone.null=\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u0438\u0432\u044F\u0436\u0438\u0442\u0435 \u043D\u043E\u043C\u0435\u0440 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 messages.email.code.fail=\u041F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430 \u0432 \u043A\u043E\u0434\u0435 \u0432\u0435\u0440\u0438\u0434\u0430\u043D messages.bad.request=\u041E\u043F\u0435\u0440\u0430\u0446\u0438\u044F \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0430 long.time.video.call=\u0412\u0438\u0434\u0435\u043E \u0441\u043B\u0438\u0448\u043A\u043E\u043C \u0437\u0430\u0442\u044F\u043D\u0443\u0442\u043E, \u043F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0435\u0440\u0435\u0437\u0432\u043E\u043D\u0438\u0442\u0435 \u043F\u043E\u0437\u0436\u0435 -messages.ios.checkedResults=\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435\u043B\u044C \u0447\u0430\u0441\u043E\u0432 (%) \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u043B\u0441\u044F, \u0447\u0442\u043E \u0432\u044B \u0441\u043B\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u0447\u0430\u0441\u0430\u043C\u0438 +messages.ios.checkedResults=\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435\u043B\u044C \u0447\u0430\u0441\u043E\u0432 (%s) \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u043B\u0441\u044F, \u0447\u0442\u043E \u0432\u044B \u0441\u043B\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u0447\u0430\u0441\u0430\u043C\u0438 messages.email.text_pre=\u0423\u0432\u0430\u0436\u0430\u0435\u043C\u044B\u0439 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C, \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435 \u043F\u043E\u0447\u0442\u043E\u0432\u044B\u0439 \u043A\u043E\u0434 \u0437\u0430\u043F\u0440\u043E\u0441\u0430 messages.firm.phone=\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u044B\u0439 \u043D\u043E\u043C\u0435\u0440 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0443\u0441\u0442\u044B\u043C temp.simple=\u0410\u043D\u043E\u043C\u0430\u043B\u0438\u044F \u0442\u0435\u043C\u043F\u0435\u0440\u0430\u0442\u0443\u0440\u044B \u0442\u0435\u043B\u0430 @@ -76,7 +76,8 @@ heart.rate.abnormal=\u0421\u0435\u0440\u0434\u0435\u0447\u043D\u044B\u0439 \u044 call.follow=\u0421\u043C\u043E\u0442\u0440\u0438\u0442\u0435\u043B\u044C \u0447\u0430\u0441\u043E\u0432 \u043E\u0442\u043C\u0435\u043D\u0438\u043B \u0432\u0430\u0448\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435 \u043D\u0430 \u0447\u0430\u0441\u0430\u0445 message.chant.video=\u041D\u0435\u0431\u043E\u043B\u044C\u0448\u043E\u0439 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440. messages.title=\u0418\u043D\u0442\u0435\u0440\u043D\u0430\u0446\u0438\u043E\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043A\u0438\u0442\u0430\u0439\u0441\u043A\u043E\u0433\u043E \u044F\u0437\u044B\u043A\u0430 -messages.apply.device.model.error=Unable to find the device model, unable to follow -messages.whether.apply.error=The device application requires administrator review -messages.apply.bind.error=This device has already been bound, cannot be bound again -messages.password.error=Old password incorrect \ No newline at end of file +messages.apply.device.model.error=\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u0430 \u043C\u043E\u0434\u0435\u043B\u044C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430, \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u043E\u0431\u0440\u0430\u0442\u0438\u0442\u044C \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435 +messages.whether.apply.error=\u0417\u0430\u044F\u0432\u043A\u0430 \u043D\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0434\u043E\u043B\u0436\u043D\u0430 \u0431\u044B\u0442\u044C \u0440\u0430\u0441\u0441\u043C\u043E\u0442\u0440\u0435\u043D\u0430 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u043E\u043C. +messages.apply.bind.error=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0443\u0436\u0435 \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043E \u0438 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043E +messages.password.error=\u0421\u0442\u0430\u0440\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430 \u043F\u0430\u0440\u043E\u043B\u044F +messages.query.device.error=\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u043D\u0435 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u0438\u043B\u0438 \u043D\u0435 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043A \u0441\u0435\u0442\u0438 \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_th_TH.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_th_TH.properties new file mode 100644 index 0000000..6193949 --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_th_TH.properties @@ -0,0 +1,85 @@ +messages.title=\u0E20\u0E32\u0E29\u0E32\u0E08\u0E35\u0E19\u0E2A\u0E32\u0E01\u0E25 +messages.success=\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E33\u0E40\u0E23\u0E47\u0E08\u0E43\u0E19\u0E01\u0E32\u0E23\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E07\u0E32\u0E19 +messages.error=\u0E01\u0E32\u0E23\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E25\u0E49\u0E21\u0E40\u0E2B\u0E25\u0E27\u0E42\u0E1B\u0E23\u0E14\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23 +messages.pwd.empty=\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19\u0E27\u0E48\u0E32\u0E07\u0E40\u0E1B\u0E25\u0E48\u0E32 \u0E42\u0E1B\u0E23\u0E14\u0E1B\u0E49\u0E2D\u0E19\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19 +messages.pwd.length=\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19\u0E04\u0E27\u0E23\u0E21\u0E35\u0E04\u0E27\u0E32\u0E21\u0E22\u0E32\u0E27\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07 6-32 \u0E2B\u0E25\u0E31\u0E01 +messages.firm.phone=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E27\u0E48\u0E32\u0E07\u0E44\u0E14\u0E49 +messages.email.subject=\u0E23\u0E2B\u0E31\u0E2A\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E01\u0E25\u0E48\u0E2D\u0E07\u0E08\u0E14\u0E2B\u0E21\u0E32\u0E22 +messages.email.text_pre=\u0E2A\u0E27\u0E31\u0E2A\u0E14\u0E35\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E17\u0E35\u0E48\u0E40\u0E04\u0E32\u0E23\u0E1E: \u0E23\u0E2B\u0E31\u0E2A\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E2D\u0E35\u0E40\u0E21\u0E25\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E04\u0E33\u0E02\u0E2D\u0E19\u0E35\u0E49\u0E04\u0E37\u0E2D: +messages.email.text_tail=,\u0E23\u0E2B\u0E31\u0E2A\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E19\u0E35\u0E49\u0E43\u0E0A\u0E49\u0E44\u0E14\u0E49\u0E20\u0E32\u0E22\u0E43\u0E19 5 \u0E19\u0E32\u0E17\u0E35\u0E42\u0E1B\u0E23\u0E14\u0E1B\u0E49\u0E2D\u0E19\u0E43\u0E19\u0E40\u0E27\u0E25\u0E32\u0E17\u0E35\u0E48\u0E40\u0E2B\u0E21\u0E32\u0E30\u0E2A\u0E21\u0E40\u0E0A\u0E48\u0E19\u0E01\u0E32\u0E23\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E43\u0E0A\u0E48\u0E15\u0E31\u0E27\u0E40\u0E2D\u0E07\u0E42\u0E1B\u0E23\u0E14\u0E25\u0E30\u0E40\u0E27\u0E49\u0E19\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21 (\u0E19\u0E35\u0E48\u0E40\u0E1B\u0E47\u0E19\u0E2D\u0E35\u0E40\u0E21\u0E25\u0E17\u0E35\u0E48\u0E2A\u0E48\u0E07\u0E42\u0E14\u0E22\u0E2D\u0E31\u0E15\u0E42\u0E19\u0E21\u0E31\u0E15\u0E34\u0E42\u0E1B\u0E23\u0E14\u0E2D\u0E22\u0E48\u0E32\u0E15\u0E2D\u0E1A\u0E01\u0E25\u0E31\u0E1A\u0E42\u0E14\u0E22\u0E15\u0E23\u0E07\uFF09 +messages.email.code.expire=CAPTCHA \u0E2B\u0E21\u0E14\u0E2D\u0E32\u0E22\u0E38 +messages.email.code.fail=\u0E23\u0E2B\u0E31\u0E2A\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14 +messages.email.register.exit=\u0E01\u0E25\u0E48\u0E2D\u0E07\u0E08\u0E14\u0E2B\u0E21\u0E32\u0E22\u0E25\u0E07\u0E17\u0E30\u0E40\u0E1A\u0E35\u0E22\u0E19\u0E41\u0E25\u0E49\u0E27 +messages.login.not.exit=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E25\u0E48\u0E2D\u0E07\u0E08\u0E14\u0E2B\u0E21\u0E32\u0E22 \u0E42\u0E1B\u0E23\u0E14\u0E1B\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E48\u0E2D\u0E07\u0E08\u0E14\u0E2B\u0E21\u0E32\u0E22\u0E17\u0E35\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07 +messages.email.stop=\u0E01\u0E25\u0E48\u0E2D\u0E07\u0E08\u0E14\u0E2B\u0E21\u0E32\u0E22\u0E16\u0E39\u0E01\u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19 \u0E42\u0E1B\u0E23\u0E14\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23 +messages.pwd.error=\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19\u0E17\u0E35\u0E48\u0E1B\u0E49\u0E2D\u0E19\u0E44\u0E21\u0E48\u0E16\u0E39\u0E01\u0E15\u0E49\u0E2D\u0E07\u0E42\u0E1B\u0E23\u0E14\u0E1B\u0E49\u0E2D\u0E19\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07 +messages.isPhone.null=\u0E01\u0E23\u0E38\u0E13\u0E32\u0E1C\u0E39\u0E01\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E21\u0E37\u0E2D\u0E16\u0E37\u0E2D\u0E44\u0E27\u0E49\u0E01\u0E48\u0E2D\u0E19 +messages.imei.isNull=imei \u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E23\u0E30\u0E1A\u0E1A\u0E2B\u0E25\u0E31\u0E07\u0E1A\u0E49\u0E32\u0E19 \u0E01\u0E23\u0E38\u0E13\u0E32\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A +messages.imei.notAudit=imei \u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E1C\u0E48\u0E32\u0E19\u0E23\u0E30\u0E1A\u0E1A\u0E1E\u0E37\u0E49\u0E19\u0E2B\u0E25\u0E31\u0E07\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A +messages.maximum.limit.exceeded=\u0E04\u0E38\u0E13\u0E44\u0E14\u0E49\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E43\u0E1A\u0E2A\u0E21\u0E31\u0E04\u0E23\u0E41\u0E25\u0E49\u0E27 6 \u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E2D\u0E37\u0E48\u0E19\u0E44\u0E14\u0E49 +messages.device.phone=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E21\u0E37\u0E2D\u0E16\u0E37\u0E2D\u0E02\u0E2D\u0E07\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E21\u0E48\u0E27\u0E48\u0E32\u0E07\u0E40\u0E1B\u0E25\u0E48\u0E32 +messages.binding.device.error=\u0E04\u0E38\u0E13\u0E44\u0E14\u0E49\u0E1C\u0E39\u0E01\u0E44\u0E27\u0E49\u0E41\u0E25\u0E49\u0E27 \u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E2D\u0E22\u0E39\u0E48\u0E23\u0E30\u0E2B\u0E27\u0E48\u0E32\u0E07\u0E01\u0E32\u0E23\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34 \u0E42\u0E1B\u0E23\u0E14\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E02\u0E2D\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34 +messages.binding.device.isNotNull=\u0E04\u0E38\u0E13\u0E44\u0E14\u0E49\u0E1C\u0E39\u0E01\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E44\u0E27\u0E49\u0E41\u0E25\u0E49\u0E27 +messages.bad.request=\u0E01\u0E32\u0E23\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E2D\u0E19\u0E38\u0E0D\u0E32\u0E15 +messages.not.bind=\u0E01\u0E23\u0E38\u0E13\u0E32\u0E1C\u0E39\u0E01\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C +messages.device.empty=\u0E44\u0E21\u0E48\u0E2A\u0E2D\u0E1A\u0E16\u0E32\u0E21\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C +messages.clock.number=\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32\u0E1B\u0E25\u0E38\u0E01\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19\u0E2A\u0E32\u0E21 +messages.class.number=\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E0A\u0E48\u0E27\u0E07\u0E40\u0E27\u0E25\u0E32\u0E1B\u0E34\u0E14\u0E01\u0E32\u0E23\u0E40\u0E23\u0E35\u0E22\u0E19\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19\u0E2A\u0E32\u0E21\u0E04\u0E23\u0E31\u0E49\u0E07 +messages.admin.operation=\u0E08\u0E33\u0E01\u0E31\u0E14 \u0E01\u0E32\u0E23\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E02\u0E2D\u0E07\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E40\u0E17\u0E48\u0E32\u0E19\u0E31\u0E49\u0E19 +messages.bind.user=\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E1C\u0E39\u0E01\u0E44\u0E27\u0E49\u0E2B\u0E23\u0E37\u0E2D\u0E01\u0E32\u0E23\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E25\u0E49\u0E21\u0E40\u0E2B\u0E25\u0E27 +messages.binding.video.type=\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D \u0E42\u0E1B\u0E23\u0E14\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E1B\u0E23\u0E30\u0E40\u0E20\u0E17\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D\u0E43\u0E19 Binding +messages.user.hasLogin=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E44\u0E14\u0E49\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A\u0E43\u0E19\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E2D\u0E37\u0E48\u0E19\u0E41\u0E25\u0E49\u0E27 +messages.apply.error=\u0E04\u0E38\u0E13\u0E44\u0E14\u0E49\u0E2A\u0E21\u0E31\u0E04\u0E23\u0E1C\u0E39\u0E01\u0E1E\u0E31\u0E19\u0E42\u0E1B\u0E23\u0E14\u0E2D\u0E14\u0E17\u0E19\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 +messages.binding.not.error=\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E19\u0E35\u0E49\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E1C\u0E39\u0E01\u0E01\u0E23\u0E38\u0E13\u0E32\u0E1C\u0E39\u0E01\u0E01\u0E48\u0E2D\u0E19\u0E2A\u0E21\u0E31\u0E04\u0E23\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21 +messages.apply.follow.error=\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E23\u0E32\u0E22\u0E19\u0E35\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E41\u0E25\u0E49\u0E27 \u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E23\u0E35\u0E22\u0E01\u0E23\u0E49\u0E2D\u0E07\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E19\u0E43\u0E08\u0E44\u0E14\u0E49 +messages.unbinding.error=\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E23\u0E32\u0E22\u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E1C\u0E39\u0E01 \u0E42\u0E1B\u0E23\u0E14\u0E16\u0E2D\u0E14\u0E23\u0E2B\u0E31\u0E2A\u0E2B\u0E25\u0E31\u0E07\u0E08\u0E32\u0E01\u0E1C\u0E39\u0E01 +messages.user.does.not.exist=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49 +messages.adminId.not.null=\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E47\u0E19 null +messages.userId.not.null=\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E39\u0E49\u0E2A\u0E21\u0E31\u0E04\u0E23\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1B\u0E47\u0E19 null \u0E44\u0E14\u0E49 +messages.deviceAttention.error=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21 +messages.attention.not.exist=\u0E43\u0E1A\u0E2A\u0E21\u0E31\u0E04\u0E23 \u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E04\u0E27\u0E32\u0E21\u0E01\u0E31\u0E07\u0E27\u0E25\u0E44\u0E21\u0E48\u0E21\u0E35\u0E2D\u0E22\u0E39\u0E48 +messages.group.info=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E01\u0E25\u0E38\u0E48\u0E21\u0E0A\u0E31\u0E48\u0E27\u0E04\u0E23\u0E32\u0E27 +rails.count=\u0E08\u0E33\u0E19\u0E27\u0E19\u0E23\u0E31\u0E49\u0E27\u0E23\u0E31\u0E01\u0E29\u0E32\u0E04\u0E27\u0E32\u0E21\u0E1B\u0E25\u0E2D\u0E14\u0E20\u0E31\u0E22\u0E44\u0E21\u0E48\u0E40\u0E01\u0E34\u0E19 4 \u0E0A\u0E34\u0E49\u0E19 +messages.device.owner.info=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E01\u0E31\u0E1A\u0E40\u0E08\u0E49\u0E32\u0E02\u0E2D\u0E07\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E43\u0E19\u0E02\u0E13\u0E30\u0E19\u0E35\u0E49 \u0E01\u0E23\u0E38\u0E13\u0E32\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A +messages.positioning.model.error=\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E42\u0E2B\u0E21\u0E14\u0E15\u0E33\u0E41\u0E2B\u0E19\u0E48\u0E07 \u0E42\u0E1B\u0E23\u0E14\u0E15\u0E34\u0E14\u0E15\u0E48\u0E2D\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32 +message.video.call=\u0E2A\u0E32\u0E22\u0E40\u0E23\u0E35\u0E22\u0E01\u0E40\u0E02\u0E49\u0E32\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D +message.invite.call=\u0E40\u0E0A\u0E34\u0E0D\u0E04\u0E38\u0E13\u0E42\u0E17\u0E23 +message.trigger.sos=\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32\u0E17\u0E23\u0E34\u0E01\u0E40\u0E01\u0E2D\u0E23\u0E4C SOS +message.alarm.sos=\u0E2A\u0E31\u0E0D\u0E0D\u0E32\u0E13\u0E40\u0E15\u0E37\u0E2D\u0E19\u0E20\u0E31\u0E22 +heart.rate.abnormal=\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E01\u0E32\u0E23\u0E40\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07\u0E2B\u0E31\u0E27\u0E43\u0E08\u0E1C\u0E34\u0E14\u0E1B\u0E01\u0E15\u0E34\u0E41\u0E25\u0E30\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E01\u0E32\u0E23\u0E40\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07\u0E2B\u0E31\u0E27\u0E43\u0E08\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E04\u0E37\u0E2D +pre.min=\u0E23\u0E2D\u0E07/\u0E08\u0E38\u0E14 +heart.rate.current=\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E01\u0E32\u0E23\u0E40\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07\u0E2B\u0E31\u0E27\u0E43\u0E08\u0E04\u0E37\u0E2D +temp.abnormal=\u0E21\u0E35\u0E04\u0E27\u0E32\u0E21\u0E1C\u0E34\u0E14\u0E1B\u0E01\u0E15\u0E34\u0E02\u0E2D\u0E07\u0E2D\u0E38\u0E13\u0E2B\u0E20\u0E39\u0E21\u0E34\u0E23\u0E48\u0E32\u0E07\u0E01\u0E32\u0E22,\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E27\u0E31\u0E14\u0E2D\u0E38\u0E13\u0E2B\u0E20\u0E39\u0E21\u0E34\u0E23\u0E48\u0E32\u0E07\u0E01\u0E32\u0E22 +temp.current=\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32\u0E21\u0E35\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E2D\u0E38\u0E13\u0E2B\u0E20\u0E39\u0E21\u0E34\u0E23\u0E48\u0E32\u0E07\u0E01\u0E32\u0E22\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E40\u0E1B\u0E47\u0E19 +heart.simple.abnormal=\u0E2D\u0E31\u0E15\u0E23\u0E32\u0E01\u0E32\u0E23\u0E40\u0E15\u0E49\u0E19\u0E02\u0E2D\u0E07\u0E2B\u0E31\u0E27\u0E43\u0E08\u0E1C\u0E34\u0E14\u0E1B\u0E01\u0E15\u0E34 +temp.simple=\u0E2D\u0E38\u0E13\u0E2B\u0E20\u0E39\u0E21\u0E34\u0E23\u0E48\u0E32\u0E07\u0E01\u0E32\u0E22\u0E1C\u0E34\u0E14\u0E1B\u0E01\u0E15\u0E34 +message.chant.video=\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E44\u0E21\u0E42\u0E04\u0E23\u0E41\u0E0A\u0E17 +accept.chant.video=\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21\u0E44\u0E21\u0E42\u0E04\u0E23\u0E41\u0E0A\u0E17 +messages.ios.chatGroupRemove=%s \u0E02\u0E2D\u0E07 \u3010%s\u3011 \u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E19\u0E43\u0E08\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 +messages.ios.chatGroupDisband=\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E02\u0E2D\u0E07\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 \u3010%s\u3011 \u0E40\u0E23\u0E35\u0E22\u0E01\u0E04\u0E37\u0E19\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32\u0E08\u0E32\u0E01\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E08\u0E32\u0E01\u0E42\u0E23\u0E07\u0E07\u0E32\u0E19 +messages.ios.checkedResults=\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E02\u0E2D\u0E07\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 (%s) \u0E22\u0E34\u0E19\u0E22\u0E2D\u0E21\u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 +messages.ios.applicationRrecord=\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49 (%s) \u0E2A\u0E21\u0E31\u0E04\u0E23\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21 [%s] \u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 +messages.ios.lowBattery=%s \u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32\u0E21\u0E35\u0E41\u0E1A\u0E15\u0E40\u0E15\u0E2D\u0E23\u0E35\u0E48\u0E15\u0E48\u0E33 \u0E01\u0E23\u0E38\u0E13\u0E32\u0E0A\u0E32\u0E23\u0E4C\u0E08! +messages.ios.sos=%s \u0E40\u0E23\u0E35\u0E22\u0E01\u0E43\u0E0A\u0E49 SOS +user.unbind.device=\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E16\u0E2D\u0E14\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C +down.video.call=\u0E27\u0E32\u0E07\u0E2A\u0E32\u0E22\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D\u0E04\u0E2D\u0E25 +enter.rail=\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E16\u0E36\u0E07\u0E1E\u0E37\u0E49\u0E19\u0E17\u0E35\u0E48\u0E1B\u0E25\u0E2D\u0E14\u0E20\u0E31\u0E22 +leave.rail= \u0E2D\u0E2D\u0E01\u0E08\u0E32\u0E01\u0E1E\u0E37\u0E49\u0E19\u0E17\u0E35\u0E48\u0E1B\u0E25\u0E2D\u0E14\u0E20\u0E31\u0E22 +call.follow=\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E02\u0E2D\u0E07\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 \u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 +pre.identity.transer=\u0E04\u0E38\u0E13\u0E44\u0E14\u0E49\u0E43\u0E2A\u0E48\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32 +after.identity.transer=\u0E42\u0E2D\u0E19\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E44\u0E1B\u0E22\u0E31\u0E07 +accept.identity.transer=\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E42\u0E2D\u0E19\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A\u0E43\u0E2B\u0E49\u0E04\u0E38\u0E13 +message.addressBook.max=\u0E08\u0E33\u0E19\u0E27\u0E19\u0E2A\u0E21\u0E32\u0E0A\u0E34\u0E01\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14\u0E02\u0E2D\u0E07\u0E2A\u0E21\u0E38\u0E14\u0E23\u0E32\u0E22\u0E0A\u0E37\u0E48\u0E2D\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E21\u0E35\u0E21\u0E32\u0E01\u0E01\u0E27\u0E48\u0E32 50 \u0E41\u0E25\u0E30\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E15\u0E48\u0E2D\u0E44\u0E1B\u0E44\u0E14\u0E49 +exit.list.video.call=\u0E04\u0E38\u0E13\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E2D\u0E22\u0E39\u0E48\u0E43\u0E19\u0E23\u0E32\u0E22\u0E0A\u0E37\u0E48\u0E2D\u0E2A\u0E21\u0E32\u0E0A\u0E34\u0E01\u0E17\u0E35\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E42\u0E17\u0E23\u0E1C\u0E48\u0E32\u0E19\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D\u0E41\u0E25\u0E30\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E42\u0E17\u0E23\u0E1C\u0E48\u0E32\u0E19\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D\u0E44\u0E14\u0E49 +cannot.video.call=\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E19\u0E35\u0E49\u0E44\u0E21\u0E48\u0E23\u0E2D\u0E07\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E42\u0E17\u0E23\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D +disabled.video.call=\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E16\u0E39\u0E01\u0E1B\u0E34\u0E14\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E43\u0E19\u0E0A\u0E31\u0E49\u0E19\u0E40\u0E23\u0E35\u0E22\u0E19\u0E41\u0E25\u0E30\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E42\u0E17\u0E23\u0E1C\u0E48\u0E32\u0E19\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D\u0E44\u0E14\u0E49 +not.internet.video.call=\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D\u0E41\u0E25\u0E30\u0E2D\u0E32\u0E08\u0E21\u0E35\u0E2A\u0E31\u0E0D\u0E0D\u0E32\u0E13\u0E44\u0E21\u0E48\u0E14\u0E35\u0E43\u0E19\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19\u0E2B\u0E23\u0E37\u0E2D\u0E1B\u0E34\u0E14\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07 +long.time.video.call=\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D\u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E19\u0E32\u0E19\u0E40\u0E01\u0E34\u0E19\u0E44\u0E1B, \u0E01\u0E23\u0E38\u0E13\u0E32\u0E42\u0E17\u0E23\u0E43\u0E19\u0E20\u0E32\u0E22\u0E2B\u0E25\u0E31\u0E07 +process.video.call=\u0E19\u0E32\u0E2C\u0E34\u0E01\u0E32\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E17\u0E23\u0E27\u0E34\u0E14\u0E35\u0E42\u0E2D\u0E42\u0E1B\u0E23\u0E14\u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07\u0E43\u0E19\u0E20\u0E32\u0E22\u0E2B\u0E25\u0E31\u0E07 +phone.has.exit=\u0E21\u0E35\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E25\u0E02\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E21\u0E37\u0E2D\u0E16\u0E37\u0E2D\u0E41\u0E25\u0E49\u0E27 \u0E01\u0E23\u0E38\u0E13\u0E32\u0E01\u0E23\u0E2D\u0E01\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07 +messages.apply.device.model.error=\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E23\u0E38\u0E48\u0E19\u0E02\u0E2D\u0E07\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E41\u0E25\u0E30\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E43\u0E2B\u0E49\u0E04\u0E27\u0E32\u0E21\u0E2A\u0E19\u0E43\u0E08 +messages.whether.apply.error=\u0E41\u0E2D\u0E1B\u0E1E\u0E25\u0E34\u0E40\u0E04\u0E0A\u0E31\u0E19\u0E02\u0E2D\u0E07\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E19\u0E35\u0E49\u0E15\u0E49\u0E2D\u0E07\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E15\u0E23\u0E27\u0E08\u0E2A\u0E2D\u0E1A\u0E42\u0E14\u0E22\u0E1C\u0E39\u0E49\u0E14\u0E39\u0E41\u0E25\u0E23\u0E30\u0E1A\u0E1A +messages.apply.bind.error=\u0E1C\u0E39\u0E01\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E44\u0E27\u0E49\u0E41\u0E25\u0E49\u0E27\u0E41\u0E25\u0E30\u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E1C\u0E39\u0E01\u0E0B\u0E49\u0E33\u0E44\u0E14\u0E49 +messages.ios.automaticApproval=\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49 (%s) \u0E40\u0E02\u0E49\u0E32\u0E23\u0E48\u0E27\u0E21\u0E01\u0E25\u0E38\u0E48\u0E21 +messages.password.error=\u0E23\u0E2B\u0E31\u0E2A\u0E1C\u0E48\u0E32\u0E19\u0E40\u0E01\u0E48\u0E32\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14 +messages.query.device.error=\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E15\u0E48\u0E2D\u0E2B\u0E23\u0E37\u0E2D\u0E44\u0E21\u0E48\u0E2D\u0E2D\u0E19\u0E44\u0E25\u0E19\u0E4C \ No newline at end of file diff --git a/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_tr_TR.properties b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_tr_TR.properties new file mode 100644 index 0000000..f014e57 --- /dev/null +++ b/ecell-internationalize/ecell-internationalize-app/src/main/resources/i18n/messages_tr_TR.properties @@ -0,0 +1,85 @@ +messages.title=\u00C7in dilinin uluslararl\u0131\u011F\u0131 +messages.success=Operasyon ba\u015Far\u0131l\u0131 +messages.error=Operasyon ba\u015Far\u0131s\u0131z oldu. L\u00FCtfen y\u00F6neticilere ba\u011Flant\u0131 edin. +messages.pwd.empty=Parola bo\u015F, l\u00FCtfen parola girin +messages.pwd.length=Giri\u015F parolan\u0131n uzunlu\u011Fu 6-32 bit aras\u0131nda olmal\u0131. +messages.firm.phone=Temas telefonu numaras\u0131 bo\u015F olamaz +messages.email.subject=E-posta do\u011Frulama kodu +messages.email.text_pre=Sevgili kullan\u0131c\u0131, merhaba: Bu iste\u011Fin e-posta do\u011Frulama kodu: +messages.email.text_tail=,Bu do \u011Frulama kodu 5 dakika boyunca ge\u00E7erli. L\u00FCtfen onu zamanl\u0131 bir \u015Fekilde girin. E\u011Fer kendiniz \u00E7al\u0131\u015Fm\u0131yorsan\u0131z, l\u00FCtfen bu e-postay\u0131 g\u00F6rmeyin (bu otomatik g\u00F6nderilen e-postad\u0131r, l\u00FCtfen do\u011Frudan cevap vermeyin\uFF09 +messages.email.code.expire=Denetim kodu ge\u00E7ti +messages.email.code.fail=Denetim kodu yanl\u0131\u015F. +messages.email.register.exit=E-posta kay\u0131tl\u0131 +messages.login.not.exit=E-posta yok, l\u00FCtfen do\u011Fru e-posta adresini girin +messages.email.stop=E-posta etkinle\u015Ftirildi. L\u00FCtfen yard\u0131m i\u00E7in y\u00F6neticiye ba\u011Flant\u0131 edin +messages.pwd.error=Girdi\u011Fi parola yanl\u0131\u015F. L\u00FCtfen yeniden girin. +messages.isPhone.null=L\u00FCtfen \u00F6nce telefonunuzu ba\u011Flay\u0131n. +messages.imei.isNull=Bu IMEI arka u\u00E7 sisteminde bulunmuyor. L\u00FCtfen y\u00F6netimle temas edin. +messages.imei.notAudit=Bu imei arka planda ge\u00E7medi l\u00FCtfen y\u00F6neticiyle ileti\u015Fime ge\u00E7in +messages.maximum.limit.exceeded=6 cihaz i\u00E7in zaten uygulad\u0131n\u0131z ve ba\u015Fka bir cihaz eklemezsiniz. +messages.device.phone=Ayg\u0131t telefon numaras\u0131 bo\u015F olamaz +messages.binding.device.error=Ayg\u0131t\u0131 zaten ba\u011Flad\u0131n\u0131z. Y\u00F6netici \u015Fu anda onay ediyor. L\u00FCtfen onay i\u00E7in y\u00F6neticiye ileti\u015Fim edin. +messages.binding.device.isNotNull=Bu cihaz\u0131 zaten ba\u011Flad\u0131n. +messages.bad.request=Operasyon izin verilmedi +messages.not.bind=L\u00FCtfen cihaz\u0131 ba\u011Flay\u0131n +messages.device.empty=Hi\u00E7bir ayg\u0131t tap\u0131lmad\u0131 +messages.clock.number=\u00DC\u00E7 alarmdan fazla ekle +messages.class.number=S\u0131n\u0131f yasak d\u00F6nemini eklemek \u00FC\u00E7\u00FCn\u00FC a \u015Famaz. +messages.admin.operation=Sadece y\u00F6netici operasyonlar\u0131na s\u0131n\u0131rl\u0131 +messages.bind.user=Ba\u011Flanmayan ayg\u0131t ya da hesap al\u0131nmad\u0131 +messages.binding.video.type=Ayg\u0131tlar\u0131n bir video t\u00FCr\u00FC ayarlanmad\u0131r. L\u00FCtfen ba\u011Flamadan \u00F6nce video t\u00FCr\u00FCn\u00FC ayarlamak i\u00E7in y\u00F6neticiye ba\u011Flan\u0131n +messages.user.hasLogin=Hesab\u0131n\u0131z ba\u015Fka bir ayg\u0131ta girildi +messages.apply.error=Ba\u011Flant\u0131 i\u00E7in zaten istemi\u015Fsiniz. L\u00FCtfen sab\u0131rl\u0131 olun ve izleme y\u00F6neticisini kontrol etmesini bekleyin. +messages.binding.not.error=Bu ayg\u0131t hen\u00FCz ba\u011Flanmad\u0131. L\u00FCtfen dikkat dilemeden \u00F6nce ba\u011Flay\u0131n. +messages.apply.follow.error=Bu kullan\u0131c\u0131 zaten bir y\u00F6neticidir ve dikkat i\u00E7in uygulayamaz. +messages.unbinding.error=Kullan\u0131c\u0131 ba\u011Flanmad\u0131. L\u00FCtfen ba\u011Fdan sonra ba\u011Flan\u0131n +messages.user.does.not.exist=kullan\u0131c\u0131 yok +messages.adminId.not.null=Y\u00F6netici kimli\u011Fi bo\u015F olamaz +messages.userId.not.null=Uygulama kimli\u011Fi bo\u015F olamaz +messages.deviceAttention.error=Mesaj kay\u0131tlar\u0131 yok +messages.attention.not.exist=Dikkat kay\u0131tlar\u0131 i\u00E7in uygulama yok +messages.group.info=\u015Eu anda grup bilgi mevcut de\u011Fil +rails.count=G\u00FCvenlik \u00E7itlerinin say\u0131s\u0131 4'den fazla olmaz. +messages.device.owner.info=\u015Eu anda hi\u00E7bir ayg\u0131t sahibi bilgi mevcut de\u011Fil. L\u00FCtfen y\u00F6neticiye ba\u011Flant\u0131 edin. +messages.positioning.model.error=Ayg\u0131tlar\u0131n bir pozisyon modu ayarlanmad\u0131r. L\u00FCtfen onu ayarlamak i\u00E7in y\u00F6neticiye ba\u011Flant\u0131 edin. +message.video.call=Video aramas\u0131 +message.invite.call=Seni araman\u0131 davet et. +message.trigger.sos=SOS tetikleyicilerini izle +message.alarm.sos=Polisi aray\u0131n. +heart.rate.abnormal=Kalp h\u0131z\u0131, \u015Fu anda kontrol edilen kalp h\u0131z\u0131 +pre.min=Bir/dakika +heart.rate.current=Saat \u015Fu anda kalp at\u0131\u015F\u0131n\u0131 izliyor +temp.abnormal=Normal v\u00FCcut s\u0131cakl\u0131\u011F\u0131, \u015Fu anda kontrol edilen v\u00FCcut s\u0131cakl\u0131\u011F\u0131 +temp.current=Saat taraf\u0131ndan kontrol edilen \u015Fu anda s\u0131cakl\u0131k +heart.simple.abnormal=Kalp h\u0131z\u0131nda normaller +temp.simple=Normal v\u00FCcut s\u0131cakl\u0131\u011F\u0131 +message.chant.video=Mikro Sohbet Mesajlar\u0131 +accept.chant.video=WeChat mesaj\u0131 al\u0131nd\u0131 +messages.ios.chatGroupRemove=\u3010%s\u3011'in %s dayan\u0131lmaz saati +messages.ios.chatGroupDisband=watch y\u00F6neticisi\u3010%s\u3011 saati fabrika ayarlar\u0131na geri d\u00F6nd\u00FC +messages.ios.checkedResults=Saat y\u00F6neticisi (%s) saati takip etmenizi kabul etti. +messages.ios.applicationRrecord=Kullan\u0131c\u0131 (%s)[%s] saatini izlemek istedi +messages.ios.lowBattery=%s saatinin \u015Fu anki bateri seviyesi d\u00FC\u015F\u00FCk, l\u00FCtfen y\u00FCkleyin! +messages.ios.sos=%s SOS tetikliyor +user.unbind.device=Kullan\u0131c\u0131 Cihaz\u0131 \u00C7\u0131kt\u0131 +down.video.call=Video aramas\u0131n\u0131 kapat\u0131yorum. +enter.rail=G\u00FCvenli b\u00F6lge girin +leave.rail= G\u00FCvenli b\u00F6lgeyi terk et. +call.follow=Saat y\u00F6neticisi sana saatten ayr\u0131ld\u0131. +pre.identity.transer=Saati yerle\u015Ftirdin. +after.identity.transer=M\u00FCd\u00FCr kimli\u011Fini g\u00F6nderme +accept.identity.transer=Y\u00F6netici y\u00F6netici kimli\u011Fini size aktar\u0131r +message.addressBook.max=Ekledi\u011Finiz toplam adres defteri \u00FCyelerin say\u0131s\u0131 50'den fazla ve onlar\u0131 eklemeye devam edemeyiz. +exit.list.video.call=Video arama \u00FCyelerinin listesinde de\u011Filsiniz ve video aramalar\u0131 yapamazs\u0131n\u0131z +cannot.video.call=Bu cihaz video aramalar\u0131n\u0131 desteklemez. +disabled.video.call=Ayg\u0131t \u015Fu and a s\u0131n\u0131f etkisiz durumda ve video aramalar\u0131 yapam\u0131yor +not.internet.video.call=Saat internet ile ba\u011Flant\u0131l\u0131 de\u011Fil, muhtemelen zay\u0131f sinyal veya kapat\u0131lmas\u0131 nedeniyle. +long.time.video.call=Video zaman\u0131 \u00E7ok uzun. L\u00FCtfen sonra tekrar aray\u0131n. +process.video.call=Saat bir video \u00E7a \u011Fr\u0131s\u0131nda. L\u00FCtfen sonra tekrar deneyin. +phone.has.exit=Telefon numaras\u0131 kullan\u0131ld\u0131. L\u00FCtfen yeniden girin. +messages.apply.device.model.error=Ayg\u0131t modelini bulamad\u0131, takip edilemedi +messages.whether.apply.error=Ayg\u0131t uygulamas\u0131 y\u00F6netici g\u00F6zlemi gerekiyor +messages.apply.bind.error=Bu ayg\u0131t zaten ba\u011Fland\u0131, tekrar ba\u011Flanamaz +messages.ios.automaticApproval=Kullan\u0131c\u0131 (%s) gruba kat\u0131ld\u0131 +messages.password.error=Eski parola yanl\u0131\u015F. +messages.query.device.error=Ayg\u0131t internette ba\u011Flanm\u0131yor ya da internette de\u011Fil \ No newline at end of file