是否可以将非默认资源用于未定义的语言?

时间:2011-12-13 13:48:03

标签: android android-layout

我有默认的drawables(英文)以及挪威语(nb)和德语(de)。我的问题是:

是否有可能本地化是瑞典语(sv)或丹麦语(da),而不是使用默认drawables(在我的情况下是英语)的正常行为,使用挪威drawables而不从drawable-nb复制文件到darawable-sv和drawable-da?

提前感谢您有兴趣回答我的问题。

2 个答案:

答案 0 :(得分:1)

如果您希望平台根据区域设置拾取相关的drawable,则必须将它们放在相应的区域设置文件夹中 - 这是 drawable-da drawable-sv 在你的情况下。

您也可以使用Locale类并以编程方式在运行时选择drawable。

答案 1 :(得分:1)

this answer中提取,您可以扩展Application类并将语言环境设置为您想要的任何内容:

public class MyApplication extends Application
{
    private Locale locale = null;

    @Override
    public void onCreate()
    {
        super.onCreate();

        Configuration config = getBaseContext().getResources().getConfiguration();

        String lang = config.locale.getLanguage();
        if (lang.equals("sv") || lang.equals("da"))
        {
            locale = new Locale("nb-NO");
            Locale.setDefault(locale);
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
        }
    }
}