MCPcopy Create free account
hub / github.com/dachev/node-cld / LanguageFromCode

Function LanguageFromCode

chromium/languages/internal/languages.cc:277–337  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

275
276
277bool LanguageFromCode(const char* lang_code, Language *language) {
278 *language = UNKNOWN_LANGUAGE;
279 if ( lang_code == NULL ) return false;
280
281 for ( int i = 0 ; i < kNumLanguages ; i++ ) {
282 const LanguageInfo& info = kLanguageInfoTable[i];
283 if ((info.language_code_639_1_ &&
284 !base::strcasecmp(lang_code, info.language_code_639_1_)) ||
285 (info.language_code_639_2_ &&
286 !base::strcasecmp(lang_code, info.language_code_639_2_)) ||
287 (info.language_code_other_ &&
288 !base::strcasecmp(lang_code, info.language_code_other_))) {
289 *language = static_cast<Language>(i);
290 return true;
291 }
292 }
293
294 // For convenience, this function can also parse the non-standard
295 // five-letter language codes "zh-cn" and "zh-tw" which are used by
296 // front-ends such as GWS to distinguish Simplified from Traditional
297 // Chinese.
298 if (!base::strcasecmp(lang_code, "zh-cn") ||
299 !base::strcasecmp(lang_code, "zh_cn")) {
300 *language = CHINESE;
301 return true;
302 }
303 if (!base::strcasecmp(lang_code, "zh-tw") ||
304 !base::strcasecmp(lang_code, "zh_tw")) {
305 *language = CHINESE_T;
306 return true;
307 }
308 if (!base::strcasecmp(lang_code, "sr-me") ||
309 !base::strcasecmp(lang_code, "sr_me")) {
310 *language = MONTENEGRIN;
311 return true;
312 }
313
314 // Process language-code synonyms.
315 if (!base::strcasecmp(lang_code, "he")) {
316 *language = HEBREW; // Use "iw".
317 return true;
318 }
319 if (!base::strcasecmp(lang_code, "in")) {
320 *language = INDONESIAN; // Use "id".
321 return true;
322 }
323 if (!base::strcasecmp(lang_code, "ji")) {
324 *language = YIDDISH; // Use "yi".
325 return true;
326 }
327
328 // Process language-detection synonyms.
329 // These distinct languages cannot be differentiated by our current
330 // language-detection algorithms.
331 if (!base::strcasecmp(lang_code, "fil")) {
332 *language = TAGALOG;
333 return true;
334 }

Callers 1

Calls 1

strcasecmpFunction · 0.85

Tested by

no test coverage detected