diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 057c9d14b..d67c37962 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -155,4 +155,20 @@
\"%1$s\" отключен. Вам нужно повторно включить этот репозиторий для установки приложений из него.
%s или позднее
до %s
+
+ Детские
+ Разработка
+ Игры
+ Интернет
+ Математика
+ Мультимедиа
+ Навигация
+ Новости
+ Офис
+ Связь
+ Чтение
+ Научные
+ Безопасность
+ Системные
+ Обои
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6f15f3a5e..0d0861e7c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -216,4 +216,20 @@
App icon
Repo icon
+ Children
+ Development
+ Games
+ Internet
+ Mathematics
+ Multimedia
+ Navigation
+ News
+ Office
+ Phone & SMS
+ Reading
+ Science & Education
+ Security
+ System
+ Wallpaper
+
diff --git a/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java b/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java
index 98f70d35a..b7f452d53 100644
--- a/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java
+++ b/src/org/fdroid/fdroid/views/fragments/AvailableAppsFragment.java
@@ -3,6 +3,7 @@ package org.fdroid.fdroid.views.fragments;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
+import android.content.res.Resources;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
@@ -20,6 +21,7 @@ import org.fdroid.fdroid.data.AppProvider;
import org.fdroid.fdroid.views.AppListAdapter;
import org.fdroid.fdroid.views.AvailableAppListAdapter;
+import java.util.ArrayList;
import java.util.List;
public class AvailableAppsFragment extends AppListFragment implements
@@ -86,13 +88,22 @@ public class AvailableAppsFragment extends AppListFragment implements
final List categories = AppProvider.Helper.categories(getActivity());
+ // attempt to translate category names with fallback to default name
+ List translatedCategories = new ArrayList<>(categories.size());
+ Resources res = getResources();
+ for (String category:categories)
+ {
+ int id = res.getIdentifier(category.replace(" & ", "_"), "string", getActivity().getPackageName());
+ translatedCategories.add(id == 0 ? category : getString(id));
+ }
+
categorySpinner = new Spinner(getActivity());
// Giving it an ID lets the default save/restore state
// functionality do its stuff.
categorySpinner.setId(R.id.categorySpinner);
ArrayAdapter adapter = new ArrayAdapter(
- getActivity(), android.R.layout.simple_spinner_item, categories);
+ getActivity(), android.R.layout.simple_spinner_item, translatedCategories);
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
categorySpinner.setAdapter(adapter);