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() {