Commit 954107fa authored by Govind Dixit's avatar Govind Dixit

feat: add multi language support

parent a4213242
...@@ -4,6 +4,8 @@ import DrawableHelper ...@@ -4,6 +4,8 @@ import DrawableHelper
import android.app.Activity import android.app.Activity
import android.app.AlertDialog import android.app.AlertDialog
import android.app.ProgressDialog import android.app.ProgressDialog
import android.content.Context
import android.content.res.Configuration
import android.os.Bundle import android.os.Bundle
import androidx.annotation.IdRes import androidx.annotation.IdRes
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
...@@ -36,6 +38,7 @@ import dagger.android.support.HasSupportFragmentInjector ...@@ -36,6 +38,7 @@ import dagger.android.support.HasSupportFragmentInjector
import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.app_bar.* import kotlinx.android.synthetic.main.app_bar.*
import kotlinx.android.synthetic.main.nav_header.view.* import kotlinx.android.synthetic.main.nav_header.view.*
import java.util.Locale
import javax.inject.Inject import javax.inject.Inject
private const val CURRENT_STATE = "current_state" private const val CURRENT_STATE = "current_state"
...@@ -257,4 +260,53 @@ class MainActivity : AppCompatActivity(), MainView, HasActivityInjector, ...@@ -257,4 +260,53 @@ class MainActivity : AppCompatActivity(), MainView, HasActivityInjector,
progressDialog?.dismiss() progressDialog?.dismiss()
progressDialog = null progressDialog = null
} }
fun changeLanguage(){
val languages = arrayOf("English", "Hindi", "Japanese", "Russian", "Italian")
val builder = AlertDialog.Builder(this)
builder.setTitle("Choose Language")
builder.setSingleChoiceItems(languages,-1) { dialog, which ->
if (which==0){
setLocale("en")
recreate()
}else if (which==1){
setLocale("hi")
recreate()
}else if (which==2){
setLocale("ja")
recreate()
}else if (which==3){
setLocale("ru")
recreate()
}else if (which==4){
setLocale("it")
recreate()
}
dialog.dismiss()
}
val mdialog=builder.create()
mdialog.show()
}
fun setLocale(lang: String) {
val locale = Locale(lang)
Locale.setDefault(locale)
val config = Configuration()
config.locale = locale
baseContext.resources.updateConfiguration(config, baseContext.resources.displayMetrics)
val editor = getSharedPreferences("Settings", Context.MODE_PRIVATE).edit()
editor.putString("My_Lang", lang)
editor.apply()
}
private fun loadLocale(){
val sharedPreferences =getSharedPreferences("settings",Activity.MODE_PRIVATE)
val language = sharedPreferences.getString("My_Lang","")
setLocale(language)
}
} }
...@@ -73,20 +73,22 @@ class SettingsFragment : Fragment(), SettingsView, AdapterView.OnItemClickListen ...@@ -73,20 +73,22 @@ class SettingsFragment : Fragment(), SettingsView, AdapterView.OnItemClickListen
resources.getStringArray(R.array.settings_actions)[1] -> resources.getStringArray(R.array.settings_actions)[1] ->
activity?.startActivity(Intent(activity, PasswordActivity::class.java)) activity?.startActivity(Intent(activity, PasswordActivity::class.java))
resources.getStringArray(R.array.settings_actions)[2] -> shareApp() resources.getStringArray(R.array.settings_actions)[2] -> (activity as? MainActivity)?.changeLanguage()
resources.getStringArray(R.array.settings_actions)[3] -> showAppOnStore() resources.getStringArray(R.array.settings_actions)[3] -> shareApp()
resources.getStringArray(R.array.settings_actions)[4] -> contactSupport() resources.getStringArray(R.array.settings_actions)[4] -> showAppOnStore()
resources.getStringArray(R.array.settings_actions)[5] -> activity?.startActivity( resources.getStringArray(R.array.settings_actions)[5] -> contactSupport()
resources.getStringArray(R.array.settings_actions)[6] -> activity?.startActivity(
context?.webViewIntent( context?.webViewIntent(
getString(R.string.license_url), getString(R.string.license_url),
getString(R.string.title_licence) getString(R.string.title_licence)
) )
) )
resources.getStringArray(R.array.settings_actions)[6] -> { resources.getStringArray(R.array.settings_actions)[7] -> {
(activity as AppCompatActivity).addFragmentBackStack( (activity as AppCompatActivity).addFragmentBackStack(
TAG_ABOUT_FRAGMENT, TAG_ABOUT_FRAGMENT,
R.id.fragment_container R.id.fragment_container
...@@ -97,6 +99,7 @@ class SettingsFragment : Fragment(), SettingsView, AdapterView.OnItemClickListen ...@@ -97,6 +99,7 @@ class SettingsFragment : Fragment(), SettingsView, AdapterView.OnItemClickListen
} }
} }
private fun showAppOnStore() { private fun showAppOnStore() {
try { try {
startActivity(Intent(Intent.ACTION_VIEW, getString(R.string.market_link).toUri())) startActivity(Intent(Intent.ACTION_VIEW, getString(R.string.market_link).toUri()))
......
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
<item <item
android:id="@+id/action_terms_of_Service" android:id="@+id/action_terms_of_Service"
android:title="@string/action_terms_of_service" android:title="@string/action_terms_of_service"
app:showAsAction="never" /> android:showAsAction="never" />
<item <item
android:id="@+id/action_privacy_policy" android:id="@+id/action_privacy_policy"
android:title="@string/action_privacy_policy" android:title="@string/action_privacy_policy"
app:showAsAction="never" /> android:showAsAction="never" />
</menu> </menu>
\ No newline at end of file
...@@ -5,6 +5,6 @@ ...@@ -5,6 +5,6 @@
<item <item
android:id="@+id/action_delete_account" android:id="@+id/action_delete_account"
android:title="@string/action_delete_account" android:title="@string/action_delete_account"
app:showAsAction="never" /> android:showAsAction="never" />
</menu> </menu>
\ No newline at end of file
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
<string-array name="settings_actions"> <string-array name="settings_actions">
<item name="item_preferences">पसंद</item> <item name="item_preferences">पसंद</item>
<item name="item_password">पासवर्ड बदलें</item> <item name="item_password">पासवर्ड बदलें</item>
<item name="change_language">भाषा बदलें</item>
<item name="item_share_app">ऐप शेयर करें</item> <item name="item_share_app">ऐप शेयर करें</item>
<item name="item_rate_us">हमें रेटिंग दें</item> <item name="item_rate_us">हमें रेटिंग दें</item>
<item name="item_contact_us">हमसे संपर्क करें</item> <item name="item_contact_us">हमसे संपर्क करें</item>
......
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
<string-array name="settings_actions"> <string-array name="settings_actions">
<item name="item_preferences">Preferenze</item> <item name="item_preferences">Preferenze</item>
<item name="item_password">Cambia password</item> <item name="item_password">Cambia password</item>
<item name="change_language">Cambia lingua</item>
<item name="item_share_app">Condividi app</item> <item name="item_share_app">Condividi app</item>
<item name="item_rate_us">Votaci</item> <item name="item_rate_us">Votaci</item>
<item name="item_contact_us">Contattaci</item> <item name="item_contact_us">Contattaci</item>
......
...@@ -22,11 +22,11 @@ ...@@ -22,11 +22,11 @@
<string name="title_admin_panel">管理パネル</string> <string name="title_admin_panel">管理パネル</string>
<string name="title_password">パスワードの変更</string> <string name="title_password">パスワードの変更</string>
<string name="title_update_profile">プロフィールの更新</string> <string name="title_update_profile">プロフィールの更新</string>
<string name="title_about">About</string> <string name="title_about"></string>
<string name="title_licence">Licence</string> <!-- TODO Add translation --> <string name="title_licence">ライセンス</string>
<string name="title_create_channel">新しいチャネルを作成</string> <string name="title_create_channel">新しいチャネルを作成</string>
<string name="title_are_you_sure">本気ですか?</string> <string name="title_are_you_sure">本気ですか?</string>
<string name="title_channel_details">Channel Details</string> <!-- TODO add translation --> <string name="title_channel_details">チャンネルの詳細</string>
<string name="title_topic">トピック</string> <string name="title_topic">トピック</string>
<string name="title_announcement">発表</string> <string name="title_announcement">発表</string>
<string name="title_description">説明</string> <string name="title_description">説明</string>
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<string name="action_create_channel">チャンネル作成</string> <string name="action_create_channel">チャンネル作成</string>
<string name="action_create">作ります</string> <string name="action_create">作ります</string>
<string name="action_logout">ログアウト</string> <string name="action_logout">ログアウト</string>
<string name="action_attach_a_files">Attach a file</string> <!-- TODO Add translation --> <string name="action_attach_a_files">Attach a file</string>
<string name="action_confirm_password">変更したパスワードの確認</string> <string name="action_confirm_password">変更したパスワードの確認</string>
<string name="action_join_chat">チャットに参加</string> <string name="action_join_chat">チャットに参加</string>
<string name="action_add_account">サーバーの追加</string> <string name="action_add_account">サーバーの追加</string>
...@@ -64,13 +64,14 @@ ...@@ -64,13 +64,14 @@
<!-- Settings List --> <!-- Settings List -->
<string-array name="settings_actions"> <string-array name="settings_actions">
<item name="item_preferences">Preferences</item> <!-- TODO Add translation --> <item name="item_preferences">設定</item>
<item name="item_password">Change password</item> <!-- TODO Add translation --> <item name="item_password">パスワードを変更する</item>
<item name="item_share_app">Share app</item> <!-- TODO Add translation --> <item name="change_language">言語を変えてください</item>
<item name="item_rate_us">Rate us</item> <!-- TODO Add translation --> <item name="item_share_app">アプリを共有する</item>
<item name="item_contact_us">Contact us</item> <!-- TODO Add translation --> <item name="item_rate_us">私たちを評価してください</item>
<item name="item_licence">Licence</item> <!-- TODO Add translation --> <item name="item_contact_us">お問い合わせ</item>
<item name="item_about">About</item> <!-- TODO Add translation --> <item name="item_licence">ライセンス</item>
<item name="item_about"></item>
</string-array> </string-array>
<!-- Regular information messages --> <!-- Regular information messages -->
...@@ -165,9 +166,9 @@ ...@@ -165,9 +166,9 @@
<string name="msg_view_more">更に表示</string> <string name="msg_view_more">更に表示</string>
<string name="msg_view_less">隠す</string> <string name="msg_view_less">隠す</string>
<string name="msg_muted_on_this_channel">あなたはこのチャンネルでミュートされています</string> <string name="msg_muted_on_this_channel">あなたはこのチャンネルでミュートされています</string>
<string name="msg_no_topic">No topic added</string> <!-- TODO Add translation --> <string name="msg_no_topic">トピックが追加されていない</string>
<string name="msg_no_announcement">No announcement added</string> <!-- TODO Add translation --> <string name="msg_no_announcement">お知らせが追加されていません</string>
<string name="msg_no_description">No description added</string> <!-- TODO Add translation --> <string name="msg_no_description">説明が追加されていない</string>
<!-- TODO - Add proper translation --> <!-- TODO - Add proper translation -->
<plurals name="msg_reacted_with_"> <plurals name="msg_reacted_with_">
<item quantity="one">%1$s reacted with %2$s</item> <item quantity="one">%1$s reacted with %2$s</item>
...@@ -189,8 +190,8 @@ ...@@ -189,8 +190,8 @@
<string name="msg_delete_message">メッセージを削除</string> <string name="msg_delete_message">メッセージを削除</string>
<string name="msg_delete_description">このメッセージを削除してもよろしいですか?</string> <string name="msg_delete_description">このメッセージを削除してもよろしいですか?</string>
<string name="msg_permalink_copied">パーマリンクのコピー</string> <string name="msg_permalink_copied">パーマリンクのコピー</string>
<string name="msg_send_email">Send email</string> <!-- TODO - Add proper translation --> <string name="msg_send_email">メールを送る</string>
<string name="msg_android_app_support">Android app support</string> <!-- TODO - Add proper translation --> <string name="msg_android_app_support">Androidアプリのサポート</string>
<!-- Preferences messages --> <!-- Preferences messages -->
<string name="msg_analytics_tracking">トラッキングの分析</string> <string name="msg_analytics_tracking">トラッキングの分析</string>
...@@ -339,13 +340,13 @@ ...@@ -339,13 +340,13 @@
<string name="message_room_changed_privacy">ルームタイプを %2$s から %1$s に変更しました</string> <string name="message_room_changed_privacy">ルームタイプを %2$s から %1$s に変更しました</string>
<!-- User Details --> <!-- User Details -->
<string name="message">Message</string> <!--TODO - Add proper translation--> <string name="message">メッセージ</string>
<string name="timezone">Timezone</string> <!--TODO - Add proper translation--> <string name="timezone">タイムゾーン</string>
<string name="error_opening_dm">Something went wrong while we were creating this conversation…</string> <!-- TODO - Add proper translation --> <string name="error_opening_dm">この会話を作成しているうちに何か問題が発生しました…</string>
<string name="retry">Retry</string> <!-- TODO - Add proper translation --> <string name="retry">リトライ</string>
<!-- Report --> <!-- Report -->
<string name="submit">Submit</string> <!--TODO - Add proper translation--> <string name="submit">提出する</string>
<string name="required">*required</string> <!--TODO - Add proper translation--> <string name="required">*必須</string>
<string name="report_sent">Your report has been sent!</string> <!--TODO - Add proper translation--> <string name="report_sent">あなたのレポートが送信されました!</string>
</resources> </resources>
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
<string-array name="settings_actions"> <string-array name="settings_actions">
<item name="item_preferences">Персональные</item> <item name="item_preferences">Персональные</item>
<item name="item_password">Изменить пароль</item> <item name="item_password">Изменить пароль</item>
<item name="change_language">Изменить язык</item>
<item name="item_share_app">Поделиться приложением</item> <item name="item_share_app">Поделиться приложением</item>
<item name="item_rate_us">Оцените нас</item> <item name="item_rate_us">Оцените нас</item>
<item name="item_contact_us">Связаться с нами</item> <item name="item_contact_us">Связаться с нами</item>
......
...@@ -76,6 +76,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin ...@@ -76,6 +76,7 @@ https://github.com/RocketChat/java-code-styles/blob/master/CODING_STYLE.md#strin
<string-array name="settings_actions"> <string-array name="settings_actions">
<item name="item_preferences">Preferences</item> <item name="item_preferences">Preferences</item>
<item name="item_password">Change password</item> <item name="item_password">Change password</item>
<item name="change_language">Change Language </item>
<item name="item_share_app">Share app</item> <item name="item_share_app">Share app</item>
<item name="item_rate_us">Rate us</item> <item name="item_rate_us">Rate us</item>
<item name="item_contact_us">Contact us</item> <item name="item_contact_us">Contact us</item>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment