Проблемы с поддержкой планшетов и телефонов одновременно - локализация - PullRequest
1 голос
/ 08 ноября 2011

Я поддерживаю разные языки в своем приложении, а также позволяю пользователю менять языки внутри самого приложения.Несколько недель назад я заметил некоторые проблемы с пользователями версии 7 SDK, имеющими язык иврит, поэтому я отказался от поддержки чего-либо до версии 8. Поэтому я сохранил файл строк в values-he-v8 .Однако, когда я переключаюсь на иврит на своем планшете, он не меняет язык (это прекрасно работает на моем телефоне).Зачем?Я думал, что это должны быть все версии выше версии 8. Переход на голландский (NL - у меня просто каталог values-nl) работает как на телефоне.Вот мой метод changeLocale:

    public void changeLocale(String language) {
        Locale locale;
        if (language.equals("default")) {
            locale = Locale.getDefault();
        } else {
            locale = new Locale(language);
        }
        Configuration config = new Configuration();
        config.locale = locale;
        getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics());   
    }

Точно так же я заметил, что в моем ListView для отображения результатов на моем телефоне хорошо отображаются имена на иврите.Они по-прежнему выровнены по левому краю в таблице результатов, ставят точку и затем имя.Например, 50. יניב

На планшете, однако, вся строка сдвигается вправо и становится name .50

Это соответствующий код в моем ScoreArrayAdapter, который используетсячтобы заполнить ListView:

    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = activity.getLayoutInflater();
        View rowView = inflater.inflate(layoutRow, null, true);

        TextView name = (TextView) rowView.findViewById(R.id.TextView_PlayerName);
        name.setText(values.get(position).rank.toString() + ". "
        + values.get(position).playerName);
        ...

Теперь я решил эту вторую проблему, создав отдельные текстовые представления для ранга и имени игрока (хотя технически это, вероятно, теперь задним числом для израильских читателей).Но я до сих пор не понимаю, почему мой файл, который должен работать для всех SDK 8+, не работает на моем планшете v3.1.

...