2

我正在开发一个多语言应用程序,因为它面向非常多样化的公众。我试图通过一种我在谷歌上搜索到的方法来实现它,但虽然它似乎有一些意义(提前抱歉,我不是母语人士也不是真正的程序员),但我没有让它工作。方法是

package com.example.donafelicidad;

import android.content.res.Resources;
import android.content.res.Configuration;

import java.util.Locale;


public class LanguageHelper {

    public static void changeLocale(Resources res, String locale) {

        Configuration config;
        config = new Configuration(res.getConfiguration());

        switch (locale){
            case "es":
                config.locale = new Locale("es");
                break;
            case "qu":
                config.locale = new Locale("qu");
                break;
           }
        res.updateConfiguration(config, res.getDisplayMetrics());
    }
}

我将这个方法与按钮一起应用,引用为 CHNG_QU 和 CHNG_ES:

CHNG_QU.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                LanguageHelper.changeLocale(getApplicationContext().getResources(), "qu");
                Intent intent = new Intent(MainActivity.this, MainActivity.class);
                startActivity(intent);
            }
        });

        CHNG_ES.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                LanguageHelper.changeLocale(getApplicationContext().getResources(), "es");
                Intent intent = new Intent(MainActivity.this, MainActivity.class);
                startActivity(intent);
            }
        });

我手动更改了语言环境设置,并尝试了它。它完美地更改为另一种语言,所以我猜字符串做得很好。任何有关如何处理此问题的反馈将不胜感激,即使有必要重新执行整个代码。请使用简单的术语来形容一个正在尽力而为的没有经验的人。

作为旁注,我没有使用其他问题线索,因为我发现的大部分内容已被弃用。

4

1 回答 1

2

Lingver是一个库,旨在强制您的应用程序使用您想要的语言环境资源文件。

在文档中,我发现这篇博文在解释每一步的同时实现了它,希望对你有用。

于 2020-08-14T10:20:48.957 回答