1package eu.siacs.conversations.xml;
2
3import com.google.common.collect.Iterables;
4import java.util.Locale;
5import java.util.Map;
6
7public class LocalizedContent {
8
9 public static final String STREAM_LANGUAGE = "en";
10
11 public final String content;
12 public final String language;
13 public final int count;
14
15 public LocalizedContent(final String content, final String language, final int count) {
16 this.content = content;
17 this.language = language;
18 this.count = count;
19 }
20
21 public static LocalizedContent get(final Map<String, String> contents) {
22 if (contents.isEmpty()) {
23 return null;
24 }
25 final String userLanguage = Locale.getDefault().getLanguage();
26 final String localized = contents.get(userLanguage);
27 if (localized != null) {
28 return new LocalizedContent(localized, userLanguage, contents.size());
29 }
30 final String streamLanguageContent = contents.get(STREAM_LANGUAGE);
31 if (streamLanguageContent != null) {
32 return new LocalizedContent(streamLanguageContent, STREAM_LANGUAGE, contents.size());
33 }
34 final Map.Entry<String, String> first = Iterables.get(contents.entrySet(), 0);
35 return new LocalizedContent(first.getValue(), first.getKey(), contents.size());
36 }
37}