@@ -1152,77 +1152,77 @@ | |||||
"you_get": "Đối phương thưởng cho bạn", | "you_get": "Đối phương thưởng cho bạn", | ||||
"enter_num_qian": "Số lượng hối đổi (đơn vị K)", | "enter_num_qian": "Số lượng hối đổi (đơn vị K)", | ||||
"enter_num_qian1": "Số lượng tiền rút (đơn vị K)", | "enter_num_qian1": "Số lượng tiền rút (đơn vị K)", | ||||
"daily_translate_voucher": "翻译券", | |||||
"msg_notice": "通知消息", | |||||
"select_notice_people": "选择提醒的人", | |||||
"search_phone": "查找手机号", | |||||
"not_have_user": "用户不存在", | |||||
"not_add_Myself": "你不能添加自己", | |||||
"you_are_blaklisted": "对方已拉黑了你", | |||||
"confrim_recovery": "确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)", | |||||
"send_to": "發送到", | |||||
"search_plach": "搜索位置", | |||||
"finding_place": "查找位置", | |||||
"real_time_helper": "实时帮", | |||||
"translation_butler": "翻译管家", | |||||
"travel_butler": "出行管家", | |||||
"translation_butler_tips": "您的实时贴身翻译,随时随地帮您解决语言不通", | |||||
"choose_language": "请选择要翻译的语言", | |||||
"translation_butler_rules": "呼叫管家需要预付H币,管家服务时长为5分钟", | |||||
"translation_butler_scenes": "您当所在场景", | |||||
"translation_butler_scenes_tips": "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!", | |||||
"translation_butler_call": "呼叫管家", | |||||
"travel_my_location": "我的位置", | |||||
"travel_go_where": "你要去哪儿", | |||||
"travel_tips": "当前定位非实时监测,每次需点击“距离查询”按钮查询", | |||||
"travel_check_distance": "距离查询", | |||||
"travel_check_distance_result": "根据定位查询,您的当前距离目标地点相距:", | |||||
"translation_butler_tips2": "当前排队人数过多,感谢您的耐心等待", | |||||
"translation_butler_tips3": "正在为您呼叫管家", | |||||
"translation_butler_wait_people": "等待人数", | |||||
"translation_butler_wait_people_unit": "位", | |||||
"translation_butler_wait_time": "预计还需等待", | |||||
"translation_butler_already_wait": "已等待", | |||||
"translation_butler_cancel": "取消呼叫", | |||||
"translation_butler_wait_service": "等待服务", | |||||
"translation_butler_dialog_title": "实时帮-翻译管家", | |||||
"translation_butler_dialog_order": "/s1通过系统下单", | |||||
"translation_butler_dialog_start_service": "开始服务", | |||||
"translation_butler_dialog_start_chat": "开始聊天", | |||||
"translation_butler_coin_time": "/s1H币//s2分钟", | |||||
"translation_butler_end_service": "结束服务", | |||||
"translation_butler_start_service": "服务开始", | |||||
"translation_butler_service_end": "服务结束", | |||||
"translation_butler_evaluation": "评价", | |||||
"translation_butler_start_tips": "翻译服务已开始,愿本次服务体验愉快", | |||||
"translation_butler_evaluation_tips": "翻译服务已结束,体验愉快就给个评价吧", | |||||
"translation_butler_dialog_tips": "你对本次服务满意吗?", | |||||
"translation_butler_dialog_yes": "满意", | |||||
"translation_butler_dialog_no": "不满意", | |||||
"translation_butler_dialog_submit": "提交评价", | |||||
"translation_pos_1": "服务耐心", | |||||
"translation_pos_2": "快速准时", | |||||
"translation_pos_3": "礼貌热情", | |||||
"translation_pos_4": "沟通顺畅", | |||||
"translation_pos_5": "大神翻译", | |||||
"translation_neg1": "骚扰威胁", | |||||
"translation_neg2": "沟通障碍", | |||||
"translation_neg3": "响应缓慢", | |||||
"translation_neg4": "态度不好", | |||||
"translation_neg5": "翻译不行", | |||||
"translation_scenes_1": "机场/车站", | |||||
"translation_scenes_2": "餐厅/酒店", | |||||
"translation_scenes_3": "KTV/酒吧", | |||||
"translation_scenes_4": "其他", | |||||
"file": "文件", | |||||
"max_file": "文件大于/s1M", | |||||
"translation_input_limit": "还可以输入/s1字", | |||||
"translation_more_desc": "更多描述", | |||||
"feedback_assistant": "反馈小助手", | |||||
"feedback_tips":"有什么问题都可以反馈给我哦", | |||||
"man_retranslate":"人工重译", | |||||
"robot_retranslate":"机器重译", | |||||
"see_original":"查看原文", | |||||
"forward":"转发", | |||||
"copy_download_url":"复制下载地址" | |||||
"daily_translate_voucher": "Phiếu phiên dịch", | |||||
"msg_notice": "Tin nhắn thông báo ", | |||||
"select_notice_people": "Chọn người nhắc nhở", | |||||
"search_phone": " Tìm số điện thoại", | |||||
"not_have_user": " Người dùng không tồn tại ", | |||||
"not_add_Myself": "Bạn không thể thêm chính mình", | |||||
"you_are_blaklisted": " Đối phương đã đưa bạn vào danh sách đen", | |||||
"confrim_recovery": " Có chắc là bạn muốn phục hồi ảnh đã tiêu hủy không?\n (người dùng đã xem có thể xem lại lần nữa", | |||||
"send_to": " Gửi tới ", | |||||
"search_place": "Rà soát địa điểm", | |||||
"finding_place": " Tìm địa điểm", | |||||
"real_time_helper": "Hỗ trợ nhanh", | |||||
"translation_butler": "Trợ lý phiên dịch", | |||||
"travel_butler": " Trợ lý chỉ đường", | |||||
"translation_butler_tips": "Trợ lý dịch thuật giúp bạn giải quyết trở ngại ngôn ngữ", | |||||
"choose_language": " Vui lòng chọn một ngôn ngữ để dịch ", | |||||
"translation_butler_rules": "Gọi trợ lý cần trả H-coin, thời gian sử dụng là 5 phút", | |||||
"translation_butler_scenes": "Tình cảnh hiện nay của bạn", | |||||
"translation_butler_scenes_tips": "Dữ liệu cho thấy, những người dùng đã xác nhận tình cảnh và mô tả rõ vấn đề sẽ được hỗ trợ hiệu quả hơn.", | |||||
"translation_butler_call": "Gọi trợ lý", | |||||
"travel_my_location": " Vị trí của tôi", | |||||
"travel_go_where": " Bạn muốn đi đâu ", | |||||
"travel_tips": "Định vị không đúng, bạn nên bấm \"kiểm tra khoảng cách\"", | |||||
"travel_check_distance": "Kiểm tra khoảng cách", | |||||
"travel_check_distance_result": "Theo vị trí định vị, hiện nay bạn cách mục tiêu có:", | |||||
"translation_butler_tips2": "Hiện số người đang xếp hàng khá đông, cảm ơn bạn đã kiên nhẫn chờ đợi", | |||||
"translation_butler_tips3": "Đang gọi trợ lý", | |||||
"translation_butler_wait_people": "Số người đang xếp hàng", | |||||
"translation_butler_wait_people_unit": "Người", | |||||
"translation_butler_wait_time": "Bạn còn phải đợi", | |||||
"translation_butler_already_wait": " Đã Chờ", | |||||
"translation_butler_cancel": "Hủy dịch vụ", | |||||
"translation_butler_wait_service": "Chờ dịch vụ", | |||||
"translation_butler_dialog_title": "Hỗ trợ nhanh- trợ lý phiên dịch", | |||||
"translation_butler_dialog_order": "Bạn đã đặt dịch vụ qua hệ thống", | |||||
"translation_butler_dialog_start_service": "Dịch vụ bắt đầu", | |||||
"translation_butler_dialog_start_chat": " Bắt đầu trò chuyện ", | |||||
"translation_butler_coin_time": "/s1H coin //s2 phút ", | |||||
"translation_butler_end_service": "Dịch vụ kết thúc", | |||||
"translation_butler_start_service": "Bắt đầu dịch vụ", | |||||
"translation_butler_service_end": "Kết thúc dịch vụ", | |||||
"translation_butler_evaluation": " Đánh giá", | |||||
"translation_butler_start_tips": "Dịch vụ phiên dịch đã bắt đầu, hy vọng có thể khiến bạn hài lòng", | |||||
"translation_butler_evaluation_tips": "Dịch vụ phiên dịch đã kết thúc, hãy cho chúng tôi biết nếu bạn cảm thấy hài lòng.", | |||||
"translation_butler_dialog_tips": " Bạn có hài lòng với dịch vụ này?", | |||||
"translation_butler_dialog_yes": " Hài lòng ", | |||||
"translation_butler_dialog_no": " Không hài lòng ", | |||||
"translation_butler_dialog_submit": " Gửi đánh giá", | |||||
"translation_pos_1": "Kiên nhẫn", | |||||
"translation_pos_2": " Nhanh chóng kịp thời ", | |||||
"translation_pos_3": " Lịch sự nhiệt tình ", | |||||
"translation_pos_4": "Giao tiếp trôi chảy", | |||||
"translation_pos_5": "Dịch quá đỉnh", | |||||
"translation_neg1": " Đe dọa quấy rối ", | |||||
"translation_neg2": "Giao tiếp khó khăn", | |||||
"translation_neg3": "Phản hồi chậm", | |||||
"translation_neg4": " Thái độ không tốt ", | |||||
"translation_neg5": "Phiên dịch không tốt", | |||||
"translation_scenes_1": "Sân bay/ bến xe", | |||||
"translation_scenes_2": " Nhà hàng / khách sạn ", | |||||
"translation_scenes_3": " KTV/ Bar ", | |||||
"translation_scenes_4": " Khác ", | |||||
"file": "file", | |||||
"max_file": "File lớn hơn /s1M", | |||||
"translation_input_limit": "Bạn còn có thể nhập /s1 ký tự", | |||||
"translation_more_desc": "Mô tả thêm ", | |||||
"feedback_assistant": "Trợ giúp phản hồi", | |||||
"feedback_tips": "Nếu gặp phải vấn đề bạn có thể phản hồi với chúng tôi!", | |||||
"man_retranslate": "人工重译", | |||||
"robot_retranslate": "机器重译", | |||||
"see_original": "查看原文", | |||||
"forward": "转发", | |||||
"copy_download_url": "复制下载地址" | |||||
} | } |
@@ -5956,210 +5956,207 @@ class _I18n_vi_VN extends I18n { | |||||
/// "Số lượng tiền rút (đơn vị K)" | /// "Số lượng tiền rút (đơn vị K)" | ||||
@override | @override | ||||
String get enter_num_qian1 => "Số lượng tiền rút (đơn vị K)"; | String get enter_num_qian1 => "Số lượng tiền rút (đơn vị K)"; | ||||
/// "翻译券" | |||||
/// "Phiếu phiên dịch" | |||||
@override | @override | ||||
String get daily_translate_voucher => "翻译券"; | |||||
/// "通知消息" | |||||
String get daily_translate_voucher => "Phiếu phiên dịch"; | |||||
/// "Tin nhắn thông báo " | |||||
@override | @override | ||||
String get msg_notice => "通知消息"; | |||||
/// "选择提醒的人" | |||||
String get msg_notice => "Tin nhắn thông báo "; | |||||
/// "Chọn người nhắc nhở" | |||||
@override | @override | ||||
String get select_notice_people => "选择提醒的人"; | |||||
/// "查找手机号" | |||||
String get select_notice_people => "Chọn người nhắc nhở"; | |||||
/// " Tìm số điện thoại" | |||||
@override | @override | ||||
String get search_phone => "查找手机号"; | |||||
/// "用户不存在" | |||||
String get search_phone => " Tìm số điện thoại"; | |||||
/// " Người dùng không tồn tại " | |||||
@override | @override | ||||
String get not_have_user => "用户不存在"; | |||||
/// "你不能添加自己" | |||||
String get not_have_user => " Người dùng không tồn tại "; | |||||
/// "Bạn không thể thêm chính mình" | |||||
@override | @override | ||||
String get not_add_Myself => "你不能添加自己"; | |||||
/// "对方已拉黑了你" | |||||
String get not_add_Myself => "Bạn không thể thêm chính mình"; | |||||
/// " Đối phương đã đưa bạn vào danh sách đen" | |||||
@override | @override | ||||
String get you_are_blaklisted => "对方已拉黑了你"; | |||||
/// "确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)" | |||||
String get you_are_blaklisted => " Đối phương đã đưa bạn vào danh sách đen"; | |||||
/// " Có chắc là bạn muốn phục hồi ảnh đã tiêu hủy không?\n (người dùng đã xem có thể xem lại lần nữa" | |||||
@override | @override | ||||
String get confrim_recovery => "确定恢复已被焚毁的照片吗?\n(已经看过的用户可以再看一次)"; | |||||
/// "發送到" | |||||
String get confrim_recovery => " Có chắc là bạn muốn phục hồi ảnh đã tiêu hủy không?\n (người dùng đã xem có thể xem lại lần nữa"; | |||||
/// " Gửi tới " | |||||
@override | @override | ||||
String get send_to => "發送到"; | |||||
/// "搜索位置" | |||||
String get send_to => " Gửi tới "; | |||||
/// " Tìm địa điểm" | |||||
@override | @override | ||||
String get search_plach => "搜索位置"; | |||||
/// "查找位置" | |||||
String get finding_place => " Tìm địa điểm"; | |||||
/// "Hỗ trợ nhanh" | |||||
@override | @override | ||||
String get finding_place => "查找位置"; | |||||
/// "实时帮" | |||||
String get real_time_helper => "Hỗ trợ nhanh"; | |||||
/// "Trợ lý phiên dịch" | |||||
@override | @override | ||||
String get real_time_helper => "实时帮"; | |||||
/// "翻译管家" | |||||
String get translation_butler => "Trợ lý phiên dịch"; | |||||
/// " Trợ lý chỉ đường" | |||||
@override | @override | ||||
String get translation_butler => "翻译管家"; | |||||
/// "出行管家" | |||||
String get travel_butler => " Trợ lý chỉ đường"; | |||||
/// "Trợ lý dịch thuật giúp bạn giải quyết trở ngại ngôn ngữ" | |||||
@override | @override | ||||
String get travel_butler => "出行管家"; | |||||
/// "您的实时贴身翻译,随时随地帮您解决语言不通" | |||||
String get translation_butler_tips => "Trợ lý dịch thuật giúp bạn giải quyết trở ngại ngôn ngữ"; | |||||
/// " Vui lòng chọn một ngôn ngữ để dịch " | |||||
@override | @override | ||||
String get translation_butler_tips => "您的实时贴身翻译,随时随地帮您解决语言不通"; | |||||
/// "请选择要翻译的语言" | |||||
String get choose_language => " Vui lòng chọn một ngôn ngữ để dịch "; | |||||
/// "Gọi trợ lý cần trả H-coin, thời gian sử dụng là 5 phút" | |||||
@override | @override | ||||
String get choose_language => "请选择要翻译的语言"; | |||||
/// "呼叫管家需要预付H币,管家服务时长为5分钟" | |||||
String get translation_butler_rules => "Gọi trợ lý cần trả H-coin, thời gian sử dụng là 5 phút"; | |||||
/// "Tình cảnh hiện nay của bạn" | |||||
@override | @override | ||||
String get translation_butler_rules => "呼叫管家需要预付H币,管家服务时长为5分钟"; | |||||
/// "您当所在场景" | |||||
String get translation_butler_scenes => "Tình cảnh hiện nay của bạn"; | |||||
/// "Dữ liệu cho thấy, những người dùng đã xác nhận tình cảnh và mô tả rõ vấn đề sẽ được hỗ trợ hiệu quả hơn." | |||||
@override | @override | ||||
String get translation_butler_scenes => "您当所在场景"; | |||||
/// "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!" | |||||
String get translation_butler_scenes_tips => "Dữ liệu cho thấy, những người dùng đã xác nhận tình cảnh và mô tả rõ vấn đề sẽ được hỗ trợ hiệu quả hơn."; | |||||
/// "Gọi trợ lý" | |||||
@override | @override | ||||
String get translation_butler_scenes_tips => "根据大数据显示,选择了场景并描述问题的用户得到了更有效的帮助哦!"; | |||||
/// "呼叫管家" | |||||
String get translation_butler_call => "Gọi trợ lý"; | |||||
/// " Vị trí của tôi" | |||||
@override | @override | ||||
String get translation_butler_call => "呼叫管家"; | |||||
/// "我的位置" | |||||
String get travel_my_location => " Vị trí của tôi"; | |||||
/// " Bạn muốn đi đâu " | |||||
@override | @override | ||||
String get travel_my_location => "我的位置"; | |||||
/// "你要去哪儿" | |||||
String get travel_go_where => " Bạn muốn đi đâu "; | |||||
/// "Định vị không đúng, bạn nên bấm \"kiểm tra khoảng cách\"" | |||||
@override | @override | ||||
String get travel_go_where => "你要去哪儿"; | |||||
/// "当前定位非实时监测,每次需点击“距离查询”按钮查询" | |||||
@override | |||||
String get travel_tips => "当前定位非实时监测,每次需点击“距离查询”按钮查询"; | |||||
/// "距离查询" | |||||
String get travel_tips => "Định vị không đúng, bạn nên bấm \"kiểm tra khoảng cách\""; | |||||
/// "Kiểm tra khoảng cách" | |||||
@override | @override | ||||
String get travel_check_distance => "距离查询"; | |||||
/// "根据定位查询,您的当前距离目标地点相距:" | |||||
String get travel_check_distance => "Kiểm tra khoảng cách"; | |||||
/// "Theo vị trí định vị, hiện nay bạn cách mục tiêu có:" | |||||
@override | @override | ||||
String get travel_check_distance_result => "根据定位查询,您的当前距离目标地点相距:"; | |||||
/// "当前排队人数过多,感谢您的耐心等待" | |||||
String get travel_check_distance_result => "Theo vị trí định vị, hiện nay bạn cách mục tiêu có:"; | |||||
/// "Hiện số người đang xếp hàng khá đông, cảm ơn bạn đã kiên nhẫn chờ đợi" | |||||
@override | @override | ||||
String get translation_butler_tips2 => "当前排队人数过多,感谢您的耐心等待"; | |||||
/// "正在为您呼叫管家" | |||||
String get translation_butler_tips2 => "Hiện số người đang xếp hàng khá đông, cảm ơn bạn đã kiên nhẫn chờ đợi"; | |||||
/// "Đang gọi trợ lý" | |||||
@override | @override | ||||
String get translation_butler_tips3 => "正在为您呼叫管家"; | |||||
/// "等待人数" | |||||
String get translation_butler_tips3 => "Đang gọi trợ lý"; | |||||
/// "Số người đang xếp hàng" | |||||
@override | @override | ||||
String get translation_butler_wait_people => "等待人数"; | |||||
/// "位" | |||||
String get translation_butler_wait_people => "Số người đang xếp hàng"; | |||||
/// "Người" | |||||
@override | @override | ||||
String get translation_butler_wait_people_unit => "位"; | |||||
/// "预计还需等待" | |||||
String get translation_butler_wait_people_unit => "Người"; | |||||
/// "Bạn còn phải đợi" | |||||
@override | @override | ||||
String get translation_butler_wait_time => "预计还需等待"; | |||||
/// "已等待" | |||||
String get translation_butler_wait_time => "Bạn còn phải đợi"; | |||||
/// " Đã Chờ" | |||||
@override | @override | ||||
String get translation_butler_already_wait => "已等待"; | |||||
/// "取消呼叫" | |||||
String get translation_butler_already_wait => " Đã Chờ"; | |||||
/// "Hủy dịch vụ" | |||||
@override | @override | ||||
String get translation_butler_cancel => "取消呼叫"; | |||||
/// "等待服务" | |||||
String get translation_butler_cancel => "Hủy dịch vụ"; | |||||
/// "Chờ dịch vụ" | |||||
@override | @override | ||||
String get translation_butler_wait_service => "等待服务"; | |||||
/// "实时帮-翻译管家" | |||||
String get translation_butler_wait_service => "Chờ dịch vụ"; | |||||
/// "Hỗ trợ nhanh- trợ lý phiên dịch" | |||||
@override | @override | ||||
String get translation_butler_dialog_title => "实时帮-翻译管家"; | |||||
/// "/s1通过系统下单" | |||||
String get translation_butler_dialog_title => "Hỗ trợ nhanh- trợ lý phiên dịch"; | |||||
/// "Bạn đã đặt dịch vụ qua hệ thống" | |||||
@override | @override | ||||
String get translation_butler_dialog_order => "/s1通过系统下单"; | |||||
/// "开始服务" | |||||
String get translation_butler_dialog_order => "Bạn đã đặt dịch vụ qua hệ thống"; | |||||
/// "Dịch vụ bắt đầu" | |||||
@override | @override | ||||
String get translation_butler_dialog_start_service => "开始服务"; | |||||
/// "开始聊天" | |||||
String get translation_butler_dialog_start_service => "Dịch vụ bắt đầu"; | |||||
/// " Bắt đầu trò chuyện " | |||||
@override | @override | ||||
String get translation_butler_dialog_start_chat => "开始聊天"; | |||||
/// "/s1H币//s2分钟" | |||||
String get translation_butler_dialog_start_chat => " Bắt đầu trò chuyện "; | |||||
/// "/s1H coin //s2 phút " | |||||
@override | @override | ||||
String get translation_butler_coin_time => "/s1H币//s2分钟"; | |||||
/// "结束服务" | |||||
String get translation_butler_coin_time => "/s1H coin //s2 phút "; | |||||
/// "Dịch vụ kết thúc" | |||||
@override | @override | ||||
String get translation_butler_end_service => "结束服务"; | |||||
/// "服务开始" | |||||
String get translation_butler_end_service => "Dịch vụ kết thúc"; | |||||
/// "Bắt đầu dịch vụ" | |||||
@override | @override | ||||
String get translation_butler_start_service => "服务开始"; | |||||
/// "服务结束" | |||||
String get translation_butler_start_service => "Bắt đầu dịch vụ"; | |||||
/// "Kết thúc dịch vụ" | |||||
@override | @override | ||||
String get translation_butler_service_end => "服务结束"; | |||||
/// "评价" | |||||
String get translation_butler_service_end => "Kết thúc dịch vụ"; | |||||
/// " Đánh giá" | |||||
@override | @override | ||||
String get translation_butler_evaluation => "评价"; | |||||
/// "翻译服务已开始,愿本次服务体验愉快" | |||||
String get translation_butler_evaluation => " Đánh giá"; | |||||
/// "Dịch vụ phiên dịch đã bắt đầu, hy vọng có thể khiến bạn hài lòng" | |||||
@override | @override | ||||
String get translation_butler_start_tips => "翻译服务已开始,愿本次服务体验愉快"; | |||||
/// "翻译服务已结束,体验愉快就给个评价吧" | |||||
String get translation_butler_start_tips => "Dịch vụ phiên dịch đã bắt đầu, hy vọng có thể khiến bạn hài lòng"; | |||||
/// "Dịch vụ phiên dịch đã kết thúc, hãy cho chúng tôi biết nếu bạn cảm thấy hài lòng." | |||||
@override | @override | ||||
String get translation_butler_evaluation_tips => "翻译服务已结束,体验愉快就给个评价吧"; | |||||
/// "你对本次服务满意吗?" | |||||
String get translation_butler_evaluation_tips => "Dịch vụ phiên dịch đã kết thúc, hãy cho chúng tôi biết nếu bạn cảm thấy hài lòng."; | |||||
/// " Bạn có hài lòng với dịch vụ này?" | |||||
@override | @override | ||||
String get translation_butler_dialog_tips => "你对本次服务满意吗?"; | |||||
/// "满意" | |||||
String get translation_butler_dialog_tips => " Bạn có hài lòng với dịch vụ này?"; | |||||
/// " Hài lòng " | |||||
@override | @override | ||||
String get translation_butler_dialog_yes => "满意"; | |||||
/// "不满意" | |||||
String get translation_butler_dialog_yes => " Hài lòng "; | |||||
/// " Không hài lòng " | |||||
@override | @override | ||||
String get translation_butler_dialog_no => "不满意"; | |||||
/// "提交评价" | |||||
String get translation_butler_dialog_no => " Không hài lòng "; | |||||
/// " Gửi đánh giá" | |||||
@override | @override | ||||
String get translation_butler_dialog_submit => "提交评价"; | |||||
/// "服务耐心" | |||||
String get translation_butler_dialog_submit => " Gửi đánh giá"; | |||||
/// "Kiên nhẫn" | |||||
@override | @override | ||||
String get translation_pos_1 => "服务耐心"; | |||||
/// "快速准时" | |||||
String get translation_pos_1 => "Kiên nhẫn"; | |||||
/// " Nhanh chóng kịp thời " | |||||
@override | @override | ||||
String get translation_pos_2 => "快速准时"; | |||||
/// "礼貌热情" | |||||
String get translation_pos_2 => " Nhanh chóng kịp thời "; | |||||
/// " Lịch sự nhiệt tình " | |||||
@override | @override | ||||
String get translation_pos_3 => "礼貌热情"; | |||||
/// "沟通顺畅" | |||||
String get translation_pos_3 => " Lịch sự nhiệt tình "; | |||||
/// "Giao tiếp trôi chảy" | |||||
@override | @override | ||||
String get translation_pos_4 => "沟通顺畅"; | |||||
/// "大神翻译" | |||||
String get translation_pos_4 => "Giao tiếp trôi chảy"; | |||||
/// "Dịch quá đỉnh" | |||||
@override | @override | ||||
String get translation_pos_5 => "大神翻译"; | |||||
/// "骚扰威胁" | |||||
String get translation_pos_5 => "Dịch quá đỉnh"; | |||||
/// " Đe dọa quấy rối " | |||||
@override | @override | ||||
String get translation_neg1 => "骚扰威胁"; | |||||
/// "沟通障碍" | |||||
String get translation_neg1 => " Đe dọa quấy rối "; | |||||
/// "Giao tiếp khó khăn" | |||||
@override | @override | ||||
String get translation_neg2 => "沟通障碍"; | |||||
/// "响应缓慢" | |||||
String get translation_neg2 => "Giao tiếp khó khăn"; | |||||
/// "Phản hồi chậm" | |||||
@override | @override | ||||
String get translation_neg3 => "响应缓慢"; | |||||
/// "态度不好" | |||||
String get translation_neg3 => "Phản hồi chậm"; | |||||
/// " Thái độ không tốt " | |||||
@override | @override | ||||
String get translation_neg4 => "态度不好"; | |||||
/// "翻译不行" | |||||
String get translation_neg4 => " Thái độ không tốt "; | |||||
/// "Phiên dịch không tốt" | |||||
@override | @override | ||||
String get translation_neg5 => "翻译不行"; | |||||
/// "机场/车站" | |||||
String get translation_neg5 => "Phiên dịch không tốt"; | |||||
/// "Sân bay/ bến xe" | |||||
@override | @override | ||||
String get translation_scenes_1 => "机场/车站"; | |||||
/// "餐厅/酒店" | |||||
String get translation_scenes_1 => "Sân bay/ bến xe"; | |||||
/// " Nhà hàng / khách sạn " | |||||
@override | @override | ||||
String get translation_scenes_2 => "餐厅/酒店"; | |||||
/// "KTV/酒吧" | |||||
String get translation_scenes_2 => " Nhà hàng / khách sạn "; | |||||
/// " KTV/ Bar " | |||||
@override | @override | ||||
String get translation_scenes_3 => "KTV/酒吧"; | |||||
/// "其他" | |||||
String get translation_scenes_3 => " KTV/ Bar "; | |||||
/// " Khác " | |||||
@override | @override | ||||
String get translation_scenes_4 => "其他"; | |||||
/// "文件" | |||||
String get translation_scenes_4 => " Khác "; | |||||
/// "file" | |||||
@override | @override | ||||
String get file => "文件"; | |||||
/// "文件大于/s1M" | |||||
String get file => "file"; | |||||
/// "File lớn hơn /s1M" | |||||
@override | @override | ||||
String get max_file => "文件大于/s1M"; | |||||
/// "还可以输入/s1字" | |||||
String get max_file => "File lớn hơn /s1M"; | |||||
/// "Bạn còn có thể nhập /s1 ký tự" | |||||
@override | @override | ||||
String get translation_input_limit => "还可以输入/s1字"; | |||||
/// "更多描述" | |||||
String get translation_input_limit => "Bạn còn có thể nhập /s1 ký tự"; | |||||
/// "Mô tả thêm " | |||||
@override | @override | ||||
String get translation_more_desc => "更多描述"; | |||||
/// "反馈小助手" | |||||
String get translation_more_desc => "Mô tả thêm "; | |||||
/// "Trợ giúp phản hồi" | |||||
@override | @override | ||||
String get feedback_assistant => "反馈小助手"; | |||||
/// "有什么问题都可以反馈给我哦" | |||||
String get feedback_assistant => "Trợ giúp phản hồi"; | |||||
/// "Nếu gặp phải vấn đề bạn có thể phản hồi với chúng tôi!" | |||||
@override | @override | ||||
String get feedback_tips => "有什么问题都可以反馈给我哦"; | |||||
String get feedback_tips => "Nếu gặp phải vấn đề bạn có thể phản hồi với chúng tôi!"; | |||||
/// "人工重译" | /// "人工重译" | ||||
@override | @override | ||||
String get man_retranslate => "人工重译"; | String get man_retranslate => "人工重译"; | ||||
@@ -290,12 +290,6 @@ class _FriendPageState extends State<FriendPage> { | |||||
const Color(0xFF088E76), | const Color(0xFF088E76), | ||||
]), | ]), | ||||
onPressed: () async { | onPressed: () async { | ||||
CustomUI.buildContacts(context, I18n.of(context).privacyAgreement, | |||||
I18n.of(context).determine, () { | |||||
Navigator.of(context).pop(); | |||||
showPermission(); | |||||
}, title: I18n.of(context).tip); | |||||
return; | |||||
final PermissionStatus addStatus = await PermissionHandler() | final PermissionStatus addStatus = await PermissionHandler() | ||||
.checkPermissionStatus(PermissionGroup.contacts); | .checkPermissionStatus(PermissionGroup.contacts); | ||||
if ((addStatus == PermissionStatus.unknown || | if ((addStatus == PermissionStatus.unknown || | ||||
@@ -487,7 +481,7 @@ class _FriendPageState extends State<FriendPage> { | |||||
avatar: _contact.avatar, | avatar: _contact.avatar, | ||||
title: Provider.of<RefNameProvider>(context) | title: Provider.of<RefNameProvider>(context) | ||||
.getRefName(_contact.friendId, _contact.name), | .getRefName(_contact.friendId, _contact.name), | ||||
isShowDivder: _isGroupTitle, | |||||
isShowDivder: true, | |||||
groupTitle: _isGroupTitle ? _contact.nameTag : null); | groupTitle: _isGroupTitle ? _contact.nameTag : null); | ||||
}, | }, | ||||
itemCount: friendList.length + _functionButtons.length, | itemCount: friendList.length + _functionButtons.length, | ||||
@@ -6,6 +6,7 @@ import 'package:chat/data/WebData.dart'; | |||||
import 'package:chat/data/constants.dart'; | import 'package:chat/data/constants.dart'; | ||||
import 'package:chat/generated/i18n.dart'; | import 'package:chat/generated/i18n.dart'; | ||||
import 'package:chat/home/VerificationCenter.dart'; | import 'package:chat/home/VerificationCenter.dart'; | ||||
import 'package:chat/home/VipPage.dart'; | |||||
import 'package:chat/home/realtimehelper/translation_evaluation_dialog.dart'; | import 'package:chat/home/realtimehelper/translation_evaluation_dialog.dart'; | ||||
import 'package:chat/models/group_info_model.dart'; | import 'package:chat/models/group_info_model.dart'; | ||||
import 'package:chat/photo/ui/dialog/not_permission_dialog.dart'; | import 'package:chat/photo/ui/dialog/not_permission_dialog.dart'; | ||||
@@ -61,7 +62,17 @@ class CustomUI { | |||||
bool isAd = false, | bool isAd = false, | ||||
bool isMyself = false}) { | bool isMyself = false}) { | ||||
if (UserData().isMan() && !UserData().isVip && !isMyself) { | if (UserData().isMan() && !UserData().isVip && !isMyself) { | ||||
showToast(I18n.of(context).cant_comment); | |||||
CustomUI.buildOneConfirm( | |||||
context, I18n.of(context).cant_comment, I18n.of(context).joinvip, () { | |||||
Navigator.of(context).pop(); | |||||
Navigator.of(context).push( | |||||
new MaterialPageRoute( | |||||
builder: (context) { | |||||
return VipPage(); | |||||
}, | |||||
), | |||||
); | |||||
}); | |||||
return; | return; | ||||
} | } | ||||
if (!UserData().isMan() && !UserData().basicInfo.isAttestation) { | if (!UserData().isMan() && !UserData().basicInfo.isAttestation) { | ||||
@@ -309,14 +320,13 @@ class CustomUI { | |||||
title, | title, | ||||
buildConfirmContent( | buildConfirmContent( | ||||
Container( | Container( | ||||
alignment: Alignment.center, | |||||
alignment: Alignment.center, | |||||
padding: EdgeInsets.only(top: 38.5, bottom: 31.5), | padding: EdgeInsets.only(top: 38.5, bottom: 31.5), | ||||
child: Column( | child: Column( | ||||
children: <Widget>[ | children: <Widget>[ | ||||
Text( | Text( | ||||
tipTitle, | tipTitle, | ||||
textScaleFactor: 1.0, | textScaleFactor: 1.0, | ||||
style: TextStyle( | style: TextStyle( | ||||
fontSize: 14, | fontSize: 14, | ||||
color: Constants.BlackTextColor, | color: Constants.BlackTextColor, | ||||
@@ -1253,11 +1263,10 @@ class CustomUI { | |||||
); | ); | ||||
} | } | ||||
///** isUser 是否是用户,或为 翻译 | |||||
static void buildTranslationHelperOrderDialog(BuildContext context,bool isUser,{String orderId,int scenes=0,String desc}) { | |||||
///** isUser 是否是用户,或为 翻译 | |||||
static void buildTranslationHelperOrderDialog( | |||||
BuildContext context, bool isUser, | |||||
{String orderId, int scenes = 0, String desc}) { | |||||
var scenesList = [ | var scenesList = [ | ||||
I18n.of(context).translation_scenes_1, | I18n.of(context).translation_scenes_1, | ||||
I18n.of(context).translation_scenes_2, | I18n.of(context).translation_scenes_2, | ||||
@@ -1288,85 +1297,111 @@ class CustomUI { | |||||
), | ), | ||||
child: Container( | child: Container( | ||||
// color: Colors.yellow, | // color: Colors.yellow, | ||||
width: double.maxFinite, | |||||
padding: EdgeInsets.all(16), | |||||
child: Column( | |||||
crossAxisAlignment: CrossAxisAlignment.start, | |||||
children: <Widget>[ | |||||
Padding( | |||||
padding: EdgeInsets.only(bottom: 15), | |||||
child: Text( | |||||
I18n.of(context).translation_butler_dialog_title, | |||||
textScaleFactor: 1.0, | |||||
textAlign: TextAlign.left, | |||||
style: TextStyle( | |||||
fontWeight: FontWeight.w500, | |||||
color: AppColors.NewAppbarTextColor, fontSize: 17), | |||||
), | |||||
), | |||||
Text( | |||||
I18n.of(context).translation_butler_dialog_order.replaceAll('/s1',isUser?I18n.of(context).you: 'xxx'), | |||||
textScaleFactor: 1.0, | |||||
textAlign: TextAlign.left, | |||||
style: TextStyle( | |||||
color: AppColors.NewAppbarTextColor, fontSize: 14), | |||||
), | |||||
SizedBox(height: 10,), | |||||
Text( | |||||
'时间:今天11:45 时长:5分钟', | |||||
textScaleFactor: 1.0, | |||||
textAlign: TextAlign.left, | |||||
style: TextStyle( | |||||
color: Color(0xFF797979), fontSize: 11), | |||||
), | |||||
isUser?Container():Text( | |||||
'场景:${scenesList[scenes]}', | |||||
textScaleFactor: 1.0, | |||||
textAlign: TextAlign.left, | |||||
style: TextStyle( | |||||
color: Color(0xFF797979), fontSize: 11), | |||||
), | |||||
isUser?Container():Text( | |||||
'更多描述:$desc}', | |||||
textScaleFactor: 1.0, | |||||
textAlign: TextAlign.left, | |||||
style: TextStyle( | |||||
color: Color(0xFF797979), fontSize: 11), | |||||
), | |||||
// | |||||
Container(margin: EdgeInsets.only(left: 30, right: 30, top: 20,bottom: 10),child: isUser?Container( | |||||
margin: EdgeInsets.only( top: 10), | |||||
height: 36, | |||||
alignment: Alignment.center, | |||||
child: RaisedButton( | |||||
color: Color(0xff3875E9), | |||||
shape: RoundedRectangleBorder( | |||||
borderRadius: BorderRadius.all(Radius.circular(10))), | |||||
child: Padding(padding: EdgeInsets.only(left: 10,right: 10),child: Text( | |||||
I18n.of(context).translation_butler_dialog_start_chat , | |||||
width: double.maxFinite, | |||||
padding: EdgeInsets.all(16), | |||||
child: Column( | |||||
crossAxisAlignment: CrossAxisAlignment.start, | |||||
children: <Widget>[ | |||||
Padding( | |||||
padding: EdgeInsets.only(bottom: 15), | |||||
child: Text( | |||||
I18n.of(context).translation_butler_dialog_title, | |||||
textScaleFactor: 1.0, | |||||
textAlign: TextAlign.left, | |||||
style: TextStyle( | |||||
fontWeight: FontWeight.w500, | |||||
color: AppColors.NewAppbarTextColor, | |||||
fontSize: 17), | |||||
), | |||||
), | |||||
Text( | |||||
I18n.of(context) | |||||
.translation_butler_dialog_order | |||||
.replaceAll( | |||||
'/s1', isUser ? I18n.of(context).you : 'xxx'), | |||||
textScaleFactor: 1.0, | textScaleFactor: 1.0, | ||||
style: TextStyle(color: Colors.white, fontSize: 15,fontWeight: FontWeight.w500), | |||||
),), | |||||
onPressed:(){ | |||||
Navigator.of(context)..pop(); | |||||
} ), | |||||
):CountDownButton( I18n.of(context).translation_butler_dialog_start_service,(){ | |||||
MsgHandler.sendReceiveOrder(orderId); | |||||
Navigator.of(context).pop(); | |||||
}) ,) | |||||
textAlign: TextAlign.left, | |||||
style: TextStyle( | |||||
color: AppColors.NewAppbarTextColor, fontSize: 14), | |||||
), | |||||
SizedBox( | |||||
height: 10, | |||||
), | |||||
Text( | |||||
'时间:今天11:45 时长:5分钟', | |||||
textScaleFactor: 1.0, | |||||
textAlign: TextAlign.left, | |||||
style: | |||||
TextStyle(color: Color(0xFF797979), fontSize: 11), | |||||
), | |||||
isUser | |||||
? Container() | |||||
: Text( | |||||
'场景:${scenesList[scenes]}', | |||||
textScaleFactor: 1.0, | |||||
textAlign: TextAlign.left, | |||||
style: TextStyle( | |||||
color: Color(0xFF797979), fontSize: 11), | |||||
), | |||||
], | |||||
), | |||||
), | |||||
), | |||||
),),),),)); | |||||
isUser | |||||
? Container() | |||||
: Text( | |||||
'更多描述:$desc}', | |||||
textScaleFactor: 1.0, | |||||
textAlign: TextAlign.left, | |||||
style: TextStyle( | |||||
color: Color(0xFF797979), fontSize: 11), | |||||
), | |||||
// | |||||
Container( | |||||
margin: EdgeInsets.only( | |||||
left: 30, right: 30, top: 20, bottom: 10), | |||||
child: isUser | |||||
? Container( | |||||
margin: EdgeInsets.only(top: 10), | |||||
height: 36, | |||||
alignment: Alignment.center, | |||||
child: RaisedButton( | |||||
color: Color(0xff3875E9), | |||||
shape: RoundedRectangleBorder( | |||||
borderRadius: BorderRadius.all( | |||||
Radius.circular(10))), | |||||
child: Padding( | |||||
padding: | |||||
EdgeInsets.only(left: 10, right: 10), | |||||
child: Text( | |||||
I18n.of(context) | |||||
.translation_butler_dialog_start_chat, | |||||
textScaleFactor: 1.0, | |||||
style: TextStyle( | |||||
color: Colors.white, | |||||
fontSize: 15, | |||||
fontWeight: FontWeight.w500), | |||||
), | |||||
), | |||||
onPressed: () { | |||||
Navigator.of(context)..pop(); | |||||
}), | |||||
) | |||||
: CountDownButton( | |||||
I18n.of(context) | |||||
.translation_butler_dialog_start_service, | |||||
() { | |||||
MsgHandler.sendReceiveOrder(orderId); | |||||
Navigator.of(context).pop(); | |||||
}), | |||||
) | |||||
], | |||||
), | |||||
), | |||||
), | |||||
), | |||||
), | |||||
), | |||||
), | |||||
)); | |||||
} | } | ||||
static void buildTranslationEvaluationDialog(BuildContext context) { | static void buildTranslationEvaluationDialog(BuildContext context) { | ||||
@@ -543,6 +543,7 @@ class HttpUtil { | |||||
saveAotuLoginKey(resData, isSaveUserId: false); | saveAotuLoginKey(resData, isSaveUserId: false); | ||||
return; | return; | ||||
} | } | ||||
LocalNotificationUtil.instance.startPush(); | LocalNotificationUtil.instance.startPush(); | ||||
//ChatDataMgr().initMsg(); | //ChatDataMgr().initMsg(); | ||||
Navigator.of(context) | Navigator.of(context) | ||||
@@ -5,6 +5,7 @@ import 'package:chat/generated/i18n.dart'; | |||||
import 'package:chat/home/InformUser.dart'; | import 'package:chat/home/InformUser.dart'; | ||||
import 'package:chat/home/ProfilePage.dart'; | import 'package:chat/home/ProfilePage.dart'; | ||||
import 'package:chat/home/ProgramDetail.dart'; | import 'package:chat/home/ProgramDetail.dart'; | ||||
import 'package:chat/home/VipPage.dart'; | |||||
import 'package:chat/models/ref_name_provider.dart'; | import 'package:chat/models/ref_name_provider.dart'; | ||||
import 'package:chat/utils/CustomUI.dart'; | import 'package:chat/utils/CustomUI.dart'; | ||||
import 'package:chat/utils/HttpUtil.dart'; | import 'package:chat/utils/HttpUtil.dart'; | ||||
@@ -85,7 +86,7 @@ class _MessageBoxState extends State<MessageBox> { | |||||
), | ), | ||||
); | ); | ||||
} else if (str == 'black') { | } else if (str == 'black') { | ||||
HttpUtil().blackUser(userId, () {}); | |||||
HttpUtil().blackUser(userId, () {}); | |||||
} else if (str == 'noContent') { | } else if (str == 'noContent') { | ||||
var data = { | var data = { | ||||
"userId": UserData().basicInfo.userId, | "userId": UserData().basicInfo.userId, | ||||
@@ -394,7 +395,19 @@ class _MessageBoxState extends State<MessageBox> { | |||||
} | } | ||||
: () async { | : () async { | ||||
if ((UserData().isMan() && !UserData().isVip)) { | if ((UserData().isMan() && !UserData().isVip)) { | ||||
showToast(I18n.of(context).cannot_join); | |||||
CustomUI.buildOneConfirm( | |||||
context, | |||||
I18n.of(context).cannot_join, | |||||
I18n.of(context).joinvip, () { | |||||
Navigator.of(context).pop(); | |||||
Navigator.of(context).push( | |||||
new MaterialPageRoute( | |||||
builder: (context) { | |||||
return VipPage(); | |||||
}, | |||||
), | |||||
); | |||||
}); | |||||
return; | return; | ||||
} | } | ||||
if ((!UserData().isMan() && | if ((!UserData().isMan() && | ||||
@@ -481,7 +494,7 @@ class _MessageBoxState extends State<MessageBox> { | |||||
_buildTimebox(data), | _buildTimebox(data), | ||||
_buildImgSet(data), | _buildImgSet(data), | ||||
_buildImgList(data), | _buildImgList(data), | ||||
widget.isDetail ? Container() : _buildDivder(), | |||||
widget.isDetail ? Container() : _buildDivder(), | |||||
_buildIconButtonList(data), | _buildIconButtonList(data), | ||||
//_buildContent(), | //_buildContent(), | ||||
], | ], | ||||
@@ -2,6 +2,7 @@ import 'package:chat/models/UserInfo.dart'; | |||||
import 'package:chat/utils/HttpUtil.dart'; | import 'package:chat/utils/HttpUtil.dart'; | ||||
import 'package:chat/utils/conversation_table.dart'; | import 'package:chat/utils/conversation_table.dart'; | ||||
import 'package:chat/utils/sql_util.dart'; | import 'package:chat/utils/sql_util.dart'; | ||||
import 'package:chat/utils/TokenMgr.dart'; | |||||
class FriendListMgr { | class FriendListMgr { | ||||
// 工厂模式 | // 工厂模式 | ||||
@@ -76,8 +77,7 @@ class FriendListMgr { | |||||
} | } | ||||
//删除所有好友 | //删除所有好友 | ||||
deleteAllFriend(){ | |||||
deleteAllFriend() { | |||||
friendList.clear(); | friendList.clear(); | ||||
SqlUtil.friendTableModel.clear(); | SqlUtil.friendTableModel.clear(); | ||||
} | } | ||||
@@ -112,4 +112,19 @@ class FriendListMgr { | |||||
} | } | ||||
} | } | ||||
} | } | ||||
//从服务器校验好友 | |||||
checkFromServer(String sign) async { | |||||
List<FriendModel> friendList = | |||||
await SqlUtil.friendTableModel.getAllConversation(); | |||||
List idList = []; | |||||
for (var model in friendList) { | |||||
idList.add(model.friendId); | |||||
} | |||||
idList.sort(); | |||||
String md5 = TokenMgr().generateMd5(idList.join(',')); | |||||
if (friendList.length == 0 || md5 != sign) { | |||||
getFriendListFromServer(); | |||||
} | |||||
} | |||||
} | } |
@@ -80,7 +80,7 @@ packages: | |||||
description: | description: | ||||
path: "." | path: "." | ||||
ref: HEAD | ref: HEAD | ||||
resolved-ref: a5158bdf4d39186bca8407575fcee06f3a720a95 | |||||
resolved-ref: c623cb92b0d9f84afbbedce5b25162732e65cef0 | |||||
url: "https://github.com/randomjoho/audioplayer.git" | url: "https://github.com/randomjoho/audioplayer.git" | ||||
source: git | source: git | ||||
version: "0.5.2" | version: "0.5.2" | ||||