From 7f537f2ccdbef1cdbd8a556590753d32ad76f4f3 Mon Sep 17 00:00:00 2001 From: Adith Date: Thu, 17 Oct 2024 16:59:30 +1100 Subject: [PATCH] localeFix --- .../free/nrw/commons/media/MediaDetailFragment.java | 4 +++- .../free/nrw/commons/mwapi/OkHttpJsonApiClient.java | 6 +++++- .../fr/free/nrw/commons/nearby/NearbyController.java | 11 ++++++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java index 384e7f1a9..52dec9ae1 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java @@ -1367,8 +1367,10 @@ public class MediaDetailFragment extends CommonsDaggerSupportFragment implements } private String chooseDescription(Media media) { + String fullCode = Locale.getDefault().getLanguage(); + String mainCode = fullCode.contains(",") ? fullCode.substring(0, fullCode.indexOf(',')).trim() : fullCode; final Map descriptions = media.getDescriptions(); - final String multilingualDesc = descriptions.get(Locale.getDefault().getLanguage()); + final String multilingualDesc = descriptions.get(mainCode); if (multilingualDesc != null) { return multilingualDesc; } diff --git a/app/src/main/java/fr/free/nrw/commons/mwapi/OkHttpJsonApiClient.java b/app/src/main/java/fr/free/nrw/commons/mwapi/OkHttpJsonApiClient.java index 8d6b74231..b1563cef8 100644 --- a/app/src/main/java/fr/free/nrw/commons/mwapi/OkHttpJsonApiClient.java +++ b/app/src/main/java/fr/free/nrw/commons/mwapi/OkHttpJsonApiClient.java @@ -640,13 +640,17 @@ public class OkHttpJsonApiClient { } }).doOnError(Timber::e)); } + String fullCode = Locale.getDefault().getLanguage(); + String mainCode = fullCode.contains(",") ? fullCode.substring(0, fullCode.indexOf(',')).trim() : fullCode; @NotNull private Request sparqlQuery(String qid, int startPosition, int limit, String fileName) throws IOException { + String fullCode = Locale.getDefault().getLanguage(); + String mainCode = fullCode.contains(",") ? fullCode.substring(0, fullCode.indexOf(',')).trim() : fullCode; String query = FileUtils.readFromResource(fileName) .replace("${QID}", qid) - .replace("${LANG}", "\"" + Locale.getDefault().getLanguage() + "\"") + .replace("${LANG}", "\"" + mainCode + "\"") .replace("${LIMIT}", "" + limit) .replace("${OFFSET}", "" + startPosition); HttpUrl.Builder urlBuilder = HttpUrl diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java index 368c4e510..d86e99226 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java @@ -59,7 +59,7 @@ public class NearbyController extends MapController { String fullCode = Locale.getDefault().getLanguage(); String mainCode = fullCode.contains(",") ? fullCode.substring(0, fullCode.indexOf(',')).trim() : fullCode; List places = nearbyPlaces - .radiusExpander(searchLatLng, Locale.getDefault().getLanguage(), returnClosestResult, + .radiusExpander(searchLatLng, mainCode, returnClosestResult, customQuery); if (null != places && places.size() > 0) { @@ -141,7 +141,9 @@ public class NearbyController extends MapController { * @throws Exception If an error occurs during the retrieval process. */ public List getPlaces(List placeList) throws Exception { - return nearbyPlaces.getPlaces(placeList, Locale.getDefault().getLanguage()); + String fullCode = Locale.getDefault().getLanguage(); + String mainCode = fullCode.contains(",") ? fullCode.substring(0, fullCode.indexOf(',')).trim() : fullCode; + return nearbyPlaces.getPlaces(placeList, mainCode); } public static LatLng calculateNorthEast(double latitude, double longitude, double distance) { @@ -198,8 +200,11 @@ public class NearbyController extends MapController { return null; } + String fullCode = Locale.getDefault().getLanguage(); + String mainCode = fullCode.contains(",") ? fullCode.substring(0, fullCode.indexOf(',')).trim() : fullCode; + List places = nearbyPlaces.getFromWikidataQuery(screenTopRight, screenBottomLeft, - Locale.getDefault().getLanguage(), shouldQueryForMonuments, customQuery); + mainCode, shouldQueryForMonuments, customQuery); if (null != places && places.size() > 0) { LatLng[] boundaryCoordinates = {