百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
M

MultiLanguages

> 编程语言
开源

Android 多语种适配框架,兼容高版本,适配第三方库语种

1.1K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

Android 多语种适配框架,兼容高版本,适配第三方库语种

English Doc

语种切换框架

  • 项目地址:Github

  • 可以扫码下载 Demo 进行演示或者测试,如果扫码下载不了的,点击此处可直接下载

集成步骤

  • 如果你的项目 Gradle 配置是在 7.0 以下,需要在 build.gradle 文件中加入
groovy
allprojects {
    repositories {
        // JitPack 远程仓库:https://jitpack.io
        maven { url 'https://jitpack.io' }
    }
}
  • 如果你的 Gradle 配置是 7.0 及以上,则需要在 settings.gradle 文件中加入
groovy
dependencyResolutionManagement {
    repositories {
        // JitPack 远程仓库:https://jitpack.io
        maven { url 'https://jitpack.io' }
    }
}
  • 配置完远程仓库后,在项目 app 模块下的 build.gradle 文件中加入远程依赖
groovy
dependencies {
    // 语种切换框架:https://github.com/getActivity/MultiLanguages
    implementation 'com.github.getActivity:MultiLanguages:10.2'
}

初始化框架

  • 在 Application 中初始化框架
java
public final class XxxApplication extends Application {

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

        // 初始化语种切换框架
        MultiLanguages.init(this);
    }
}
  • 重写 Application 的 attachBaseContext 方法
java
@Override
protected void attachBaseContext(Context base) {
    // 绑定语种
    super.attachBaseContext(MultiLanguages.attach(base));
}
  • 重写基类 BaseActivity 的 attachBaseContext 方法
java
@Override
protected void attachBaseContext(Context newBase) {
    // 绑定语种
    super.attachBaseContext(MultiLanguages.attach(newBase));
}
  • 只要是 Context 的子类都需要重写,Service 也雷同,这里不再赘述

  • 温馨提示:Fragment 不需要重写此方法,因为它不是 Context 的子类

语种设置

java
// 设置当前的语种(返回 true 表示需要重启 App)
MultiLanguages.setAppLanguage(Context context, Locale locale);

// 获取当前的语种
MultiLanguages.getAppLanguage(Context context);

// 跟随系统语种(返回 true 表示需要重启 App)
MultiLanguages.clearAppLanguage(Context context);

其他 API

…

语种变化监听器

java
// 设置语种变化监听器
MultiLanguages.setOnLanguageListener(new OnLanguageListener() {

    @Override
    public void onAppLocaleChange(Locale oldLocale, Locale newLocale) {
        Log.d("MultiLanguages", "监听到应用切换了语种,旧语种:" + oldLocale + ",新语种:" + newLocale);
    }

    @Override
    public void onSystemLocaleChange(Locale oldLocale, Locale newLocale) {
        Log.d("MultiLanguages", "监听到系统切换了语种,旧语种:" + oldLocale + ",新语种:" + newLocale + ",是否跟随系统:" + MultiLanguages.isSystemLanguage());
    }
});

使用案例

…

常见疑问请点击此处查看

其他资源:语言代码列表大全

作者的其他开源项目

  • 安卓技术中台:AndroidProject

  • 安卓技术中台 Kt 版:AndroidProject-Kotlin

  • 权限框架:XXPermissions

  • 吐司框架:Toaster

  • 网络框架:EasyHttp

  • 标题栏框架:TitleBar

  • 悬浮窗框架:EasyWindow

  • 设备兼容框架:DeviceCompat

  • Shape 框架:ShapeView

  • Gson 解析容错:GsonFactory

  • 日志查看框架:Logcat

  • Android 命令行工具集:AndroidCmdTools

  • Android 版本适配:AndroidVersionAdapter

  • Android 代码规范:AndroidCodeStandard

  • Android 资源大汇总:AndroidIndex

  • Android 开源排行榜:AndroidGithubBoss

  • Studio 精品插件:StudioPlugins

  • 表情包大集合:EmojiPackage

  • AI 资源大汇总:AiIndex

  • 省市区 Json 数据:ProvinceJson

  • Markdown 语法文档:MarkdownDoc

微信公众号:Android轮子哥

Android 技术 Q 群:10047167

如果您觉得我的开源库帮你节省了大量的开发时间,请扫描下方的二维码随意打赏,要是能打赏个 10.24 :monkey_face:就太:thumbsup:了。您的支持将鼓励我继续创作:octocat:(点击查看捐赠列表)

License

Copyright 2019 Huang JinQun

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Javaandroidandroid-langugeglobalizationinternational

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言