本記事では、カスタム言語の設定方法について説明します。
1.1. はじめに
SuperApp SDK は、デフォルトで英語、簡体字中国語、繁体字中国語を提供しており、お客様が他の言語をカスタマイズすることもサポートしています。
1.2. 多言語のカスタム設定
SuperApp SDK で使用されるテキストテーブルは以下の通りです。
/*
Localizable.strings
*/
// 基本
"WV_OK" = "OK";
"WV_Cancel" = "キャンセル";
// 更新
"WV_PageLoading" = "読み込み中";
"WV_PullToRefresh" = "プルして更新";
"WV_ReleaseToRefresh" = "離して更新";
"WV_PullToRefresh_Loading" = "読み込み中...";
// 画像の保存
"WV_AskSaveImage" = "画像を保存しますか?";
"WV_SaveImage" = "保存";
"WV_SaveImageSuccess" = "画像の保存に成功しました";
"WV_SaveImageFailed" = "画像の保存に失敗しました";
// 写真撮影
"WV_ChoosePhotoSource" = "画像ソースを選択してください";
"WV_ChooseCamera" = "写真を撮る";
"WV_ChooseVideoCamera" = "ビデオを撮る";
"WV_ChoosePhotoLibrary" = "アルバムから選択";
"WV_ChoosePhotoFromLibrary" = "画像を選択";
"WV_ChoosePhotoLimit" = "最大 %lu 枚の写真を選択";
"WV_ChoosePhotoLimit_Confirm" = "確認";
"WV_ChooseVideoSource" = "ビデオソースを選択してください";
"WV_AddMorePhotos" = "アクセス可能な写真を追加";
"WV_AccessAllPhotos" = "%@ にすべての写真へのアクセスを許可";
"WV_PermissionSetting" = "システム設定でアプリに次の権限を有効にしてください";
"WV_LeavePage" = "このページを離れますか?";
"WV_PromptDefaultContent" = "値を入力してください";
"WV_AlertTitleTips" = "ヒント";
// エラーメッセージ
"WV_ErrorNoNetwork" = "ネットワークに接続できません";
"WV_ErrorSSLError" = "SSL 接続エラー";
"WV_ErrorDownloadFailed" = "ダウンロードに失敗しました";
"WV_ErrorLoadFailed" = "読み込みに失敗しました";
//アクセシビリティ
"mini_app_ok" = "OK";
"mini_app_no" = "いいえ";
"mini_app_about_us" = "バージョン情報";
"mini_app_cancel" = "キャンセル";
"mini_app_name" = "アプリ名";
"mini_app_slogan" = "スローガン";
"mini_app_desc" = "説明";
"mini_app_add_favorite" = "お気に入りに追加";
"mini_app_remove_favorite" = "お気に入りから削除";
"mini_app_favorite_desc" = "このミニアプリをお気に入りに追加しますか?";
"mini_app_generate_qr_code" = "QR コードを生成";
"mini_app_authorize_user_desc" = "サービスを提供するために、以下の情報の取得を申請します。";
"mini_app_permission_tip" = "モバイル設定で位置情報へのアクセスを許可してから、もう一度お試しください。";
//アクセシビリティ
"mini_app_accessibility_back_btn" = "戻るボタン";
"mini_app_accessibility_more_btn" = "その他ボタン";
"mini_app_accessibility_close_btn" = "閉じるボタン";
"mini_app_accessibility_favorite_add_btn" = "お気に入り追加ボタン";
"mini_app_accessibility_favorite_remove_btn" = "お気に入り削除ボタン";
"mini_app_accessibility_generate_qr_code_btn" = "QR コード生成ボタン";
"mini_app_accessibility_about_btn" = "バージョン情報ボタン";
"mini_app_accessibility_cancel_btn" = "キャンセルボタン";
"mini_app_accessibility_ok_btn" = "OK ボタン";
"mini_app_accessibility_no_btn" = "いいえボタン";
//日付ピッカー
"select_date"="日付を選択";
"select_year" = "年";
"select_day" = "日";
"JAN"="1月";
"FEB"="2月";
"MAR"="3月";
"APR"="4月";
"MAY"="5月";
"JUN"="6月";
"JUL"="7月";
"AUG"="8月";
"SEP"="9月";
"OCT"="10月";
"NOV"="11月";
"DEC"="12月";
//エラーページ情報
"miniapp_loading_error_title" = "読み込みに失敗しました";
"miniapp_loading_error_info" = "ミニアプリの読み込みに失敗しました";
"miniapp_loading_error_noNetwork_info" = "ネットワークエラー";
"miniapp_toke_offline_info" = "ミニアプリが見つかりません";
"miniapp_unable_open_info" = "このページを開けません";
"miniapp_page_not_found_info" = "ページが見つかりません";
"miniapp_error_code_tip" = "エラーコード";
"miniapp_error_exit_btn_title" = "終了";
"miniapp_error_refresh_btn_title" = "更新";
"miniapp_add_favorite_title" = "「お気に入り」に追加";
"miniapp_add_favorite_info" = "このミニアプリを「お気に入り」に追加して、すばやくアクセスできるようにしますか?";
// 認証
"miniapp_auth_apply_tip" = "申請先";
"miniapp_auth_reject" = "拒否";
"miniapp_auth_allow" = "許可";
"miniapp_location_tip" = "位置情報へのアクセス";
"miniapp_camera_tip" = "カメラ情報へのアクセス";
"miniapp_album_tip" = "フォトアルバム情報へのアクセス";
"miniapp_bluetooth_tip" = "Bluetooth 情報へのアクセス";
"miniapp_microphone_tip" = "マイク情報へのアクセス";
"miniapp_contacts_tip" = "連絡先リスト情報へのアクセス";
"miniapp_file_tip" = "ファイル情報へのアクセス";
"miniapp_call_tip" = "通話情報へのアクセス";
"miniapp_vibrate_tip" = "デバイスの振動情報へのアクセス";
"miniapp_screen_tip" = "画面情報へのアクセス";
"miniapp_location" = "位置情報";
"miniapp_camera" = "カメラ";
"miniapp_album" = "アルバム";
"miniapp_bluetooth" = "Bluetooth";
"miniapp_microphone" = "マイク";
"miniapp_contacts" = "連絡先";
"miniapp_file" = "ファイル";
"miniapp_call" = "通話";
"miniapp_vibrate" = "振動";
"miniapp_screen" = "画面";
"miniapp_auth_tip" = "以下の情報にアクセスします";
"miniapp_location_desc" = "このミニアプリは、住所の推奨やローカライズされたサービスを提供するために、位置情報にアクセスします";
"miniapp_camera_desc" = "このミニアプリは、写真の撮影や QR コードのスキャンを行うために、カメラにアクセスします";
"miniapp_album_desc" = "このミニアプリは、共有や編集のために画像を選択・アップロードするために、フォトアルバムにアクセスします";
"miniapp_bluetooth_desc" = "このミニアプリは、スマートデバイスに接続し、データインタラクションを可能にするために、Bluetooth にアクセスします";
"miniapp_microphone_desc" = "このミニアプリは、音声入力や音声ベースの機能のために、マイクにアクセスします";
"miniapp_contacts_desc" = "このミニアプリは、連絡先をすばやく見つけたり、友人を招待したりするために、連絡先にアクセスします";
"miniapp_file_desc" = "このミニアプリは、アプリケーションが必要とするドキュメントやリソースファイルを読み取り、管理するために、ファイルにアクセスします";
"miniapp_call_desc" = "このミニアプリは、着信を識別したり、通信関連の機能を強化したりするために、通話履歴にアクセスします";
"miniapp_vibrate_desc" = "このミニアプリは、触覚フィードバックを提供し、操作体験を向上させるために、デバイスの振動コントロールにアクセスします";
"miniapp_screen_desc" = "このミニアプリは、インターフェイスの表示を適応させ、スクリーンショットや画面録画機能をサポートし、ユーザーインタラクションを向上させるために、画面情報にアクセスします";
//「その他」ページ表示情報
"miniapp_more_add_favorite_info" = "お気に入りに追加";
"miniapp_more_remove_favorite_info" = "お気に入りから削除";
"miniapp_more_settings_info" = "設定";
"miniapp_more_copy_link_info" = "リンクをコピー";
"miniapp_more_share_url_info" = "共有";
"miniapp_more_refresh_info" = "更新";
"miniapp_more_about_us_info" = "バージョン情報";
"miniapp_more_copy_success" = "コピーしました";
"miniapp_more_share_success" = "共有に成功しました";
"miniapp_more_favorite_success" = "お気に入りに追加しました";
"miniapp_more_remove_favorite_success" = "お気に入りから削除しました";
"miniapp_about_us_miniapp_name_descrip"= "ミニアプリ名";
"miniapp_about_us_slogan_descrip" = "スローガン";
"miniapp_about_us_miniapp_version_descrip"= "バージョン番号";
"miniapp_about_us_miniapp_descrip"= "説明";
//設定ページ
"miniapp_settings_title" = "設定";
"miniapp_settings_allow_tip" = "\"%@\" に以下の情報へのアクセスを許可";
ベトナム語を例に説明します。
ホストアプリに言語バンドルを追加します。
上記 Localizable.strings 内の文字列をベトナム語に翻訳してください。
欠落している部分がないように注意してください。
スマートフォンの言語をベトナム語に切り替えます。
コンテナの初期化後に、言語バンドルの設定メソッドを呼び出します。

注意事項
言語をスマートフォンの表示言語と連動させる必要がある場合、プロジェクトで次のように設定します: **[PROJECT]** -> **[Localizations]** を選択し、対応する言語を追加します。

|
|
設定
let miniAppInitConfig = EMASMiniAppInitConfig()
miniAppInitConfig.useUniApp = true
miniAppInitConfig.useWindVane = true
miniAppInitConfig.accessKey = "your access key"
miniAppInitConfig.secretKey = "your secret key"
miniAppInitConfig.host = "your Host"
miniAppInitConfig.appCode = "your App Code"
miniAppInitConfig.openLog = true
miniAppInitConfig.needAuthFromApp = true
let miniAppService = EMASMiniAppServiceImpl();
miniAppService.initialize(miniAppInitConfig)
EMASServiceManager.sharedInstance().registerServiceProtocol("EMASMiniAppService", impClass: "EMASMiniAppServiceImpl", target: miniAppService)
// 多言語バンドルの設定
if let bundlePath = Bundle.main.path(forResource: "SALanguage", ofType: "bundle"),let bundle = Bundle(path: bundlePath) {
SAMiniAppUserConfig.localized(with: bundle)
}
// アプリ内言語切り替え設定のサポート
EMASMiniAppPortal.share().setAppLanguage("vi")
