From c5d7188dcb25f6a1384a784e3692a2defe541869 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Wed, 24 Nov 2021 11:56:03 -0500 Subject: [PATCH] Fix country specific translations for badges. --- .../internal/push/http/AcceptLanguagesUtil.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/http/AcceptLanguagesUtil.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/http/AcceptLanguagesUtil.java index d9a8f1ed1e..b4b10da54e 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/http/AcceptLanguagesUtil.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/http/AcceptLanguagesUtil.java @@ -1,5 +1,7 @@ package org.whispersystems.signalservice.internal.push.http; +import org.whispersystems.signalservice.internal.util.Util; + import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -8,20 +10,22 @@ import java.util.Objects; public class AcceptLanguagesUtil { public static Map getHeadersWithAcceptLanguage(Locale locale) { Map headers = new HashMap<>(); - headers.put("Accept-Language", formatLanguages(locale.getLanguage(), Locale.US.getLanguage())); + headers.put("Accept-Language", formatLanguages(locale.getLanguage(), locale.getCountry(), Locale.US.getLanguage())); return headers; } public static String getAcceptLanguageHeader(Locale locale) { - return "Accept-Language:" + formatLanguages(locale.getLanguage(), Locale.US.getLanguage()); + return "Accept-Language:" + formatLanguages(locale.getLanguage(), locale.getCountry(), Locale.US.getLanguage()); } - private static String formatLanguages(String language, String fallback) { + private static String formatLanguages(String language, String country, String fallback) { if (Objects.equals(language, fallback)) { return language + ";q=1"; - } else { + } else if (Util.isEmpty(country)) { return language + ";q=1," + fallback + ";q=0.5"; + } else { + return language + "-" + country + ";q=1," + language + ";q=0.75," + fallback + ";q=0.5"; } } }