From 8cea7a20f2d1f57b2fc57efed861da674f4896af Mon Sep 17 00:00:00 2001 From: AKIRA TAKEDA Date: Wed, 23 Mar 2022 10:22:28 +0900 Subject: [PATCH 1/6] =?UTF-8?q?=E5=A4=9A=E8=A8=80=E8=AA=9E=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C=20=E4=BF=AE=E6=AD=A3=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agileworks/model/ApiSessionResponse.kt | 1 + .../ui/documentweb/DocumentWebFragment.kt | 5 + .../agileworks/view/ui/login/LoginActivity.kt | 15 --- .../view/ui/login/MultilingualControl.kt | 107 ++++++++++-------- app/src/main/res/layout/activity_login.xml | 27 +---- 5 files changed, 65 insertions(+), 90 deletions(-) diff --git a/app/src/main/java/jp/atled/agileworks/model/ApiSessionResponse.kt b/app/src/main/java/jp/atled/agileworks/model/ApiSessionResponse.kt index 04e46625..b87330c0 100644 --- a/app/src/main/java/jp/atled/agileworks/model/ApiSessionResponse.kt +++ b/app/src/main/java/jp/atled/agileworks/model/ApiSessionResponse.kt @@ -15,6 +15,7 @@ data class ResponseSessionUser ( var code: String, var name: String, var loginId: String + //var displayLanguage: String ) @JsonClass(generateAdapter = true) data class ResponseSessionUnit ( diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index d86da916..0bf53323 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -21,6 +21,7 @@ import jp.atled.agileworks.R import jp.atled.agileworks.AwApp import jp.atled.agileworks.databinding.FragmentWebviewDetailBinding import jp.atled.agileworks.model.SessionRepository +import jp.atled.agileworks.view.ui.login.MultilingualControl import kotlinx.android.synthetic.main.fragment_webview_detail.* import java.lang.Exception import kotlin.math.absoluteValue @@ -32,6 +33,7 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { private lateinit var networkEvent: NetworkEvent private lateinit var swipeControl : SwipeControl private lateinit var surveillanceNetwork : SurveillanceNetwork + private lateinit var multilingualControl: MultilingualControl private var webview: WebView? = null private var lastUrl: String? = null private var connectUrl: String? = null @@ -46,6 +48,7 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { setLifecycleOwner(viewLifecycleOwner) } networkEvent = NetworkEvent(viewDataBinding) + multilingualControl = MultilingualControl(requireActivity()) return viewDataBinding.root } @@ -287,6 +290,8 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { setCookie("https://${uri.host}", "JSESSIONID=${sessionId}; Path=/AgileWorks; HttpOnly;Secure;SameSite=None") } if (urlLoading) { + // ToDo 多言語対応 + multilingualControl.setNewLanguage("", webview) webview?.let { it.loadUrl(url!!) } diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginActivity.kt b/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginActivity.kt index 9d2fef87..a1d1fe5d 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginActivity.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginActivity.kt @@ -13,26 +13,11 @@ import jp.atled.agileworks.view.ui.toDirectOpenArguments class LoginActivity : BaseActivity() { private val TAG = "LoginActivity" - private lateinit var multilingualControl: MultilingualControl - override fun onCreate(savedInstanceState: Bundle?) { Log.d(TAG, "call onCreate()") super.onCreate(savedInstanceState) setContentView(R.layout.activity_login) - multilingualControl = MultilingualControl(this) - multilingualControl.multilingualControl() - multilingualControl.setOnItemSelectedListener { newContext -> - newContext?.let { - getSharedPreferences("settings", Context.MODE_PRIVATE).edit().apply() { - putString("localeLanguage", it.resources.configuration.locales[0].language) - putString("localeCountry", it.resources.configuration.locales[0].country) - apply() - } - this.recreate() - } - } - supportFragmentManager.beginTransaction() .replace(R.id.frameLayout, loginFragment()) .commit() diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt b/app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt index ee9bab20..4df19392 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt @@ -1,64 +1,72 @@ package jp.atled.agileworks.view.ui.login -import android.content.ContextWrapper +import android.content.Context import android.content.res.Configuration import android.os.LocaleList -import android.view.View -import android.widget.AdapterView -import android.widget.ArrayAdapter -import android.widget.Spinner -import jp.atled.agileworks.R +import android.webkit.WebView +import androidx.fragment.app.FragmentActivity import java.util.* -class MultilingualControl(var activity: LoginActivity) { - private lateinit var spinner : Spinner - private lateinit var locale: Locale +class MultilingualControl(var activity: FragmentActivity) { - // プルダウン設定値 - private val spinnerItems = arrayOf(activity.baseContext.getString(R.string.login_multilingual_auto), "日本語", "English", "中文(簡体)", "中文(繫体)") + fun setNewLanguage(displayLanguage: String, webView: WebView?) { + // 現在の設定言語取得 + val locale = Locale.getDefault() + // セッション情報で取得した言語情報をLocaleデータに変換する + var newLocale = convLanguageToLocale(displayLanguage) - fun multilingualControl() { - // プルダウン設定 - spinner = activity.findViewById(R.id.multilingual_spinner) - val adapter = ArrayAdapter(activity, R.layout.spinner_item, spinnerItems) - adapter.setDropDownViewResource(R.layout.spinner_dropdown_item) - spinner.adapter = adapter + if (displayLanguage == "auto") { + // autoの場合、「ブラウザ設定に従う」ため、ブラウザの言語設定を取得する + getBrowserLanguage(webView) { browserLanguage -> + newLocale = convLanguageToLocale(browserLanguage) + } + } - // 設定言語取得 - locale = Locale.getDefault() - // プルダウンの初期設定値を設定 - setInitialLanguage() - } + if (locale == newLocale) { + // 現在の言語設定及び新たな言語設定が同じ場合、以降の処理はスキップする + return + } + + // 新たな言語設定を使用してContextを作成する + val newContext = createContext(newLocale) - private fun setInitialLanguage() { - // 設定言語からプルダウンの初期設定値を設定する - when (locale.language) { - "ja" -> { spinner.setSelection(1) } // 日本語 - "en" -> { spinner.setSelection(2) } // English - "zh" -> { - when (locale.country) { - "TW" -> { spinner.setSelection(4) } // 中文(繫体) - else -> { spinner.setSelection(3) } // 中文(簡体) - } + newContext?.let { + activity.getSharedPreferences("settings", Context.MODE_PRIVATE).edit().apply() { + putString("localeLanguage", it.resources.configuration.locales[0].language) + putString("localeCountry", it.resources.configuration.locales[0].country) + apply() } - else -> { spinner.setSelection(1) } // 日本語 + activity.recreate() } } - fun setOnItemSelectedListener(newContext:(ContextWrapper?) -> Unit) { - spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { - override fun onItemSelected(spinner: AdapterView<*>?, view: View?, position: Int, id: Long) { - // 項目が選択された時 - newContext(getNewContext(spinner?.selectedItem.toString())) - } - - override fun onNothingSelected(p0: AdapterView<*>?) { - // アイテムが選択されることなくプルダウンが閉じられた時に呼ばれるので処理なし - newContext(null) - } + private fun convLanguageToLocale(displayLanguage: String): Locale { + return when (displayLanguage) { + "ja" -> { Locale("ja", "JP") } + "en" -> { Locale("en", "US") } + "zh_CN" -> { Locale("zh", "CN") } + "zh_TW" -> { Locale("zh", "TW") } + else -> { Locale("ja", "JP") } + } + } + // ToDo Javascript + private fun getBrowserLanguage(webView: WebView?, browserLanguage:(String) -> Unit) { + webView?.evaluateJavascript("") { result -> + browserLanguage(result) } } + private fun createContext(newLocale: Locale): Context? { + val resources = activity.baseContext.resources + val config = Configuration(resources.configuration) + + val newLocaleList = LocaleList(newLocale) + LocaleList.setDefault(newLocaleList) + config.setLocales(newLocaleList) + + return activity.baseContext.createConfigurationContext(config) + } +/* private fun getNewContext(selectedLanguage: String): ContextWrapper? { val resources = activity.baseContext.resources val config = Configuration(resources.configuration) @@ -80,12 +88,13 @@ class MultilingualControl(var activity: LoginActivity) { private fun convSelectedLanguageToLocale(selectedLanguage: String): Locale { return when (selectedLanguage) { - "自動" -> { activity.applicationContext.resources.configuration.locales[0] } - "日本語" -> { Locale("ja", "JP") } - "English" -> { Locale("en", "US") } - "中文(簡体)" -> { Locale("zh", "CN") } - "中文(繫体)" -> { Locale("zh", "TW") } + //"auto" -> { activity.applicationContext.resources.configuration.locales[0] } + "ja" -> { Locale("ja", "JP") } + "en" -> { Locale("en", "US") } + "zh_CN" -> { Locale("zh", "CN") } + "zh_TW" -> { Locale("zh", "TW") } else -> { Locale("ja", "JP") } } } +*/ } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 290fc338..dcbd25bc 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,6 +1,5 @@ - + - - - - - - - -- GitLab From 39d433bb3682103fb6210f645eae42520920eacb Mon Sep 17 00:00:00 2001 From: AKIRA TAKEDA Date: Wed, 23 Mar 2022 17:14:36 +0900 Subject: [PATCH 2/6] =?UTF-8?q?=E3=83=96=E3=83=A9=E3=82=A6=E3=82=B6?= =?UTF-8?q?=E8=A8=80=E8=AA=9E=E8=A8=AD=E5=AE=9A=E5=8F=96=E5=BE=97JavaScrip?= =?UTF-8?q?t=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jp/atled/agileworks/view/ui/login/MultilingualControl.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt b/app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt index 4df19392..754db127 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt @@ -49,9 +49,9 @@ class MultilingualControl(var activity: FragmentActivity) { else -> { Locale("ja", "JP") } } } - // ToDo Javascript + private fun getBrowserLanguage(webView: WebView?, browserLanguage:(String) -> Unit) { - webView?.evaluateJavascript("") { result -> + webView?.evaluateJavascript("window.navigator.language") { result -> browserLanguage(result) } } -- GitLab From c2e45c37149345e49985473bb1bf184bb4f44847 Mon Sep 17 00:00:00 2001 From: AKIRA TAKEDA Date: Mon, 28 Mar 2022 14:02:07 +0900 Subject: [PATCH 3/6] =?UTF-8?q?=E5=A4=9A=E8=A8=80=E8=AA=9E=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C=20=E7=A2=BA=E8=AA=8D=E7=94=A8=E3=82=B3=E3=83=BC?= =?UTF-8?q?=E3=83=89=E5=AE=9F=E8=A3=85=20=E5=A4=9A=E8=A8=80=E8=AA=9E?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C=E3=82=B3=E3=83=BC=E3=83=89=E3=81=8C=E5=8B=95?= =?UTF-8?q?=E3=81=8B=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E3=81=AB=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agileworks/view/ui/documentweb/DocumentWebClient.kt | 9 ++++++++- .../view/ui/documentweb/DocumentWebFragment.kt | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt index 82812530..9d2269a9 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt @@ -78,7 +78,14 @@ class DocumentWebViewClient(private val webShare: DocumentWebShare): WebViewClie } } } - +/* + // ブラウザの言語設定を取得するJavaScript確認用 + view?.let { + it.evaluateJavascript("window.navigator.language") { result -> + Log.d("AgileWorks debug", "browser language script result: $result") + } + } +*/ // ネットワーク切断時Viewを表示する必要があるか設定する(URL変更時) url?.let { webShare.presenter.updateDisconnectViewDisplayState(it) } // 書類部分のスクロール量を初期化する diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index ec4a3022..00709487 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -298,7 +298,7 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { } if (urlLoading) { // ToDo 多言語対応 - multilingualControl.setNewLanguage("", webview) + //multilingualControl.setNewLanguage("", webview) webview?.let { it.loadUrl(url!!) } -- GitLab From 58115cb9441b837f45fabaf8c657bc2ec4812f26 Mon Sep 17 00:00:00 2001 From: AKIRA TAKEDA Date: Wed, 30 Mar 2022 11:23:07 +0900 Subject: [PATCH 4/6] =?UTF-8?q?=E5=A4=9A=E8=A8=80=E8=AA=9E=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C=20=E5=AE=9F=E8=A3=85=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/ui/documentweb/DocumentWebClient.kt | 9 +--- .../ui/documentweb/DocumentWebFragment.kt | 1 - .../MultilingualControl.kt | 49 ++----------------- .../agileworks/view/ui/login/LoginActivity.kt | 4 +- 4 files changed, 6 insertions(+), 57 deletions(-) rename app/src/main/java/jp/atled/agileworks/view/ui/{login => documentweb}/MultilingualControl.kt (51%) diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt index 9d2269a9..82812530 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebClient.kt @@ -78,14 +78,7 @@ class DocumentWebViewClient(private val webShare: DocumentWebShare): WebViewClie } } } -/* - // ブラウザの言語設定を取得するJavaScript確認用 - view?.let { - it.evaluateJavascript("window.navigator.language") { result -> - Log.d("AgileWorks debug", "browser language script result: $result") - } - } -*/ + // ネットワーク切断時Viewを表示する必要があるか設定する(URL変更時) url?.let { webShare.presenter.updateDisconnectViewDisplayState(it) } // 書類部分のスクロール量を初期化する diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index 00709487..06111dc7 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -21,7 +21,6 @@ import jp.atled.agileworks.R import jp.atled.agileworks.AwApp import jp.atled.agileworks.databinding.FragmentWebviewDetailBinding import jp.atled.agileworks.model.SessionRepository -import jp.atled.agileworks.view.ui.login.MultilingualControl import kotlinx.android.synthetic.main.fragment_webview_detail.* import java.lang.Exception import kotlin.math.absoluteValue diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/MultilingualControl.kt similarity index 51% rename from app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt rename to app/src/main/java/jp/atled/agileworks/view/ui/documentweb/MultilingualControl.kt index 754db127..ae359312 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/login/MultilingualControl.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/MultilingualControl.kt @@ -1,4 +1,4 @@ -package jp.atled.agileworks.view.ui.login +package jp.atled.agileworks.view.ui.documentweb import android.content.Context import android.content.res.Configuration @@ -13,14 +13,7 @@ class MultilingualControl(var activity: FragmentActivity) { // 現在の設定言語取得 val locale = Locale.getDefault() // セッション情報で取得した言語情報をLocaleデータに変換する - var newLocale = convLanguageToLocale(displayLanguage) - - if (displayLanguage == "auto") { - // autoの場合、「ブラウザ設定に従う」ため、ブラウザの言語設定を取得する - getBrowserLanguage(webView) { browserLanguage -> - newLocale = convLanguageToLocale(browserLanguage) - } - } + val newLocale = convLanguageToLocale(displayLanguage) if (locale == newLocale) { // 現在の言語設定及び新たな言語設定が同じ場合、以降の処理はスキップする @@ -42,6 +35,7 @@ class MultilingualControl(var activity: FragmentActivity) { private fun convLanguageToLocale(displayLanguage: String): Locale { return when (displayLanguage) { + "auto" -> { activity.applicationContext.resources.configuration.locales[0] } "ja" -> { Locale("ja", "JP") } "en" -> { Locale("en", "US") } "zh_CN" -> { Locale("zh", "CN") } @@ -50,12 +44,6 @@ class MultilingualControl(var activity: FragmentActivity) { } } - private fun getBrowserLanguage(webView: WebView?, browserLanguage:(String) -> Unit) { - webView?.evaluateJavascript("window.navigator.language") { result -> - browserLanguage(result) - } - } - private fun createContext(newLocale: Locale): Context? { val resources = activity.baseContext.resources val config = Configuration(resources.configuration) @@ -66,35 +54,4 @@ class MultilingualControl(var activity: FragmentActivity) { return activity.baseContext.createConfigurationContext(config) } -/* - private fun getNewContext(selectedLanguage: String): ContextWrapper? { - val resources = activity.baseContext.resources - val config = Configuration(resources.configuration) - - val newLocale = convSelectedLanguageToLocale(selectedLanguage) - if (newLocale.language == locale.language && newLocale.country == locale.country) { - // 同一言語・国の場合、言語設定しない - return null - } - - val newLocaleList = LocaleList(newLocale) - LocaleList.setDefault(newLocaleList) - config.setLocales(newLocaleList) - - val newContext = activity.baseContext.createConfigurationContext(config) - - return ContextWrapper(newContext) - } - - private fun convSelectedLanguageToLocale(selectedLanguage: String): Locale { - return when (selectedLanguage) { - //"auto" -> { activity.applicationContext.resources.configuration.locales[0] } - "ja" -> { Locale("ja", "JP") } - "en" -> { Locale("en", "US") } - "zh_CN" -> { Locale("zh", "CN") } - "zh_TW" -> { Locale("zh", "TW") } - else -> { Locale("ja", "JP") } - } - } -*/ } \ No newline at end of file diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginActivity.kt b/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginActivity.kt index a1d1fe5d..536ab6c1 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginActivity.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/login/LoginActivity.kt @@ -5,12 +5,12 @@ import android.content.Intent import android.content.res.Configuration import android.os.Bundle import android.util.Log +import androidx.appcompat.app.AppCompatActivity import jp.atled.agileworks.R -import jp.atled.agileworks.view.base.BaseActivity import jp.atled.agileworks.view.ui.toDeepLinkArguments import jp.atled.agileworks.view.ui.toDirectOpenArguments -class LoginActivity : BaseActivity() { +class LoginActivity : AppCompatActivity() { private val TAG = "LoginActivity" override fun onCreate(savedInstanceState: Bundle?) { -- GitLab From 9d71a7c4630573ddceb14ccacf17127975a56c26 Mon Sep 17 00:00:00 2001 From: AKIRA TAKEDA Date: Wed, 30 Mar 2022 11:25:53 +0900 Subject: [PATCH 5/6] =?UTF-8?q?=E8=A8=80=E8=AA=9E=E5=88=87=E3=82=8A?= =?UTF-8?q?=E6=9B=BF=E3=81=88=E6=A9=9F=E8=83=BD=E3=81=AB=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E3=81=97=E3=81=A6=E3=81=84=E3=81=9F=E6=96=87=E5=AD=97=E5=88=97?= =?UTF-8?q?=E3=83=AA=E3=82=BD=E3=83=BC=E3=82=B9=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/values-en/strings.xml | 2 -- app/src/main/res/values-ja/strings.xml | 2 -- app/src/main/res/values-zh-rTW/strings.xml | 2 -- app/src/main/res/values-zh/strings.xml | 2 -- app/src/main/res/values/strings.xml | 2 -- 5 files changed, 10 deletions(-) diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index be135251..53b1e84c 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -37,8 +37,6 @@ 再ログイン - language - auto https:// AgileWorks server (example.com[:443]) / diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 0abef278..0c8f7106 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -37,8 +37,6 @@ 再ログイン - language - 自動 https:// AgileWorksサーバ (example.com[:443]) / diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 93dbb2da..649bdb80 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -37,8 +37,6 @@ 再ログイン - language - 自動 https:// AgileWorks服務器 (example.com[:443]) / diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 9f808a08..bfc7083c 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -37,8 +37,6 @@ 再ログイン - language - 自動 https:// AgileWorks服务器 (example.com[:443]) / diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0abef278..0c8f7106 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -37,8 +37,6 @@ 再ログイン - language - 自動 https:// AgileWorksサーバ (example.com[:443]) / -- GitLab From f0480c5963e01deb7048e3f004d2939af8e5124b Mon Sep 17 00:00:00 2001 From: AKIRA TAKEDA Date: Fri, 1 Apr 2022 16:05:05 +0900 Subject: [PATCH 6/6] =?UTF-8?q?=E5=A4=9A=E8=A8=80=E8=AA=9E=E5=AF=BE?= =?UTF-8?q?=E5=BF=9C=20=E3=82=B3=E3=83=BC=E3=83=89=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=83=BB=E5=8B=95=E4=BD=9C=E7=A2=BA=E8=AA=8D=E5=AE=8C=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../atled/agileworks/model/ApiSessionResponse.kt | 4 ++-- .../view/ui/documentweb/DocumentWebFragment.kt | 6 ++++-- .../view/ui/documentweb/MultilingualControl.kt | 15 ++++++++------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/jp/atled/agileworks/model/ApiSessionResponse.kt b/app/src/main/java/jp/atled/agileworks/model/ApiSessionResponse.kt index 6fe0162c..d75f5e7b 100644 --- a/app/src/main/java/jp/atled/agileworks/model/ApiSessionResponse.kt +++ b/app/src/main/java/jp/atled/agileworks/model/ApiSessionResponse.kt @@ -14,8 +14,8 @@ data class SessionResponse( data class ResponseSessionUser ( var code: String, var name: String, - var loginId: String - //var displayLanguage: String + var loginId: String, + var displayLanguage: String ) @JsonClass(generateAdapter = true) data class ResponseSessionUnit ( diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt index 94caf7d3..2362181b 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/DocumentWebFragment.kt @@ -301,8 +301,10 @@ class DocumentWebFragment : Fragment(), DocumentWebPresenter { .apply() } if (urlLoading) { - // ToDo 多言語対応 - //multilingualControl.setNewLanguage("", webview) + // 多言語対応 + response.user.displayLanguage.let { displayLanguage -> + multilingualControl.setNewLanguage(displayLanguage, webview) + } webview?.let { it.loadUrl(url!!) } diff --git a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/MultilingualControl.kt b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/MultilingualControl.kt index ae359312..f097141c 100644 --- a/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/MultilingualControl.kt +++ b/app/src/main/java/jp/atled/agileworks/view/ui/documentweb/MultilingualControl.kt @@ -15,7 +15,7 @@ class MultilingualControl(var activity: FragmentActivity) { // セッション情報で取得した言語情報をLocaleデータに変換する val newLocale = convLanguageToLocale(displayLanguage) - if (locale == newLocale) { + if (locale.language == newLocale.language && locale.country == newLocale.country) { // 現在の言語設定及び新たな言語設定が同じ場合、以降の処理はスキップする return } @@ -35,12 +35,12 @@ class MultilingualControl(var activity: FragmentActivity) { private fun convLanguageToLocale(displayLanguage: String): Locale { return when (displayLanguage) { - "auto" -> { activity.applicationContext.resources.configuration.locales[0] } - "ja" -> { Locale("ja", "JP") } - "en" -> { Locale("en", "US") } - "zh_CN" -> { Locale("zh", "CN") } - "zh_TW" -> { Locale("zh", "TW") } - else -> { Locale("ja", "JP") } + "auto" -> { activity.applicationContext.resources.configuration.locales[0] } // OS設定 + "ja" -> { Locale("ja", "JP") } // 日本語 + "en" -> { Locale("en", "US") } // English + "zh_CN" -> { Locale("zh", "CN") } // 中文(中国) + "zh_TW" -> { Locale("zh", "TW") } // 中文(台湾) + else -> { Locale("ja", "JP") } // 上記以外は日本語 } } @@ -48,6 +48,7 @@ class MultilingualControl(var activity: FragmentActivity) { val resources = activity.baseContext.resources val config = Configuration(resources.configuration) + // リソース情報設定 val newLocaleList = LocaleList(newLocale) LocaleList.setDefault(newLocaleList) config.setLocales(newLocaleList) -- GitLab