MCPcopy Index your code
hub / github.com/MichaelJokAr/MultiLanguages

github.com/MichaelJokAr/MultiLanguages @0.1.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.1.5 ↗ · + Follow
77 symbols 199 edges 14 files 24 documented · 31%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Android multi-language(support android O+) 中文

support third library multi-language( if there is a corresponding language resource file) ,in version 2.0.

version 2.0

Uses the Transform API to compile instrumentation to achieve attachBaseContext method auto insert of Activity and Service (code is in plugin)

  • support androidx
  • support kotlin
  • Not support Instant Run

Uses

Lastest version

modlue|multi-language.plugin|multi-languages ---|---|---| version| Download| Download

import

  • Import gradle plugin classpath 'com.github.jokar:multi-languages.plugin:<latest-version>'
  • apply plugin in app buidle.gradle file apply plugin: 'multi-languages' gradle configuration multiLanguages { //set plugin is enable( default) enable = true }
  • import Library implementation 'com.github.jokar:multi-languages:<latest-version>'

  • application init ``` public class MultiLanguagesApp extends Application { @Override protected void attachBaseContext(Context base) { //Save the system language selection when entering the app for the first time. LocalManageUtil.saveSystemCurrentLanguage(base); super.attachBaseContext(MultiLanguage.setLocal(base)); }

    @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); / The user saves the system selection language when switching languages on the system settings page (in order to select when the system language is used, if it is not saved, it will not be available after switching languages) / LocalManageUtil.saveSystemCurrentLanguage(getApplicationContext(), newConfig); MultiLanguage.onConfigurationChanged(getApplicationContext()); }

    @Override public void onCreate() { super.onCreate(); MultiLanguage.init(new LanguageLocalListener() { @Override public Locale getSetLanguageLocale(Context context) { //return your local settings return LocalManageUtil.getSetLanguageLocale(context); } }); MultiLanguage.setApplicationLanguage(this); } } ```

    sample of save multi-language select LocalManageUtil

then is done

Other: locales list


sample image

sample-image

Extension points exported contracts — how you extend this code

LanguageLocalListener (Interface)
Create by JokAr. on 2019-07-08. [3 implementers]
library/src/main/java/com/github/jokar/multilanguages/library/LanguageLocalListener.java

Core symbols most depended-on inside this repo

getInstance
called by 6
app/src/main/java/com/github/jokar/multilanguages/utils/SPUtil.java
visitCode
called by 4
plugin/src/main/java/com/github/jokar/multilanguages/plugin/ApplyOverrideConfigurationMV.java
visitMethod
called by 4
plugin/src/main/java/com/github/jokar/multilanguages/plugin/ActivityServiceClassVisitor.java
visitEnd
called by 4
plugin/src/main/java/com/github/jokar/multilanguages/plugin/ActivityServiceClassVisitor.java
selectLanguage
called by 4
app/src/main/java/com/github/jokar/multilanguages/SettingActivity.java
setApplicationLanguage
called by 3
library/src/main/java/com/github/jokar/multilanguages/library/MultiLanguage.java
isActivity
called by 3
plugin/src/main/java/com/github/jokar/multilanguages/plugin/MethodVisitorUtil.java
isAndroidxActivity
called by 3
plugin/src/main/java/com/github/jokar/multilanguages/plugin/MethodVisitorUtil.java

Shape

Method 63
Class 13
Interface 1

Languages

Java100%

Modules by API surface

plugin/src/main/java/com/github/jokar/multilanguages/plugin/MethodVisitorUtil.java10 symbols
plugin/src/main/java/com/github/jokar/multilanguages/plugin/ActivityServiceClassVisitor.java10 symbols
library/src/main/java/com/github/jokar/multilanguages/library/MultiLanguage.java8 symbols
app/src/main/java/com/github/jokar/multilanguages/utils/SPUtil.java7 symbols
app/src/main/java/com/github/jokar/multilanguages/utils/LocalManageUtil.java6 symbols
app/src/main/java/com/github/jokar/multilanguages/SettingActivity.java6 symbols
app/src/main/java/com/github/jokar/multilanguages/MyIntentServices.java6 symbols
app/src/main/java/com/github/jokar/multilanguages/MainActivity.java6 symbols
app/src/main/java/com/github/jokar/multilanguages/app/MultiLanguagesApp.java5 symbols
plugin/src/main/java/com/github/jokar/multilanguages/plugin/ApplyOverrideConfigurationMV.java3 symbols
app/src/main/java/com/github/jokar/multilanguages/SecondActivity.java3 symbols
app/src/main/java/com/github/jokar/multilanguages/MyService.java3 symbols

For agents

$ claude mcp add MultiLanguages \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact