MCPcopy Create free account
hub / github.com/comaps/comaps / PrioritizedMapLanguageIndexes

Function PrioritizedMapLanguageIndexes

libs/i18n/localisation.cpp:163–222  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

161}
162
163vector<LanguageIndex> PrioritizedMapLanguageIndexes(vector<LanguageIndex> const regionalLanguageIndexes)
164{
165 AlternativeMapLanguageHandling const alternativeMapLanguageHandling = UsedAlternativeMapLanguageHandling();
166
167 vector<LanguageIndex> prioritizedMapLanguageIndexes = {};
168 vector<LanguageIndex> const mapLanguageIndexes = GetMapLanguageIndexes();
169
170 if (!mapLanguageIndexes.empty() && mapLanguageIndexes.front() == kDefaultNameIndex)
171 {
172 prioritizedMapLanguageIndexes.push_back(kDefaultNameIndex);
173 for (LanguageIndex const regionalLanguageIndex : regionalLanguageIndexes)
174 prioritizedMapLanguageIndexes.push_back(regionalLanguageIndex);
175 }
176
177 LanguageIndex defaultLang = kUnsupportedLanguageIndex;
178 if (!regionalLanguageIndexes.empty())
179 defaultLang = MatchingRegionalLanguageIndex(regionalLanguageIndexes, mapLanguageIndexes);
180
181 for (LanguageIndex const mapLanguageIndex : mapLanguageIndexes)
182 {
183 if (alternativeMapLanguageHandling != AlternativeMapLanguageHandling::IgnoreAlternatives ||
184 prioritizedMapLanguageIndexes.empty())
185 {
186 if (alternativeMapLanguageHandling != AlternativeMapLanguageHandling::LocalOnly &&
187 find(prioritizedMapLanguageIndexes.begin(), prioritizedMapLanguageIndexes.end(), mapLanguageIndex) ==
188 prioritizedMapLanguageIndexes.end())
189 prioritizedMapLanguageIndexes.push_back(mapLanguageIndex);
190
191 if (defaultLang != kUnsupportedLanguageIndex && defaultLang == mapLanguageIndex)
192 {
193 if (mapLanguageIndex != kDefaultNameIndex)
194 prioritizedMapLanguageIndexes.push_back(defaultLang);
195 prioritizedMapLanguageIndexes.push_back(kDefaultNameIndex);
196 }
197
198 if (alternativeMapLanguageHandling != AlternativeMapLanguageHandling::LocalOnly)
199 {
200 vector<LanguageIndex> const similarMapLanguageIndexes = SimilarLanguageIndexes(mapLanguageIndex);
201 prioritizedMapLanguageIndexes.insert(prioritizedMapLanguageIndexes.cend(), similarMapLanguageIndexes.cbegin(),
202 similarMapLanguageIndexes.cend());
203 }
204 }
205 }
206
207 if (alternativeMapLanguageHandling == AlternativeMapLanguageHandling::LocalOnly)
208 {
209 LanguageIndex mapLanguageIndex = mapLanguageIndexes.front();
210 prioritizedMapLanguageIndexes.push_back(mapLanguageIndex);
211
212 vector<LanguageIndex> const similarLanguageIndexes = SimilarLanguageIndexes(mapLanguageIndex);
213 prioritizedMapLanguageIndexes.insert(prioritizedMapLanguageIndexes.cend(), similarLanguageIndexes.cbegin(),
214 similarLanguageIndexes.cend());
215 }
216
217 prioritizedMapLanguageIndexes.push_back(kInternationalNameIndex);
218 prioritizedMapLanguageIndexes.push_back(kEnglishLanguageIndex);
219 prioritizedMapLanguageIndexes.push_back(kDefaultNameIndex);
220

Callers 3

TranslatedFeatureNameFunction · 0.85
FillDescriptionsMethod · 0.85

Calls 13

GetMapLanguageIndexesFunction · 0.85
findFunction · 0.85
SimilarLanguageIndexesFunction · 0.85
frontMethod · 0.80
emptyMethod · 0.45
push_backMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
insertMethod · 0.45
cendMethod · 0.45

Tested by

no test coverage detected