Проблема с локализацией android приложения - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь локализовать свое приложение в студии android. Все работает отлично, если я не открою это задание c, и все начнет сходить с ума. Мое приложение поддерживает языки Engli sh и Arabi c. Все строки доступны в обоих наборах ресурсов (strings-en. xml и strings-ar. xml). Engli sh - это базовый язык в приложении.

У меня 8-10 различных действий и фрагменты. Я могу открыть все действия и фрагменты, и все локализовано, НО есть только одно действие, в котором все работает неправильно, и после этого действия все экраны начинают показывать локализацию по умолчанию (en). В этом упражнении у меня есть веб-просмотр и несколько IntentExtras, с которыми нужно работать и читать URL-адреса и заголовок действия. Даже URL-адрес и заголовок по умолчанию, которые я определил в строках. xml не локализован.

Любая помощь приветствуется.

Это фрагмент кода из WebviewActivity, я просто выполняя startActivity из предыдущего и устанавливая "target" и "url" в IntentExtras.

    String title = getText(R.string.BrandName).toString();
    target = getIntent().getIntExtra("target", 0);

    switch (target){
        case 1:
            title = getText(R.string.terms).toString();
            Url = getText(R.string.terms_url).toString();
            break;
        default:
            title = getText(R.string.default).toString();
            Url = getText(R.string.default_url).toString();
            break;
     }
    getSupportActionBar().setTitle(title);

webview_layout. xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/offwhite">
<include layout="@layout/app_bar_layout" />
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:visibility="gone"
    android:layout_centerInParent="true"
    android:id="@+id/noInternetLayout"
    android:layout_margin="@dimen/dimen_10">
    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_gravity="center"
        android:tint="@color/grey"
        android:src="@drawable/ic_nonet"
        android:layout_margin="@dimen/dimen_4"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="@dimen/dimen_4"
        android:textAlignment="center"
        android:text="@string/noInternetConnection"
        android:textStyle="bold|italic" />
</LinearLayout>

<WebView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/webView"
    android:layout_below="@+id/appbar"
    android:visibility="gone"/>
<ProgressBar
    android:id="@+id/progressBar"
    android:progressTint="@color/grey"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_centerInParent="true"
    />

</RelativeLayout>

1 Ответ

0 голосов
/ 12 июля 2020

Просматривая различные опубликованные сообщения, я нашел что-то похожее здесь, в этом сообщении , и попробовал нечто подобное. Перезагрузка настроек локализации после работы setContentView(webview_layout). Существует некоторая ошибка / проблема в WebView в ОС android, которая сбрасывает все настройки локализации и возвращает их к настройкам по умолчанию после загрузки макета.

...