diff --git a/app/src/main/assets/home.html b/app/src/main/assets/home.html index 491d4ef2a..b478bb5bf 100644 --- a/app/src/main/assets/home.html +++ b/app/src/main/assets/home.html @@ -2,6 +2,9 @@ - Home + REPLACE_menu_home + +

REPLACE_menu_home

+ diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java index 3f1b8131d..ea1d8e4ca 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java @@ -140,6 +140,7 @@ import static org.kiwix.kiwixmobile.utils.Constants.TAG_CURRENT_POSITIONS; import static org.kiwix.kiwixmobile.utils.Constants.TAG_CURRENT_TAB; import static org.kiwix.kiwixmobile.utils.Constants.TAG_FILE_SEARCHED; import static org.kiwix.kiwixmobile.utils.Constants.TAG_KIWIX; +import static org.kiwix.kiwixmobile.utils.LanguageUtils.getResourceString; import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle; import static org.kiwix.kiwixmobile.utils.UpdateUtils.reformatProviderUrl; @@ -393,8 +394,17 @@ public class MainActivity extends BaseActivity implements WebViewCallback, documentParser = new DocumentParser(new DocumentParser.SectionsListener() { @Override public void sectionsLoaded(String title, List sections) { + for (DocumentSection section : sections) { + if (section.title.contains("REPLACE_")) { + section.title = getResourceString(getApplicationContext(), section.title); + } + } documentSections.addAll(sections); - tableDrawerAdapter.setTitle(title); + if (title.contains("REPLACE_")) { + tableDrawerAdapter.setTitle(getResourceString(getApplicationContext(), title)); + } else { + tableDrawerAdapter.setTitle(title); + } tableDrawerAdapter.setSections(documentSections); tableDrawerAdapter.notifyDataSetChanged(); } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/TabsAdapter.java b/app/src/main/java/org/kiwix/kiwixmobile/main/TabsAdapter.java index 0a759f050..459a9aab3 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/TabsAdapter.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/TabsAdapter.java @@ -39,6 +39,7 @@ import static org.kiwix.kiwixmobile.utils.DimenUtils.getToolbarHeight; import static org.kiwix.kiwixmobile.utils.DimenUtils.getWindowHeight; import static org.kiwix.kiwixmobile.utils.DimenUtils.getWindowWidth; import static org.kiwix.kiwixmobile.utils.ImageUtils.getBitmapFromView; +import static org.kiwix.kiwixmobile.utils.LanguageUtils.getResourceString; import static org.kiwix.kiwixmobile.utils.StyleUtils.fromHtml; public class TabsAdapter extends RecyclerView.Adapter { @@ -113,7 +114,11 @@ public class TabsAdapter extends RecyclerView.Adapter { if (webView.getParent() != null) { ((ViewGroup) webView.getParent()).removeView(webView); } - holder.title.setText(fromHtml(webView.getTitle())); + String webViewTitle = fromHtml(webView.getTitle()).toString(); + if (webViewTitle.contains("REPLACE_")) { + webViewTitle = getResourceString(holder.title.getContext().getApplicationContext(), webViewTitle); + } + holder.title.setText(webViewTitle); holder.close.setOnClickListener(v -> listener.onCloseTab(v, holder.getAdapterPosition())); holder.content.setImageBitmap(getBitmapFromView(webView)); holder.content.setOnClickListener(v -> { diff --git a/app/src/main/java/org/kiwix/kiwixmobile/utils/LanguageUtils.java b/app/src/main/java/org/kiwix/kiwixmobile/utils/LanguageUtils.java index a279fc5ac..7ff816575 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/utils/LanguageUtils.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/utils/LanguageUtils.java @@ -107,10 +107,10 @@ public class LanguageUtils { return mLocaleMap.get(iso3.toUpperCase()); } - public static Locale getCurrentLocale(Context context){ - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ + public static Locale getCurrentLocale(Context context) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return context.getResources().getConfiguration().getLocales().get(0); - } else{ + } else { //noinspection deprecation return context.getResources().getConfiguration().locale; } @@ -151,6 +151,20 @@ public class LanguageUtils { return "fonts/DejaVuSansCondensed.ttf"; } + public static String getResourceString(Context appContext, String str) { + String resourceName = str; + if (resourceName.contains("REPLACE_")) { + resourceName = resourceName.replace("REPLACE_", ""); + } + int resourceId = appContext.getResources() + .getIdentifier( + resourceName, + "string", + appContext.getPackageName() + ); + return appContext.getResources().getString(resourceId); + } + // Read the language codes, that are supported in this app from the locales.txt file private void getLanguageCodesFromAssets() {