jsonwang %!s(int64=3) %!d(string=hai) anos
pai
achega
17f120c5e6

+ 81 - 5
BFCommonKit/Assets/Base.lproj/Localizable.strings

@@ -1,12 +1,88 @@
-/* 
+/*
   Localizble.strings
   Introduce
 
   Created by ak on 2022/1/17.
   Copyright © 2022 BytesFlow. All rights reserved.
 */
+"record_ly"="Hold to Record";
+"record_lz"="Hold to Record";
+"record_pause"="Relase to Pause";
+"record_back"="back";
+"record_delete"="Delete record";
+"record_undo"="Undo record";
+"home_agreement_tittle"="Welcome to DubDub";
+"home_agreement_begin"="Read the full version of Terms of Policy and Privacy Policy.";
+"home_agreement_privacy"="Privacy Policy";
+"home_agreement_service"="Terms of Service";
+"home_agreement_remarks"="DubDub's Terms of service and Privacy Policy provide more details on how we collect and use data.";
+"home_agreement_prompt"="By clicking ""Accept""below , you are indicating that you agree to DubDub's Terms of Service and have read and understood the Privacy Policy.";
+"option_accept"="Accept ";
+"option_refuse"="Refuse ";
+"hone_privacy"="Terms of Service";
+"hone_service"="Privacy Policy";
+"hone_star"="Choose videos/images\n Start narrating the video";
+"grant_camera"="For recording";
+"grant_subtitles"="For generate subtitles";
+"grant_dubbing"="For dubbing";
+"grant_photos"="For select photos";
+"grant_mic"="Microphone permission is denied. Please turn it on in settings";
+"grant_micpass"="You need to turn on \"microphone permission\" to record";
+"grant_micoff"="Microphone permission is denied. Please turn it on in settings";
+"grant_open"="open";
+"album_title"="Choose from album ";
+"album_tips"="DubDub requires access to the album for editing and saving videos (Confirm/Cancel)";
+"album_add"="Add photos";
+"album_fail_none"="No photos or videos";
+"album_fail_none2"="No photos or videos";
+"album_fail_novideo"="No photos available";
+"album_fail_nophoto"="No videos available";
+"option_refresh"="Refresh/Retry";
+"album_fail_load"="Content load failure";
+"album_reloading"="reloading ";
+"album_Grant"="Grant permissions";
+"album_addvideo"="Add videos";
+"album_max_%@_count"="Select a maximum of %1$@ photos/videos";
+"album_fail_proportion"="This proportion of material is not supported temporarily";
+"album_fail_type"="This type of material is not supported at present";
+"album_all"="All ";
+"album_deleted"="Recently Deleted";
+"album_projects"="Recent Projects";
+"album_recents"="Recents";
+"album_album"="Album";
+"album_video"="Videos";
+"album_addphoto_%@_count"="add %1$@ photo/photos";
+"album_deletephoto_%@_count"="delete %1$@ photo/photos";
+"album_editphoto_%@_count"="edit %1$@ photo/photos";
+"sound_record_ture"="Recording-Original sound";
+"sound_record_false"="No recording-Original sound";
+"option_done"="done";
+"option_cancel"="cancel";
+"option_fail_emoji"="do not recognize emoji";
+"option_location"="loc";
+"option_bottom"="bottom";
+"option_middle"="middle";
+"option_top"="top";
+"option_size"="size";
+"option_off"="subtitles off";
+"compose_fail_compose"="video composition failure";
+"compose_retry"="Retry";
+"compose_retry2"="Redo ";
+"compose_retry3"="Please recompose your video";
+"compose_retry4"="Please retry ";
+"compose_fail_lost"="Lost data";
+"compose_fail_export"="export failure ";
+"compose_save"="save to album";
+"compose_fail_delete"="original videos/photo do not exist ";
+"compose_fail_storage"="Insufficient storage space ";
+"compose_fail_records"="records do not exist";
+"savemode_changes"="Discard changes?";
+"savemode_changes2"="Discard changes?";
+"compose_loading"="compositing video";
+"compose_tips_saved"="It has been saved";
+"compose_tips_successfully"="Saved successfully";
+"compose_tips_changes"="Discard changes?";
+"option_confirm"="confirm";
+"savemode_all"="save all";
+"savemode_onlyrecord"="save record only";
 
-"home_msg_welcome" = "Welcome to DubDub";
-
-
- 

+ 75 - 12
BFCommonKit/Assets/en.lproj/Localizable.strings

@@ -1,12 +1,75 @@
-/* 
-  Localizble.strings
-  Introduce
-
-  Created by ak on 2022/1/17.
-  Copyright © 2022 BytesFlow. All rights reserved.
-*/
-
-"home_msg_welcome" = "Welcome to DubDub";
-
-
- 
+"record_ly"="Hold to Record";
+"record_lz"="Hold to Record";
+"record_pause"="Relase to Pause";
+"record_back"="back";
+"record_delete"="Delete record";
+"record_undo"="Undo record";
+"home_agreement_tittle"="Welcome";
+"home_agreement_begin"="Read the full version of Terms of Policy and Privacy Policy.";
+"home_agreement_privacy"="Privacy Policy";
+"home_agreement_service"="Terms of Service";
+"home_agreement_remarks"="DubDub's Terms of service and Privacy Policy provide more details on how we collect and use data.";
+"home_agreement_prompt"="By clicking \"Accept\"below , you are indicating that you agree to DubDub's Terms of Service and have read and understood the Privacy Policy.";
+"option_accept"="Accept ";
+"option_refuse"="Refuse ";
+"hone_privacy"="Terms of Service";
+"hone_service"="Privacy Policy";
+"hone_star"="Choose videos/images\n Start narrating the video";
+"grant_camera"="For recording";
+"grant_subtitles"="For generate subtitles";
+"grant_dubbing"="For dubbing";
+"grant_photos"="For select photos";
+"grant_micpass"="You need to turn on \"microphone permission\" to record";
+"grant_open"="open";
+"album_title"="Choose from album ";
+"album_tips"="DubDub requires access to the album for editing and saving videos (Confirm/Cancel)";
+"album_add"="Add photos";
+"album_fail_none"="No photos or videos";
+"album_fail_none2"="No photos or videos";
+"album_fail_novideo"="No photos available";
+"album_fail_nophoto"="No videos available";
+"option_refresh"="Refresh/Retry";
+"album_fail_load"="Content load failure";
+"album_reloading"="reloading ";
+"album_Grant"="Grant permissions";
+"album_addvideo"="Add videos";
+"album_max_%@_count"="Select a maximum of %1$@ photos/videos";
+"album_fail_proportion"="This proportion of material is not supported temporarily";
+"album_fail_type"="This type of material is not supported at present";
+"album_all"="All ";
+"album_deleted"="Recently Deleted";
+"album_projects"="Recent Projects";
+"album_recents"="Recents";
+"album_album"="Album";
+"album_video"="Videos";
+"sound_record_ture"="Recording-Original sound";
+"sound_record_false"="No recording-Original sound";
+"option_done"="done";
+"option_cancel"="cancel";
+"option_fail_emoji"="do not recognize emoji";
+"option_location"="loc";
+"option_bottom"="↓";
+"option_middle"="◦";
+"option_top"="↑";
+"option_size"="size";
+"option_off"="subtitles off";
+"compose_fail_compose"="video composition failure";
+"compose_retry"="Retry";
+"compose_retry2"="Redo ";
+"compose_retry3"="Please recompose your video";
+"compose_retry4"="Please retry ";
+"compose_fail_lost"="Lost data";
+"compose_fail_export"="export failure ";
+"compose_save"="save to album";
+"compose_fail_delete"="original videos/photo do not exist ";
+"compose_fail_storage"="Insufficient storage space ";
+"compose_fail_records"="records do not exist";
+"savemode_changes"="Discard changes?";
+"savemode_changes2"="Discard changes?";
+"compose_loading"="compositing video";
+"compose_tips_saved"="It has been saved";
+"compose_tips_successfully"="Saved successfully";
+"compose_tips_changes"="Discard changes?";
+"option_confirm"="confirm";
+"savemode_all"="save all";
+"savemode_onlyrecord"="save record only";

+ 0 - 7
BFCommonKit/Assets/id.lproj/Localizable.strings

@@ -1,7 +0,0 @@
-/* 
-  Localizble.strings
-  Introduce
-
-  Created by ak on 2022/1/17.
-  Copyright © 2022 BytesFlow. All rights reserved.
-*/

+ 75 - 7
BFCommonKit/Assets/ja.lproj/Localizable.strings

@@ -1,7 +1,75 @@
-/* 
-  Localizble.strings
-  Introduce
-
-  Created by ak on 2022/1/17.
-  Copyright © 2022 BytesFlow. All rights reserved.
-*/
+"record_ly"="録音を押さえる";
+"record_lz"="記録を押し続ける";
+"record_pause"="手を放して一時停止する";
+"record_back"="ロールバック";
+"record_delete"="レコードの削除";
+"record_undo"="録画の取り消し";
+"home_agreement_tittle"="ようこそ";
+"home_agreement_begin"="視説サービスをご利用になる前に、よくお読みください";
+"home_agreement_privacy"="「ユーザープライバシーポリシー」";
+"home_agreement_service"="「視説ユーザー契約」";
+"home_agreement_remarks"="ユーザーの権利義務と個人情報処理ルールを理解する";
+"home_agreement_prompt"="同意をクリックして、すべての条項を読み、承認したことを示します。";
+"option_accept"="同意する";
+"option_refuse"="同意しない";
+"hone_privacy"="ユーザプロトコル";
+"hone_service"="プライバシー契約";
+"hone_star"="ビデオ/画像の選択\n 吹き替えを始める";
+"grant_camera"="撮影録画用";
+"grant_subtitles"="インターネットによる字幕の生成";
+"grant_dubbing"="ダビング用";
+"grant_photos"="アルバムに入ってビデオを選択";
+"grant_micpass"="マイクの権限が拒否されました。設定で開きます";
+"grant_open"="開く";
+"album_title"="アルバムの素材を選ぶ";
+"album_tips"="アルバム素材を選択するには、まずアルバムの使用権限をください。";
+"album_add"="写真を選びに行く";
+"album_fail_none"="このアルバムには何もない";
+"album_fail_none2"="この薄さには何もない";
+"album_fail_novideo"="写真集";
+"album_fail_nophoto"="このアルバムにはビデオがありません。";
+"option_refresh"="リセット";
+"album_fail_load"="コンテンツのロードに失敗しました";
+"album_reloading"="じゅうか";
+"album_Grant"="権限";
+"album_addvideo"="映像を選ぶ";
+"album_max_%@_count"="最大%1$@マテリアルを選択";
+"album_fail_proportion"="このルーラーのマテリアルはしばらくサポートされていません";
+"album_fail_type"="このタイプの素材はしばらくサポートされていません";
+"album_all"="すべて";
+"album_deleted"="最近の削除";
+"album_projects"="最近のアイテム";
+"album_recents"="最近追加";
+"album_album"="アルバム冊";
+"album_video"="ビデオ";
+"sound_record_ture"="録音時のビデオサウンド";
+"sound_record_false"="録音なしのビデオサウンド";
+"option_done"="完了";
+"option_cancel"="キャンセル";
+"option_fail_emoji"="表情入力不可";
+"option_location"="位置";
+"option_bottom"="下";
+"option_middle"="中";
+"option_top"="上";
+"option_size"="ふごう";
+"option_off"="字幕を閉じる";
+"compose_fail_compose"="合成に失敗しました";
+"compose_retry"="再試行";
+"compose_retry2"="作り直す";
+"compose_retry3"="合成に失敗しました。再試行してください。";
+"compose_retry4"="再試行してください";
+"compose_fail_lost"="すべてのデータ消失";
+"compose_fail_export"="エクスポートに失敗しました";
+"compose_save"="アルバムに保存";
+"compose_fail_delete"="元のビデオ/画像ファイルが削除されました";
+"compose_fail_storage"="ストレージ容量不足";
+"compose_fail_records"="携帯電話の録音ファイルが紛失しました";
+"savemode_changes"="合成中ですが、キャンセルしますか?";
+"savemode_changes2"="合成中ですが、切り替えますか?";
+"compose_loading"="合成中です。。。";
+"compose_tips_saved"="保存済み";
+"compose_tips_successfully"="保存に成功しました";
+"compose_tips_changes"="まだビデオを保存していませんよ。本当に離れますか?";
+"option_confirm"="確定して離れる";
+"savemode_all"="すべて保存";
+"savemode_onlyrecord"="録音部分のみ保存";

+ 75 - 7
BFCommonKit/Assets/ko-KR.lproj/Localizable.strings

@@ -1,7 +1,75 @@
-/* 
-  Localizble.strings
-  Introduce
-
-  Created by ak on 2022/1/17.
-  Copyright © 2022 BytesFlow. All rights reserved.
-*/
+"record_ly"="녹음을 누르다";
+"record_lz"="기록 유지";
+"record_pause"="손을 놓고 잠시 멈추다";
+"record_back"="되돌아가다";
+"record_delete"="녹화 삭제";
+"record_undo"="녹화 취소";
+"home_agreement_tittle"="시작";
+"home_agreement_begin"="시청각 서비스를 사용하기 전에";
+"home_agreement_privacy"="《 프라이버시 정책 》";
+"home_agreement_service"="《사용자 프로토콜》";
+"home_agreement_remarks"="사용자 권리 의무와 개인 정보 처리 규칙을 이해하기 위해";
+"home_agreement_prompt"="동의를 클릭하면 모든 조항을 읽고 인정했다는 것을 표시합니다";
+"option_accept"="동의하다";
+"option_refuse"="동의하지 않다";
+"hone_privacy"="사용자 프로토콜";
+"hone_service"="프라이버시 프로토콜";
+"hone_star"="비디오/사진 선택\n 해설을 시작하다";
+"grant_camera"="촬영을 하기 위해서";
+"grant_subtitles"="인터넷을 위한 자막 생성";
+"grant_dubbing"="더빙을 하기 위해서";
+"grant_photos"="영상을 고르기 위해서 더빙을 하겠습니다";
+"grant_micpass"="마이크 권한이 거부되었습니다. 설정에서 켜십시오";
+"grant_open"="열다";
+"album_title"="앨범 소재를 고르다";
+"album_tips"="앨범 소재를 고르려면 먼저 앨범 사용 권한을 주십시오";
+"album_add"="사진을 고르러 가다";
+"album_fail_none"="이 앨범에는 아무것도 없어요.";
+"album_fail_none2"="이 박자 에는 아무 것 도 없다";
+"album_fail_novideo"="사진첩";
+"album_fail_nophoto"="이 앨범에는 비디오가 없습니다.";
+"option_refresh"="리셋";
+"album_fail_load"="컨텐트 로드 실패";
+"album_reloading"="다시 로드";
+"album_Grant"="권한을 주다";
+"album_addvideo"="영상을 고르러 가다";
+"album_max_%@_count"="최대 개의%1$@소재 선택";
+"album_fail_proportion"="이 축척의 소재는 당분간 지원되지 않습니다";
+"album_fail_type"="이 유형의 소재는 당분간 지원되지 않습니다";
+"album_all"="모조리";
+"album_deleted"="최근 삭제";
+"album_projects"="최근 항목";
+"album_recents"="최근 추가";
+"album_album"="사진첩";
+"album_video"="비디오";
+"sound_record_ture"="녹음한 영상이 있어요. 어쿠스틱.";
+"sound_record_false"="무녹음 영상 어쿠스틱";
+"option_done"="완성";
+"option_cancel"="취소";
+"option_fail_emoji"="이모티콘 입력 안 돼.";
+"option_location"="위치:";
+"option_bottom"="아래";
+"option_middle"="중간";
+"option_top"="위";
+"option_size"="상점";
+"option_off"="제목 닫기";
+"compose_fail_compose"="작성 실패";
+"compose_retry"="다시 시도하다";
+"compose_retry2"="다시 만든다";
+"compose_retry3"="작성 실패 다시 시도하십시오.";
+"compose_retry4"="다시 시도하십시오.";
+"compose_fail_lost"="모든 데이터 손실";
+"compose_fail_export"="내보내기 실패";
+"compose_save"="앨범에 저장";
+"compose_fail_delete"="원본 비디오/사진 파일 삭제";
+"compose_fail_storage"="스토리지 공간 부족";
+"compose_fail_records"="핸드폰 녹음 파일 분실";
+"savemode_changes"="작성 중입니다. 취소하시겠습니까?";
+"savemode_changes2"="작성 중입니다. 전환하시겠습니까?";
+"compose_loading"="작성 중...";
+"compose_tips_saved"="저장됨";
+"compose_tips_successfully"="저장 성공";
+"compose_tips_changes"="당신은 아직 동영상을 저장하지 않았습니다. 떠나시겠습니까?";
+"option_confirm"="떠나다";
+"savemode_all"="모든 내용 저장";
+"savemode_onlyrecord"="녹음 부분만 저장";

+ 0 - 7
BFCommonKit/Assets/ru.lproj/Localizable.strings

@@ -1,7 +0,0 @@
-/* 
-  Localizble.strings
-  Introduce
-
-  Created by ak on 2022/1/17.
-  Copyright © 2022 BytesFlow. All rights reserved.
-*/

+ 75 - 7
BFCommonKit/Assets/vi.lproj/Localizable.strings

@@ -1,7 +1,75 @@
-/* 
-  Localizble.strings
-  Introduce
-
-  Created by ak on 2022/1/17.
-  Copyright © 2022 BytesFlow. All rights reserved.
-*/
+"record_ly"="Bấm và giữ đĩa";
+"record_lz"="Bấm và giữ đĩa";
+"record_pause"="Thả ra và tạm dừng";
+"record_back"="Lùi lại.";
+"record_delete"="Xoá ghi âm";
+"record_undo"="Hủy ghi âm";
+"home_agreement_tittle"="Chào.";
+"home_agreement_begin"="Hãy đọc cẩn thận trước khi sử dụng dịch vụ nói tiếng video.";
+"home_agreement_privacy"="Chính sách cá nhân";
+"home_agreement_service"="Thỏa thuận người dùng";
+"home_agreement_remarks"="Hiểu rõ quyền lợi và nghĩa vụ của người dùng và luật xử lý thông tin cá nhân";
+"home_agreement_prompt"="Việc thực hiện hợp đồng có nghĩa là bạn đã đọc và đồng ý với tất cả các điều khoản";
+"option_accept"="đồng ý!";
+"option_refuse"="không đồng";
+"hone_privacy"="Thỏa thuận người dùng";
+"hone_service"="Thỏa thuận cá nhân";
+"hone_star"="Chọn ảnh\n Giải thích đi";
+"grant_camera"="Để quay phim và ghi âm";
+"grant_subtitles"="Tạo ra phụ đề mạng";
+"grant_dubbing"="Để ghi lại lồng";
+"grant_photos"="Để chọn đoạn video cần lồng";
+"grant_micpass"="Không cho phép vi điện thoại. Hãy bật nó trong thiết lập";
+"grant_open"="Để mở";
+"album_title"="Chọn ảnh tập ảnh";
+"album_tips"="Để chọn tài liệu tập ảnh, xin ban cho phép tập ảnh trước.";
+"album_add"="Chọn ảnh";
+"album_fail_none"="Chẳng có gì trong album này cả.";
+"album_fail_none2"="Chẳng có gì trong album này cả.";
+"album_fail_novideo"="Không có ảnh nào trong album này.";
+"album_fail_nophoto"="Không có đoạn phim nào trong album này.";
+"option_refresh"="Cập nhật";
+"album_fail_load"="Tải về lỗi";
+"album_reloading"="Nạp";
+"album_Grant"="Bỏ quyền hạn";
+"album_addvideo"="Để chọn đoạn video";
+"album_max_%@_count"="Chọn tối đa %1$@ vật liệu";
+"album_fail_proportion"="Lượng vật liệu này không được hỗ trợ tạm thời";
+"album_fail_type"="Loại vật liệu này hiện tại không được hỗ trợ";
+"album_all"="nguyên";
+"album_deleted"="Xóa gần đây";
+"album_projects"="Dự án gần đây";
+"album_recents"="Mới cộng";
+"album_album"="tập";
+"album_video"="video";
+"sound_record_ture"="Âm thanh video với ghi âm";
+"sound_record_false"="Âm thanh video không ghi âm";
+"option_done"="Hoàn";
+"option_cancel"="hủy";
+"option_fail_emoji"="Không thể nhập vào biểu thức";
+"option_location"="Vị trí";
+"option_bottom"="thấp";
+"option_middle"="vào";
+"option_top"="trên";
+"option_size"="Kích cỡ phông";
+"option_off"="Đóng phụ đề";
+"compose_fail_compose"="Lỗi nhân tạo";
+"compose_retry"="thử";
+"compose_retry2"="Comment";
+"compose_retry3"="Thành phần không thành công.";
+"compose_retry4"="Xin hãy thử lại.";
+"compose_fail_lost"="Mọi dữ liệu mất";
+"compose_fail_export"="Lỗi Xuất";
+"compose_save"="Lưu vào tập ảnh";
+"compose_fail_delete"="Tập tin ảnh gốc đã bị xoá";
+"compose_fail_storage"="Không có kho";
+"compose_fail_records"="Đang mất tập tin ghi âm điện thoại di động.";
+"savemode_changes"="Thành phần đang được sắp xếp, anh có muốn hủy không?";
+"savemode_changes2"="Thành phần đang được sắp xếp, anh có muốn thay đổi không?";
+"compose_loading"="Được tổng hợp...";
+"compose_tips_saved"="Lưu";
+"compose_tips_successfully"="Lưu thành công";
+"compose_tips_changes"="Anh vẫn chưa lưu lại đoạn video, anh có chắc là muốn đi không?";
+"option_confirm"="Anh có chắc là đi không?";
+"savemode_all"="Lưu lại mọi thứ";
+"savemode_onlyrecord"="Lưu chỉ phần đã ghi lại";

+ 75 - 9
BFCommonKit/Assets/zh-Hans.lproj/Localizable.strings

@@ -1,9 +1,75 @@
-/* 
-  Localizble.strings
-  Introduce
-
-  Created by ak on 2022/1/17.
-  Copyright © 2022 BytesFlow. All rights reserved.
-*/
-"home_msg_welcome" = "环境使用";
-
+"record_ly"="按住 录音";
+"record_lz"="按住 录制";
+"record_pause"="松手 暂停";
+"record_back"="回退";
+"record_delete"="删除录制";
+"record_undo"="撤销录制";
+"home_agreement_tittle"="欢迎使用";
+"home_agreement_begin"="在您使用视说服务前,请认真阅读";
+"home_agreement_privacy"="《用户隐私政策》";
+"home_agreement_service"="《视说用户协议》";
+"home_agreement_remarks"="以了解用户权利义务和个人信息处理规则";
+"home_agreement_prompt"="点击同意表示您已阅读并且认可所有条款";
+"option_accept"="同意";
+"option_refuse"="不同意";
+"hone_privacy"="用户协议";
+"hone_service"="隐私协议";
+"hone_star"="选择视频/图片\n开始讲解";
+"grant_camera"="点击\"允许\",可进行拍摄录制";
+"grant_subtitles"="点击\"允许\",可联网生成字幕";
+"grant_dubbing"="点击\"允许\",可进行录制配音";
+"grant_photos"="点击\"允许\",可进入相册选取视频";
+"grant_micpass"="需要开启「麦克风权限」才可以进行录制";
+"grant_open"="去开启";
+"album_title"="挑选相册素材";
+"album_tips"="要挑选相册素材,请先授予相册使用权限";
+"album_add"="去选照片";
+"album_fail_none"="此相册中什么都没有";
+"album_fail_none2"="此相薄中什么都没有";
+"album_fail_novideo"="此相册中没有照片";
+"album_fail_nophoto"="此相册中没有视频";
+"option_refresh"="刷新";
+"album_fail_load"="内容加载失败";
+"album_reloading"="重新加载";
+"album_Grant"="授予权限";
+"album_addvideo"="去选视频";
+"album_max_%@_count"="最多选择%1$@个素材";
+"album_fail_proportion"="暂不支持该比例的素材";
+"album_fail_type"="暂不支持该类型素材";
+"album_all"="全部";
+"album_deleted"="最近删除";
+"album_projects"="最近项目";
+"album_recents"="最近添加";
+"album_album"="相簿";
+"album_video"="视频";
+"sound_record_ture"="录音时 视频原声";
+"sound_record_false"="未录音时 视频原声";
+"option_done"="完成";
+"option_cancel"="取消";
+"option_fail_emoji"="不能输入表情";
+"option_location"="位置";
+"option_bottom"="下";
+"option_middle"="中";
+"option_top"="上";
+"option_size"="字号";
+"option_off"="关闭字幕";
+"compose_fail_compose"="合成失败";
+"compose_retry"="重试";
+"compose_retry2"="重新制作";
+"compose_retry3"="合成失败请重试";
+"compose_retry4"="请重新尝试";
+"compose_fail_lost"="所有数据丢失";
+"compose_fail_export"="导出失败";
+"compose_save"="保存到相册";
+"compose_fail_delete"="原视频/图片文件被删除";
+"compose_fail_storage"="存储空间不足";
+"compose_fail_records"="手机录音文件丢失";
+"savemode_changes"="正在合成中,是否取消?";
+"savemode_changes2"="正在合成中,是否切换?";
+"compose_loading"="正在合成中。。。";
+"compose_tips_saved"="已保存过了";
+"compose_tips_successfully"="保存成功";
+"compose_tips_changes"="你还未保存视频哦,是否确定离开?";
+"option_confirm"="确定离开";
+"savemode_all"="保存全部内容";
+"savemode_onlyrecord"="仅保存录音部分";

+ 8 - 2
BFCommonKit/Classes/BFCategorys/BFString+Ext.swift

@@ -202,11 +202,17 @@ public extension Optional where Wrapped == String {
 }
 
 
-// add by ak 本地化 e.g. "home_msg_welcome".BFLocale
+/* add by ak 本地化
+ e.g.
+  第一种正常使用
+ Let text = "home_msg_welcome".BFLocale
+ 第二种拼接使用
+ Let text = String(format: "welcome%@enterRoom".BFLocale, "89")
+*/
 public extension String{
     class BFLocaleClass {}
     var BFLocale: String {
-        let noFindStr = "key is not found!"
+        let noFindStr = "key is not found! \(self)"
         let bundlePaths = Bundle(for: BFLocaleClass.self).paths(forResourcesOfType: "bundle", inDirectory: nil)
         guard bundlePaths.count > 0 , let resourcePath = (bundlePaths.first)  else {
             return noFindStr

+ 1 - 1
BFCommonKit/Classes/BFUtility/PQPHAssetVideoParaseUtil.swift

@@ -531,7 +531,7 @@ open class PQPHAssetVideoParaseUtil: NSObject {
                     BFLog(message: "加载中...:\(url)")
                 case .failed, .cancelled, .unknown:
                     DispatchQueue.main.async {
-                        resultHandler(url, nil, startTime, endTime, "导出失败")
+                        resultHandler(url, nil, startTime, endTime, "compose_fail_export".BFLocale)
                     }
                 default:
                     break

+ 60 - 0
BFLocalizedUtil.swift

@@ -0,0 +1,60 @@
+//
+//  BFLocalizedUtil.swift
+//  BFCommonKit
+//
+//  Created by ak on 2022/1/18.
+//
+
+import Foundation
+public let  BFLocalizedUtilAppLanguageKey:String = "AppLanguage"
+
+public class BFLocalizedUtil{
+    
+    
+    /// 取到当前的系统设置的首选语言 zh 中文, en 英语 ,ja 日语, vi 越南语 ,ko 韩语
+    /// - Returns: 首选语言
+    public class func currentLanguage() -> String{
+      
+        let appLanguages:Array? = UserDefaults.standard.object(forKey: "AppleLanguages") as? Array<String>
+        var language = (appLanguages?[0] ?? "en") as String
+        // zh 中文, en 英语 ,ja 日语, vi 越南语 ,ko 韩语
+        if(language.contains("zh")){
+            language = "zh"
+        }
+        if(language.contains("en")){
+            language = "en"
+        }
+        if(language.contains("ja")){
+            language = "ja"
+        }
+        if(language.contains("vi")){
+            language = "vi"
+        }
+        if(language.contains("ko")){
+            language = "ko"
+        }
+        BFLog(2, message: "当前设置的首选语言\(language)")
+        return language
+    }
+    
+    
+    public class func setLanguage(language:String){
+        BFLog(2, message: "当前设置的首选语言\(language)")
+        saveUserDefaults(key: BFLocalizedUtilAppLanguageKey, value: language)
+    
+    }
+    
+    public class func availableLocales() -> Array<String>{
+        var codes = Array<String>.init()
+        for code in NSLocale.availableLocaleIdentifiers{
+            
+            BFLog(2, message: "支持的语言 \(code)")
+            codes.append(code)
+        }
+        return codes
+    }
+    
+
+}
+
+