Как создать многоязычное приложение в Android - PullRequest
1 голос
/ 23 октября 2019

Я разрабатываю мультиязычное приложение и использую приведенный ниже код, и он работал хорошо, но теперь у него есть проблемы в Android Api 24 и ниже без каких-либо ошибок. он просто переводит строки, но мне нужно, чтобы мое приложение было RTL. что я должен использовать вместо моего кода?

fun setNewLocale(mContext: Context, language: String): Context {
      setLanguagePref(mContext, language)
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 
           return updateResources(mContext, getLanguagePref(mContext)!!)             
      }
      return updateResourcesLegacy(mContext, getLanguagePref(mContext)!!)
}   

@TargetApi(Build.VERSION_CODES.N)   
private fun updateResources(context: Context, language: String): Context {
        val locale = Locale(language)
        Locale.setDefault(locale)
        val configuration = context.resources.configuration
        configuration.setLocale(locale)

        return context.createConfigurationContext(configuration)
}

private fun updateResourcesLegacy(context: Context, language: String): Context {
       val locale = Locale(language)
       Locale.setDefault(locale)
       val resources = context.resources
       val configuration = resources.configuration
       configuration.locale = locale

       resources.updateConfiguration(configuration, resources.displayMetrics)

       return context
 }

1 Ответ

0 голосов
/ 23 октября 2019

Для поддержки мультиязычности, если ваши пользователи выбирают язык, использующий сценарии с написанием справа налево (RTL), такие как персидский или арабский, сначала вы должны поддерживать RTL в своем приложении с более низким API.

Вы можете проверить официальные документы здесь , а для вашего случая этот раздел предоставляет более подробную информацию.

Кстати, вы можете проверить это и это примеры, которые предоставляют некоторые детали и все, что вам нужно знать.

Удачного кодирования! мовафаг баши:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...