Bluesky app fork with some witchin' additions 💫 witchsky.app
bluesky fork client

Translation followups (#9980)

authored by samuel.fm and committed by

GitHub f614bf65 5ee667f3

+130 -623
+1 -1
src/components/Post/Translated/index.tsx
··· 147 147 {({props}) => { 148 148 return ( 149 149 <Text {...props} style={[a.text_xs]}> 150 - <Trans>Edit</Trans> 150 + <Trans>Change</Trans> 151 151 </Text> 152 152 ) 153 153 }}
+9 -5
src/components/dialogs/LanguageSelectDialog.tsx
··· 5 5 import {useLingui} from '@lingui/react' 6 6 import {Trans} from '@lingui/react/macro' 7 7 8 + import {languageName} from '#/locale/helpers' 8 9 import {type Language, LANGUAGES, LANGUAGES_MAP_CODE2} from '#/locale/languages' 9 10 import {useLanguagePrefs} from '#/state/preferences/languages' 10 11 import {ErrorScreen} from '#/view/com/util/error/ErrorScreen' ··· 139 140 const recentLanguages = mapCode2List(recentLanguagesCode2) 140 141 141 142 // NOTE(@elijaharita): helper functions 143 + const searchLower = search.toLowerCase() 142 144 const matchesSearch = (lang: Language) => 143 - lang.name.toLowerCase().includes(search.toLowerCase()) 145 + languageName(lang, langPrefs.appLanguage) 146 + .toLowerCase() 147 + .includes(searchLower) || lang.name.toLowerCase().includes(searchLower) 144 148 const isChecked = (lang: Language) => 145 149 checkedLanguagesCode2.includes(lang.code2) 146 150 const isInRecents = (lang: Language) => ··· 182 186 search, 183 187 langPrefs.postLanguageHistory, 184 188 checkedLanguagesCode2, 189 + langPrefs.appLanguage, 185 190 ]) 186 191 187 192 const listHeader = ( ··· 297 302 ) 298 303 } 299 304 const lang = item.lang 305 + const name = languageName(lang, langPrefs.appLanguage) 300 306 301 307 const isLastItem = index === numItems - 1 302 308 ··· 304 310 <Toggle.Item 305 311 key={lang.code2} 306 312 name={lang.code2} 307 - label={lang.name} 313 + label={name} 308 314 style={[ 309 315 t.atoms.border_contrast_low, 310 316 !isLastItem && a.border_b, ··· 312 318 a.px_0, 313 319 a.py_md, 314 320 ]}> 315 - <Toggle.LabelText style={[a.flex_1]}> 316 - {lang.name} 317 - </Toggle.LabelText> 321 + <Toggle.LabelText style={[a.flex_1]}>{name}</Toggle.LabelText> 318 322 <Toggle.Checkbox /> 319 323 </Toggle.Item> 320 324 )
+31 -16
src/locale/helpers.ts
··· 32 32 return undefined 33 33 } 34 34 35 - function getLocalizedLanguage( 36 - langCode: string, 37 - appLang: string, 38 - ): string | undefined { 39 - try { 40 - const allNames = new Intl.DisplayNames([appLang], { 35 + const displayNamesCache = new Map<string, Intl.DisplayNames>() 36 + 37 + function getDisplayNames(appLang: string): Intl.DisplayNames { 38 + let cached = displayNamesCache.get(appLang) 39 + if (!cached) { 40 + cached = new Intl.DisplayNames([appLang], { 41 41 type: 'language', 42 42 fallback: 'none', 43 43 languageDisplay: 'standard', 44 44 }) 45 - const translatedName = allNames.of(langCode) 45 + displayNamesCache.set(appLang, cached) 46 + } 47 + return cached 48 + } 46 49 47 - if (translatedName) { 48 - return translatedName 49 - } 50 + function getLocalizedLanguage( 51 + langCode: string, 52 + appLang: string, 53 + ): string | undefined { 54 + try { 55 + return getDisplayNames(appLang).of(langCode) || undefined 50 56 } catch (e) { 51 57 // ignore RangeError from Intl.DisplayNames APIs 52 58 if (!(e instanceof RangeError)) { ··· 308 314 return countryCode 309 315 } 310 316 317 + const regionNamesCache = new Map<string, Intl.DisplayNames>() 318 + 319 + function getRegionNames(appLang: string): Intl.DisplayNames { 320 + let cached = regionNamesCache.get(appLang) 321 + if (!cached) { 322 + cached = new Intl.DisplayNames([appLang], { 323 + type: 'region', 324 + fallback: 'none', 325 + }) 326 + regionNamesCache.set(appLang, cached) 327 + } 328 + return cached 329 + } 330 + 311 331 function getLocalizedRegionName( 312 332 countryCode: string, 313 333 appLang: string, 314 334 ): string | undefined { 315 335 try { 316 - const allNames = new Intl.DisplayNames([appLang], { 317 - type: 'region', 318 - fallback: 'none', 319 - }) 320 - 321 - return allNames.of(countryCode) 336 + return getRegionNames(appLang).of(countryCode) 322 337 } catch (err) { 323 338 console.warn('Error getting localized region name:', err) 324 339 return undefined
+66 -572
src/locale/languages.ts
··· 2 2 code3: string 3 3 code2: string 4 4 name: string 5 - en: string 6 5 android: boolean 7 6 ios: boolean 8 7 } ··· 111 110 code3: 'aar', 112 111 code2: 'aa', 113 112 name: 'Afar', 114 - en: 'Afar', 115 113 android: false, 116 114 ios: false, 117 115 }, ··· 119 117 code3: 'abk', 120 118 code2: 'ab', 121 119 name: 'Abkhazian', 122 - en: 'Abkhazian', 123 120 android: false, 124 121 ios: false, 125 122 }, ··· 127 124 code3: 'ace', 128 125 code2: '', 129 126 name: 'Achinese', 130 - en: 'Achinese', 131 127 android: false, 132 128 ios: false, 133 129 }, ··· 135 131 code3: 'ach', 136 132 code2: '', 137 133 name: 'Acoli', 138 - en: 'Acoli', 139 134 android: false, 140 135 ios: false, 141 136 }, ··· 143 138 code3: 'ada', 144 139 code2: '', 145 140 name: 'Adangme', 146 - en: 'Adangme', 147 141 android: false, 148 142 ios: false, 149 143 }, ··· 151 145 code3: 'ady', 152 146 code2: '', 153 147 name: 'Adyghe; Adygei', 154 - en: 'Adyghe; Adygei', 155 148 android: false, 156 149 ios: false, 157 150 }, ··· 159 152 code3: 'afa', 160 153 code2: '', 161 154 name: 'Afro-Asiatic languages', 162 - en: 'Afro-Asiatic languages', 163 155 android: false, 164 156 ios: false, 165 157 }, ··· 167 159 code3: 'afh', 168 160 code2: '', 169 161 name: 'Afrihili', 170 - en: 'Afrihili', 171 162 android: false, 172 163 ios: false, 173 164 }, ··· 175 166 code3: 'afr', 176 167 code2: 'af', 177 168 name: 'Afrikaans', 178 - en: 'Afrikaans', 179 169 android: false, 180 170 ios: false, 181 171 }, ··· 183 173 code3: 'ain', 184 174 code2: '', 185 175 name: 'Ainu', 186 - en: 'Ainu', 187 176 android: false, 188 177 ios: false, 189 178 }, ··· 191 180 code3: 'aka', 192 181 code2: 'ak', 193 182 name: 'Akan', 194 - en: 'Akan', 195 183 android: false, 196 184 ios: false, 197 185 }, ··· 199 187 code3: 'akk', 200 188 code2: '', 201 189 name: 'Akkadian', 202 - en: 'Akkadian', 203 190 android: false, 204 191 ios: false, 205 192 }, ··· 207 194 code3: 'alb', 208 195 code2: 'sq', 209 196 name: 'Albanian', 210 - en: 'Albanian', 211 197 android: true, 212 198 ios: false, 213 199 }, ··· 215 201 code3: 'ale', 216 202 code2: '', 217 203 name: 'Aleut', 218 - en: 'Aleut', 219 204 android: false, 220 205 ios: false, 221 206 }, ··· 223 208 code3: 'alg', 224 209 code2: '', 225 210 name: 'Algonquian languages', 226 - en: 'Algonquian languages', 227 211 android: false, 228 212 ios: false, 229 213 }, ··· 231 215 code3: 'alt', 232 216 code2: '', 233 217 name: 'Southern Altai', 234 - en: 'Southern Altai', 235 218 android: false, 236 219 ios: false, 237 220 }, 238 221 { 239 222 code3: 'amh', 240 223 code2: 'am', 241 - name: 'አማርኛ', 242 - en: 'Amharic', 224 + name: 'Amharic', 243 225 android: false, 244 226 ios: false, 245 227 }, ··· 247 229 code3: 'ang', 248 230 code2: '', 249 231 name: 'English, Old (ca.450-1100)', 250 - en: 'English, Old (ca.450-1100)', 251 232 android: false, 252 233 ios: false, 253 234 }, ··· 255 236 code3: 'anp', 256 237 code2: '', 257 238 name: 'Angika', 258 - en: 'Angika', 259 239 android: false, 260 240 ios: false, 261 241 }, ··· 263 243 code3: 'apa', 264 244 code2: '', 265 245 name: 'Apache languages', 266 - en: 'Apache languages', 267 246 android: false, 268 247 ios: false, 269 248 }, 270 249 { 271 250 code3: 'ara', 272 251 code2: 'ar', 273 - name: 'العربية', 274 - en: 'Arabic', 252 + name: 'Arabic', 275 253 android: true, 276 254 ios: false, 277 255 }, ··· 279 257 code3: 'arc', 280 258 code2: '', 281 259 name: 'Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)', 282 - en: 'Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)', 283 260 android: false, 284 261 ios: false, 285 262 }, ··· 287 264 code3: 'arg', 288 265 code2: 'an', 289 266 name: 'Aragonese', 290 - en: 'Aragonese', 291 267 android: false, 292 268 ios: false, 293 269 }, ··· 295 271 code3: 'arm', 296 272 code2: 'hy', 297 273 name: 'Armenian', 298 - en: 'Armenian', 299 274 android: false, 300 275 ios: false, 301 276 }, ··· 303 278 code3: 'arn', 304 279 code2: '', 305 280 name: 'Mapudungun; Mapuche', 306 - en: 'Mapudungun; Mapuche', 307 281 android: false, 308 282 ios: false, 309 283 }, ··· 311 285 code3: 'arp', 312 286 code2: '', 313 287 name: 'Arapaho', 314 - en: 'Arapaho', 315 288 android: false, 316 289 ios: false, 317 290 }, ··· 319 292 code3: 'art', 320 293 code2: '', 321 294 name: 'Artificial languages', 322 - en: 'Artificial languages', 323 295 android: false, 324 296 ios: false, 325 297 }, ··· 327 299 code3: 'arw', 328 300 code2: '', 329 301 name: 'Arawak', 330 - en: 'Arawak', 331 302 android: false, 332 303 ios: false, 333 304 }, ··· 335 306 code3: 'asm', 336 307 code2: 'as', 337 308 name: 'Assamese', 338 - en: 'Assamese', 339 309 android: false, 340 310 ios: false, 341 311 }, ··· 343 313 code3: 'ast', 344 314 code2: '', 345 315 name: 'Asturian', 346 - en: 'Asturian', 347 316 android: false, 348 317 ios: false, 349 318 }, ··· 351 320 code3: 'ath', 352 321 code2: '', 353 322 name: 'Athapascan languages', 354 - en: 'Athapascan languages', 355 323 android: false, 356 324 ios: false, 357 325 }, ··· 359 327 code3: 'aus', 360 328 code2: '', 361 329 name: 'Australian languages', 362 - en: 'Australian languages', 363 330 android: false, 364 331 ios: false, 365 332 }, ··· 367 334 code3: 'ava', 368 335 code2: 'av', 369 336 name: 'Avaric', 370 - en: 'Avaric', 371 337 android: false, 372 338 ios: false, 373 339 }, ··· 375 341 code3: 'ave', 376 342 code2: 'ae', 377 343 name: 'Avestan', 378 - en: 'Avestan', 379 344 android: false, 380 345 ios: false, 381 346 }, ··· 383 348 code3: 'awa', 384 349 code2: '', 385 350 name: 'Awadhi', 386 - en: 'Awadhi', 387 351 android: false, 388 352 ios: false, 389 353 }, ··· 391 355 code3: 'aym', 392 356 code2: 'ay', 393 357 name: 'Aymara', 394 - en: 'Aymara', 395 358 android: false, 396 359 ios: false, 397 360 }, 398 361 { 399 362 code3: 'aze', 400 363 code2: 'az', 401 - name: 'azərbaycan', 402 - en: 'Azerbaijani', 364 + name: 'Azerbaijani', 403 365 android: false, 404 366 ios: false, 405 367 }, ··· 407 369 code3: 'bad', 408 370 code2: '', 409 371 name: 'Banda languages', 410 - en: 'Banda languages', 411 372 android: false, 412 373 ios: false, 413 374 }, ··· 415 376 code3: 'bai', 416 377 code2: '', 417 378 name: 'Bamileke languages', 418 - en: 'Bamileke languages', 419 379 android: false, 420 380 ios: false, 421 381 }, ··· 423 383 code3: 'bak', 424 384 code2: 'ba', 425 385 name: 'Bashkir', 426 - en: 'Bashkir', 427 386 android: false, 428 387 ios: false, 429 388 }, ··· 431 390 code3: 'bal', 432 391 code2: '', 433 392 name: 'Baluchi', 434 - en: 'Baluchi', 435 393 android: false, 436 394 ios: false, 437 395 }, ··· 439 397 code3: 'bam', 440 398 code2: 'bm', 441 399 name: 'Bambara', 442 - en: 'Bambara', 443 400 android: false, 444 401 ios: false, 445 402 }, ··· 447 404 code3: 'ban', 448 405 code2: '', 449 406 name: 'Balinese', 450 - en: 'Balinese', 451 407 android: false, 452 408 ios: false, 453 409 }, ··· 455 411 code3: 'baq', 456 412 code2: 'eu', 457 413 name: 'Basque', 458 - en: 'Basque', 459 414 android: false, 460 415 ios: false, 461 416 }, ··· 463 418 code3: 'bas', 464 419 code2: '', 465 420 name: 'Basa', 466 - en: 'Basa', 467 421 android: false, 468 422 ios: false, 469 423 }, ··· 471 425 code3: 'bat', 472 426 code2: '', 473 427 name: 'Baltic languages', 474 - en: 'Baltic languages', 475 428 android: false, 476 429 ios: false, 477 430 }, ··· 479 432 code3: 'bej', 480 433 code2: '', 481 434 name: 'Beja; Bedawiyet', 482 - en: 'Beja; Bedawiyet', 483 435 android: false, 484 436 ios: false, 485 437 }, ··· 487 439 code3: 'bel', 488 440 code2: 'be', 489 441 name: 'Belarusian', 490 - en: 'Belarusian', 491 442 android: true, 492 443 ios: false, 493 444 }, ··· 495 446 code3: 'bem', 496 447 code2: '', 497 448 name: 'Bemba', 498 - en: 'Bemba', 499 449 android: false, 500 450 ios: false, 501 451 }, 502 452 { 503 453 code3: 'ben', 504 454 code2: 'bn', 505 - name: 'বাংলা', 506 - en: 'Bangla', 455 + name: 'Bangla', 507 456 android: true, 508 457 ios: false, 509 458 }, ··· 511 460 code3: 'ber', 512 461 code2: '', 513 462 name: 'Berber languages', 514 - en: 'Berber languages', 515 463 android: false, 516 464 ios: false, 517 465 }, ··· 519 467 code3: 'bho', 520 468 code2: '', 521 469 name: 'Bhojpuri', 522 - en: 'Bhojpuri', 523 470 android: false, 524 471 ios: false, 525 472 }, ··· 527 474 code3: 'bih', 528 475 code2: 'bh', 529 476 name: 'Bhojpuri', 530 - en: 'Bhojpuri', 531 477 android: false, 532 478 ios: false, 533 479 }, ··· 535 481 code3: 'bik', 536 482 code2: '', 537 483 name: 'Bikol', 538 - en: 'Bikol', 539 484 android: false, 540 485 ios: false, 541 486 }, ··· 543 488 code3: 'bin', 544 489 code2: '', 545 490 name: 'Bini; Edo', 546 - en: 'Bini; Edo', 547 491 android: false, 548 492 ios: false, 549 493 }, ··· 551 495 code3: 'bis', 552 496 code2: 'bi', 553 497 name: 'Bislama', 554 - en: 'Bislama', 555 498 android: false, 556 499 ios: false, 557 500 }, ··· 559 502 code3: 'bla', 560 503 code2: '', 561 504 name: 'Siksika', 562 - en: 'Siksika', 563 505 android: false, 564 506 ios: false, 565 507 }, ··· 567 509 code3: 'bnt', 568 510 code2: '', 569 511 name: 'Bantu languages', 570 - en: 'Bantu languages', 571 512 android: false, 572 513 ios: false, 573 514 }, ··· 575 516 code3: 'bod', 576 517 code2: 'bo', 577 518 name: 'Tibetan', 578 - en: 'Tibetan', 579 519 android: false, 580 520 ios: false, 581 521 }, 582 522 { 583 523 code3: 'bos', 584 524 code2: 'bs', 585 - name: 'bosanski', 586 - en: 'Bosnian', 525 + name: 'Bosnian', 587 526 android: false, 588 527 ios: false, 589 528 }, ··· 591 530 code3: 'bra', 592 531 code2: '', 593 532 name: 'Braj', 594 - en: 'Braj', 595 533 android: false, 596 534 ios: false, 597 535 }, ··· 599 537 code3: 'bre', 600 538 code2: 'br', 601 539 name: 'Breton', 602 - en: 'Breton', 603 540 android: false, 604 541 ios: false, 605 542 }, ··· 607 544 code3: 'btk', 608 545 code2: '', 609 546 name: 'Batak languages', 610 - en: 'Batak languages', 611 547 android: false, 612 548 ios: false, 613 549 }, ··· 615 551 code3: 'bua', 616 552 code2: '', 617 553 name: 'Buriat', 618 - en: 'Buriat', 619 554 android: false, 620 555 ios: false, 621 556 }, ··· 623 558 code3: 'bug', 624 559 code2: '', 625 560 name: 'Buginese', 626 - en: 'Buginese', 627 561 android: false, 628 562 ios: false, 629 563 }, 630 564 { 631 565 code3: 'bul', 632 566 code2: 'bg', 633 - name: 'български', 634 - en: 'Bulgarian', 567 + name: 'Bulgarian', 635 568 android: true, 636 569 ios: false, 637 570 }, ··· 639 572 code3: 'bur', 640 573 code2: 'my', 641 574 name: 'Burmese', 642 - en: 'Burmese', 643 575 android: false, 644 576 ios: false, 645 577 }, ··· 647 579 code3: 'byn', 648 580 code2: '', 649 581 name: 'Blin; Bilin', 650 - en: 'Blin; Bilin', 651 582 android: false, 652 583 ios: false, 653 584 }, ··· 655 586 code3: 'cad', 656 587 code2: '', 657 588 name: 'Caddo', 658 - en: 'Caddo', 659 589 android: false, 660 590 ios: false, 661 591 }, ··· 663 593 code3: 'cai', 664 594 code2: '', 665 595 name: 'Central American Indian languages', 666 - en: 'Central American Indian languages', 667 596 android: false, 668 597 ios: false, 669 598 }, ··· 671 600 code3: 'car', 672 601 code2: '', 673 602 name: 'Galibi Carib', 674 - en: 'Galibi Carib', 675 603 android: false, 676 604 ios: false, 677 605 }, 678 606 { 679 607 code3: 'cat', 680 608 code2: 'ca', 681 - name: 'català', 682 - en: 'Catalan', 609 + name: 'Catalan', 683 610 android: true, 684 611 ios: false, 685 612 }, ··· 687 614 code3: 'cau', 688 615 code2: '', 689 616 name: 'Caucasian languages', 690 - en: 'Caucasian languages', 691 617 android: false, 692 618 ios: false, 693 619 }, ··· 695 621 code3: 'ceb', 696 622 code2: '', 697 623 name: 'Cebuano', 698 - en: 'Cebuano', 699 624 android: false, 700 625 ios: false, 701 626 }, ··· 703 628 code3: 'cel', 704 629 code2: '', 705 630 name: 'Celtic languages', 706 - en: 'Celtic languages', 707 631 android: false, 708 632 ios: false, 709 633 }, 710 634 { 711 635 code3: 'ces', 712 636 code2: 'cs', 713 - name: 'čeština', 714 - en: 'Czech', 637 + name: 'Czech', 715 638 android: true, 716 639 ios: false, 717 640 }, ··· 719 642 code3: 'cha', 720 643 code2: 'ch', 721 644 name: 'Chamorro', 722 - en: 'Chamorro', 723 645 android: false, 724 646 ios: false, 725 647 }, ··· 727 649 code3: 'chb', 728 650 code2: '', 729 651 name: 'Chibcha', 730 - en: 'Chibcha', 731 652 android: false, 732 653 ios: false, 733 654 }, ··· 735 656 code3: 'che', 736 657 code2: 'ce', 737 658 name: 'Chechen', 738 - en: 'Chechen', 739 659 android: false, 740 660 ios: false, 741 661 }, ··· 743 663 code3: 'chg', 744 664 code2: '', 745 665 name: 'Chagatai', 746 - en: 'Chagatai', 747 666 android: false, 748 667 ios: false, 749 668 }, 750 669 { 751 670 code3: 'chi', 752 671 code2: 'zh', 753 - name: '中文', 754 - en: 'Chinese', 672 + name: 'Chinese', 755 673 android: true, 756 674 ios: false, 757 675 }, ··· 759 677 code3: 'chk', 760 678 code2: '', 761 679 name: 'Chuukese', 762 - en: 'Chuukese', 763 680 android: false, 764 681 ios: false, 765 682 }, ··· 767 684 code3: 'chm', 768 685 code2: '', 769 686 name: 'Mari', 770 - en: 'Mari', 771 687 android: false, 772 688 ios: false, 773 689 }, ··· 775 691 code3: 'chn', 776 692 code2: '', 777 693 name: 'Chinook jargon', 778 - en: 'Chinook jargon', 779 694 android: false, 780 695 ios: false, 781 696 }, ··· 783 698 code3: 'cho', 784 699 code2: '', 785 700 name: 'Choctaw', 786 - en: 'Choctaw', 787 701 android: false, 788 702 ios: false, 789 703 }, ··· 791 705 code3: 'chp', 792 706 code2: '', 793 707 name: 'Chipewyan; Dene Suline', 794 - en: 'Chipewyan; Dene Suline', 795 708 android: false, 796 709 ios: false, 797 710 }, ··· 799 712 code3: 'chr', 800 713 code2: '', 801 714 name: 'Cherokee', 802 - en: 'Cherokee', 803 715 android: false, 804 716 ios: false, 805 717 }, ··· 807 719 code3: 'chu', 808 720 code2: 'cu', 809 721 name: 'Church Slavic', 810 - en: 'Church Slavic', 811 722 android: false, 812 723 ios: false, 813 724 }, ··· 815 726 code3: 'chv', 816 727 code2: 'cv', 817 728 name: 'Chuvash', 818 - en: 'Chuvash', 819 729 android: false, 820 730 ios: false, 821 731 }, ··· 823 733 code3: 'chy', 824 734 code2: '', 825 735 name: 'Cheyenne', 826 - en: 'Cheyenne', 827 736 android: false, 828 737 ios: false, 829 738 }, ··· 831 740 code3: 'cmc', 832 741 code2: '', 833 742 name: 'Chamic languages', 834 - en: 'Chamic languages', 835 743 android: false, 836 744 ios: false, 837 745 }, 838 746 { 839 747 code3: 'cnr', 840 748 code2: '', 841 - name: 'srpski (Crna Gora)', 842 - en: 'Serbian (Montenegro)', 749 + name: 'Serbian (Montenegro)', 843 750 android: false, 844 751 ios: false, 845 752 }, ··· 847 754 code3: 'cop', 848 755 code2: '', 849 756 name: 'Coptic', 850 - en: 'Coptic', 851 757 android: false, 852 758 ios: false, 853 759 }, ··· 855 761 code3: 'cor', 856 762 code2: 'kw', 857 763 name: 'Cornish', 858 - en: 'Cornish', 859 764 android: false, 860 765 ios: false, 861 766 }, ··· 863 768 code3: 'cos', 864 769 code2: 'co', 865 770 name: 'Corsican', 866 - en: 'Corsican', 867 771 android: false, 868 772 ios: false, 869 773 }, ··· 871 775 code3: 'cpe', 872 776 code2: '', 873 777 name: 'Creoles and pidgins, English based', 874 - en: 'Creoles and pidgins, English based', 875 778 android: false, 876 779 ios: false, 877 780 }, ··· 879 782 code3: 'cpf', 880 783 code2: '', 881 784 name: 'Creoles and pidgins, French-based', 882 - en: 'Creoles and pidgins, French-based', 883 785 android: false, 884 786 ios: false, 885 787 }, ··· 887 789 code3: 'cpp', 888 790 code2: '', 889 791 name: 'Creoles and pidgins, Portuguese-based', 890 - en: 'Creoles and pidgins, Portuguese-based', 891 792 android: false, 892 793 ios: false, 893 794 }, ··· 895 796 code3: 'cre', 896 797 code2: 'cr', 897 798 name: 'Cree', 898 - en: 'Cree', 899 799 android: false, 900 800 ios: false, 901 801 }, ··· 903 803 code3: 'crh', 904 804 code2: '', 905 805 name: 'Crimean Tatar; Crimean Turkish', 906 - en: 'Crimean Tatar; Crimean Turkish', 907 806 android: false, 908 807 ios: false, 909 808 }, ··· 911 810 code3: 'crp', 912 811 code2: '', 913 812 name: 'Creoles and pidgins', 914 - en: 'Creoles and pidgins', 915 813 android: false, 916 814 ios: false, 917 815 }, ··· 919 817 code3: 'csb', 920 818 code2: '', 921 819 name: 'Kashubian', 922 - en: 'Kashubian', 923 820 android: false, 924 821 ios: false, 925 822 }, ··· 927 824 code3: 'cus', 928 825 code2: '', 929 826 name: 'Cushitic languages', 930 - en: 'Cushitic languages', 931 827 android: false, 932 828 ios: false, 933 829 }, ··· 935 831 code3: 'cym', 936 832 code2: 'cy', 937 833 name: 'Welsh', 938 - en: 'Welsh', 939 834 android: true, 940 835 ios: false, 941 836 }, 942 837 { 943 838 code3: 'cze', 944 839 code2: 'cs', 945 - name: 'čeština', 946 - en: 'Czech', 840 + name: 'Czech', 947 841 android: true, 948 842 ios: false, 949 843 }, ··· 951 845 code3: 'dak', 952 846 code2: '', 953 847 name: 'Dakota', 954 - en: 'Dakota', 955 848 android: false, 956 849 ios: false, 957 850 }, 958 851 { 959 852 code3: 'dan', 960 853 code2: 'da', 961 - name: 'dansk', 962 - en: 'Danish', 854 + name: 'Danish', 963 855 android: true, 964 856 ios: false, 965 857 }, ··· 967 859 code3: 'dar', 968 860 code2: '', 969 861 name: 'Dargwa', 970 - en: 'Dargwa', 971 862 android: false, 972 863 ios: false, 973 864 }, ··· 975 866 code3: 'day', 976 867 code2: '', 977 868 name: 'Land Dayak languages', 978 - en: 'Land Dayak languages', 979 869 android: false, 980 870 ios: false, 981 871 }, ··· 983 873 code3: 'del', 984 874 code2: '', 985 875 name: 'Delaware', 986 - en: 'Delaware', 987 876 android: false, 988 877 ios: false, 989 878 }, ··· 991 880 code3: 'den', 992 881 code2: '', 993 882 name: 'Slave (Athapascan)', 994 - en: 'Slave (Athapascan)', 995 883 android: false, 996 884 ios: false, 997 885 }, 998 886 { 999 887 code3: 'deu', 1000 888 code2: 'de', 1001 - name: 'Deutsch', 1002 - en: 'German', 889 + name: 'German', 1003 890 android: true, 1004 891 ios: true, 1005 892 }, ··· 1007 894 code3: 'dgr', 1008 895 code2: '', 1009 896 name: 'Dogrib', 1010 - en: 'Dogrib', 1011 897 android: false, 1012 898 ios: false, 1013 899 }, ··· 1015 901 code3: 'din', 1016 902 code2: '', 1017 903 name: 'Dinka', 1018 - en: 'Dinka', 1019 904 android: false, 1020 905 ios: false, 1021 906 }, ··· 1023 908 code3: 'div', 1024 909 code2: 'dv', 1025 910 name: 'Divehi', 1026 - en: 'Divehi', 1027 911 android: false, 1028 912 ios: false, 1029 913 }, ··· 1031 915 code3: 'doi', 1032 916 code2: '', 1033 917 name: 'Dogri', 1034 - en: 'Dogri', 1035 918 android: false, 1036 919 ios: false, 1037 920 }, ··· 1039 922 code3: 'dra', 1040 923 code2: '', 1041 924 name: 'Dravidian languages', 1042 - en: 'Dravidian languages', 1043 925 android: false, 1044 926 ios: false, 1045 927 }, ··· 1047 929 code3: 'dsb', 1048 930 code2: '', 1049 931 name: 'Lower Sorbian', 1050 - en: 'Lower Sorbian', 1051 932 android: false, 1052 933 ios: false, 1053 934 }, ··· 1055 936 code3: 'dua', 1056 937 code2: '', 1057 938 name: 'Duala', 1058 - en: 'Duala', 1059 939 android: false, 1060 940 ios: false, 1061 941 }, ··· 1063 943 code3: 'dum', 1064 944 code2: '', 1065 945 name: 'Dutch, Middle (ca.1050-1350)', 1066 - en: 'Dutch, Middle (ca.1050-1350)', 1067 946 android: false, 1068 947 ios: false, 1069 948 }, 1070 949 { 1071 950 code3: 'dut', 1072 951 code2: 'nl', 1073 - name: 'Nederlands', 1074 - en: 'Dutch', 952 + name: 'Dutch', 1075 953 android: true, 1076 954 ios: true, 1077 955 }, ··· 1079 957 code3: 'dyu', 1080 958 code2: '', 1081 959 name: 'Dyula', 1082 - en: 'Dyula', 1083 960 android: false, 1084 961 ios: false, 1085 962 }, ··· 1087 964 code3: 'dzo', 1088 965 code2: 'dz', 1089 966 name: 'Dzongkha', 1090 - en: 'Dzongkha', 1091 967 android: false, 1092 968 ios: false, 1093 969 }, ··· 1095 971 code3: 'efi', 1096 972 code2: '', 1097 973 name: 'Efik', 1098 - en: 'Efik', 1099 974 android: false, 1100 975 ios: false, 1101 976 }, ··· 1103 978 code3: 'egy', 1104 979 code2: '', 1105 980 name: 'Egyptian (Ancient)', 1106 - en: 'Egyptian (Ancient)', 1107 981 android: false, 1108 982 ios: false, 1109 983 }, ··· 1111 985 code3: 'eka', 1112 986 code2: '', 1113 987 name: 'Ekajuk', 1114 - en: 'Ekajuk', 1115 988 android: false, 1116 989 ios: false, 1117 990 }, 1118 991 { 1119 992 code3: 'ell', 1120 993 code2: 'el', 1121 - name: 'Ελληνικά', 1122 - en: 'Greek', 994 + name: 'Greek', 1123 995 android: true, 1124 996 ios: false, 1125 997 }, ··· 1127 999 code3: 'elx', 1128 1000 code2: '', 1129 1001 name: 'Elamite', 1130 - en: 'Elamite', 1131 1002 android: false, 1132 1003 ios: false, 1133 1004 }, ··· 1135 1006 code3: 'eng', 1136 1007 code2: 'en', 1137 1008 name: 'English', 1138 - en: 'English', 1139 1009 android: true, 1140 1010 ios: true, 1141 1011 }, ··· 1143 1013 code3: 'enm', 1144 1014 code2: '', 1145 1015 name: 'English, Middle (1100-1500)', 1146 - en: 'English, Middle (1100-1500)', 1147 1016 android: false, 1148 1017 ios: false, 1149 1018 }, ··· 1151 1020 code3: 'epo', 1152 1021 code2: 'eo', 1153 1022 name: 'Esperanto', 1154 - en: 'Esperanto', 1155 1023 android: true, 1156 1024 ios: false, 1157 1025 }, 1158 1026 { 1159 1027 code3: 'est', 1160 1028 code2: 'et', 1161 - name: 'eesti', 1162 - en: 'Estonian', 1029 + name: 'Estonian', 1163 1030 android: true, 1164 1031 ios: false, 1165 1032 }, ··· 1167 1034 code3: 'eus', 1168 1035 code2: 'eu', 1169 1036 name: 'Basque', 1170 - en: 'Basque', 1171 1037 android: false, 1172 1038 ios: false, 1173 1039 }, ··· 1175 1041 code3: 'ewe', 1176 1042 code2: 'ee', 1177 1043 name: 'Ewe', 1178 - en: 'Ewe', 1179 1044 android: false, 1180 1045 ios: false, 1181 1046 }, ··· 1183 1048 code3: 'ewo', 1184 1049 code2: '', 1185 1050 name: 'Ewondo', 1186 - en: 'Ewondo', 1187 1051 android: false, 1188 1052 ios: false, 1189 1053 }, ··· 1191 1055 code3: 'fan', 1192 1056 code2: '', 1193 1057 name: 'Fang', 1194 - en: 'Fang', 1195 1058 android: false, 1196 1059 ios: false, 1197 1060 }, ··· 1199 1062 code3: 'fao', 1200 1063 code2: 'fo', 1201 1064 name: 'Faroese', 1202 - en: 'Faroese', 1203 1065 android: false, 1204 1066 ios: false, 1205 1067 }, 1206 1068 { 1207 1069 code3: 'fas', 1208 1070 code2: 'fa', 1209 - name: 'فارسی', 1210 - en: 'Persian', 1071 + name: 'Persian', 1211 1072 android: true, 1212 1073 ios: false, 1213 1074 }, ··· 1215 1076 code3: 'fat', 1216 1077 code2: '', 1217 1078 name: 'Akan', 1218 - en: 'Akan', 1219 1079 android: false, 1220 1080 ios: false, 1221 1081 }, ··· 1223 1083 code3: 'fij', 1224 1084 code2: 'fj', 1225 1085 name: 'Fijian', 1226 - en: 'Fijian', 1227 1086 android: false, 1228 1087 ios: false, 1229 1088 }, ··· 1231 1090 code3: 'fil', 1232 1091 code2: '', 1233 1092 name: 'Filipino', 1234 - en: 'Filipino', 1235 1093 android: false, 1236 1094 ios: false, 1237 1095 }, 1238 1096 { 1239 1097 code3: 'fin', 1240 1098 code2: 'fi', 1241 - name: 'suomi', 1242 - en: 'Finnish', 1099 + name: 'Finnish', 1243 1100 android: true, 1244 1101 ios: false, 1245 1102 }, ··· 1247 1104 code3: 'fiu', 1248 1105 code2: '', 1249 1106 name: 'Finno-Ugrian languages', 1250 - en: 'Finno-Ugrian languages', 1251 1107 android: false, 1252 1108 ios: false, 1253 1109 }, ··· 1255 1111 code3: 'fon', 1256 1112 code2: '', 1257 1113 name: 'Fon', 1258 - en: 'Fon', 1259 1114 android: false, 1260 1115 ios: false, 1261 1116 }, 1262 1117 { 1263 1118 code3: 'fra', 1264 1119 code2: 'fr', 1265 - name: 'français', 1266 - en: 'French', 1120 + name: 'French', 1267 1121 android: true, 1268 1122 ios: true, 1269 1123 }, 1270 1124 { 1271 1125 code3: 'fre', 1272 1126 code2: 'fr', 1273 - name: 'français', 1274 - en: 'French', 1127 + name: 'French', 1275 1128 android: true, 1276 1129 ios: true, 1277 1130 }, ··· 1279 1132 code3: 'frm', 1280 1133 code2: '', 1281 1134 name: 'French, Middle (ca.1400-1600)', 1282 - en: 'French, Middle (ca.1400-1600)', 1283 1135 android: false, 1284 1136 ios: false, 1285 1137 }, ··· 1287 1139 code3: 'fro', 1288 1140 code2: '', 1289 1141 name: 'French, Old (842-ca.1400)', 1290 - en: 'French, Old (842-ca.1400)', 1291 1142 android: false, 1292 1143 ios: false, 1293 1144 }, ··· 1295 1146 code3: 'frr', 1296 1147 code2: '', 1297 1148 name: 'Northern Frisian', 1298 - en: 'Northern Frisian', 1299 1149 android: false, 1300 1150 ios: false, 1301 1151 }, ··· 1303 1153 code3: 'frs', 1304 1154 code2: '', 1305 1155 name: 'Eastern Frisian', 1306 - en: 'Eastern Frisian', 1307 1156 android: false, 1308 1157 ios: false, 1309 1158 }, ··· 1311 1160 code3: 'fry', 1312 1161 code2: 'fy', 1313 1162 name: 'Western Frisian', 1314 - en: 'Western Frisian', 1315 1163 android: false, 1316 1164 ios: false, 1317 1165 }, ··· 1319 1167 code3: 'ful', 1320 1168 code2: 'ff', 1321 1169 name: 'Fulah', 1322 - en: 'Fulah', 1323 1170 android: false, 1324 1171 ios: false, 1325 1172 }, ··· 1327 1174 code3: 'fur', 1328 1175 code2: '', 1329 1176 name: 'Friulian', 1330 - en: 'Friulian', 1331 1177 android: false, 1332 1178 ios: false, 1333 1179 }, ··· 1335 1181 code3: 'gaa', 1336 1182 code2: '', 1337 1183 name: 'Ga', 1338 - en: 'Ga', 1339 1184 android: false, 1340 1185 ios: false, 1341 1186 }, ··· 1343 1188 code3: 'gay', 1344 1189 code2: '', 1345 1190 name: 'Gayo', 1346 - en: 'Gayo', 1347 1191 android: false, 1348 1192 ios: false, 1349 1193 }, ··· 1351 1195 code3: 'gba', 1352 1196 code2: '', 1353 1197 name: 'Gbaya', 1354 - en: 'Gbaya', 1355 1198 android: false, 1356 1199 ios: false, 1357 1200 }, ··· 1359 1202 code3: 'gem', 1360 1203 code2: '', 1361 1204 name: 'Germanic languages', 1362 - en: 'Germanic languages', 1363 1205 android: false, 1364 1206 ios: false, 1365 1207 }, ··· 1367 1209 code3: 'geo', 1368 1210 code2: 'ka', 1369 1211 name: 'Georgian', 1370 - en: 'Georgian', 1371 1212 android: true, 1372 1213 ios: false, 1373 1214 }, 1374 1215 { 1375 1216 code3: 'ger', 1376 1217 code2: 'de', 1377 - name: 'Deutsch', 1378 - en: 'German', 1218 + name: 'German', 1379 1219 android: true, 1380 1220 ios: true, 1381 1221 }, ··· 1383 1223 code3: 'gez', 1384 1224 code2: '', 1385 1225 name: 'Geez', 1386 - en: 'Geez', 1387 1226 android: false, 1388 1227 ios: false, 1389 1228 }, ··· 1391 1230 code3: 'gil', 1392 1231 code2: '', 1393 1232 name: 'Gilbertese', 1394 - en: 'Gilbertese', 1395 1233 android: false, 1396 1234 ios: false, 1397 1235 }, ··· 1399 1237 code3: 'gla', 1400 1238 code2: 'gd', 1401 1239 name: 'Scottish Gaelic', 1402 - en: 'Scottish Gaelic', 1403 1240 android: false, 1404 1241 ios: false, 1405 1242 }, ··· 1407 1244 code3: 'gle', 1408 1245 code2: 'ga', 1409 1246 name: 'Irish', 1410 - en: 'Irish', 1411 1247 android: true, 1412 1248 ios: false, 1413 1249 }, ··· 1415 1251 code3: 'glg', 1416 1252 code2: 'gl', 1417 1253 name: 'Galician', 1418 - en: 'Galician', 1419 1254 android: true, 1420 1255 ios: false, 1421 1256 }, ··· 1423 1258 code3: 'glv', 1424 1259 code2: 'gv', 1425 1260 name: 'Manx', 1426 - en: 'Manx', 1427 1261 android: false, 1428 1262 ios: false, 1429 1263 }, ··· 1431 1265 code3: 'gmh', 1432 1266 code2: '', 1433 1267 name: 'German, Middle High (ca.1050-1500)', 1434 - en: 'German, Middle High (ca.1050-1500)', 1435 1268 android: false, 1436 1269 ios: false, 1437 1270 }, ··· 1439 1272 code3: 'goh', 1440 1273 code2: '', 1441 1274 name: 'German, Old High (ca.750-1050)', 1442 - en: 'German, Old High (ca.750-1050)', 1443 1275 android: false, 1444 1276 ios: false, 1445 1277 }, ··· 1447 1279 code3: 'gon', 1448 1280 code2: '', 1449 1281 name: 'Gondi', 1450 - en: 'Gondi', 1451 1282 android: false, 1452 1283 ios: false, 1453 1284 }, ··· 1455 1286 code3: 'gor', 1456 1287 code2: '', 1457 1288 name: 'Gorontalo', 1458 - en: 'Gorontalo', 1459 1289 android: false, 1460 1290 ios: false, 1461 1291 }, ··· 1463 1293 code3: 'got', 1464 1294 code2: '', 1465 1295 name: 'Gothic', 1466 - en: 'Gothic', 1467 1296 android: false, 1468 1297 ios: false, 1469 1298 }, ··· 1471 1300 code3: 'grb', 1472 1301 code2: '', 1473 1302 name: 'Grebo', 1474 - en: 'Grebo', 1475 1303 android: false, 1476 1304 ios: false, 1477 1305 }, ··· 1479 1307 code3: 'grc', 1480 1308 code2: '', 1481 1309 name: 'Ancient Greek', 1482 - en: 'Ancient Greek', 1483 1310 android: false, 1484 1311 ios: false, 1485 1312 }, 1486 1313 { 1487 1314 code3: 'gre', 1488 1315 code2: 'el', 1489 - name: 'Ελληνικά', 1490 - en: 'Greek', 1316 + name: 'Greek', 1491 1317 android: true, 1492 1318 ios: false, 1493 1319 }, ··· 1495 1321 code3: 'grn', 1496 1322 code2: 'gn', 1497 1323 name: 'Guarani', 1498 - en: 'Guarani', 1499 1324 android: false, 1500 1325 ios: false, 1501 1326 }, ··· 1503 1328 code3: 'gsw', 1504 1329 code2: '', 1505 1330 name: 'Swiss German; Alemannic; Alsatian', 1506 - en: 'Swiss German; Alemannic; Alsatian', 1507 1331 android: false, 1508 1332 ios: false, 1509 1333 }, 1510 1334 { 1511 1335 code3: 'guj', 1512 1336 code2: 'gu', 1513 - name: 'ગુજરાતી', 1514 - en: 'Gujarati', 1337 + name: 'Gujarati', 1515 1338 android: true, 1516 1339 ios: false, 1517 1340 }, ··· 1519 1342 code3: 'gwi', 1520 1343 code2: '', 1521 1344 name: "Gwich'in", 1522 - en: "Gwich'in", 1523 1345 android: false, 1524 1346 ios: false, 1525 1347 }, ··· 1527 1349 code3: 'hai', 1528 1350 code2: '', 1529 1351 name: 'Haida', 1530 - en: 'Haida', 1531 1352 android: false, 1532 1353 ios: false, 1533 1354 }, ··· 1535 1356 code3: 'hat', 1536 1357 code2: 'ht', 1537 1358 name: 'Haitian Creole', 1538 - en: 'Haitian Creole', 1539 1359 android: true, 1540 1360 ios: false, 1541 1361 }, ··· 1543 1363 code3: 'hau', 1544 1364 code2: 'ha', 1545 1365 name: 'Hausa', 1546 - en: 'Hausa', 1547 1366 android: false, 1548 1367 ios: false, 1549 1368 }, ··· 1551 1370 code3: 'haw', 1552 1371 code2: '', 1553 1372 name: 'Hawaiian', 1554 - en: 'Hawaiian', 1555 1373 android: false, 1556 1374 ios: false, 1557 1375 }, 1558 1376 { 1559 1377 code3: 'heb', 1560 1378 code2: 'he', 1561 - name: 'עברית', 1562 - en: 'Hebrew', 1379 + name: 'Hebrew', 1563 1380 android: true, 1564 1381 ios: false, 1565 1382 }, ··· 1567 1384 code3: 'her', 1568 1385 code2: 'hz', 1569 1386 name: 'Herero', 1570 - en: 'Herero', 1571 1387 android: false, 1572 1388 ios: false, 1573 1389 }, ··· 1575 1391 code3: 'hil', 1576 1392 code2: '', 1577 1393 name: 'Hiligaynon', 1578 - en: 'Hiligaynon', 1579 1394 android: false, 1580 1395 ios: false, 1581 1396 }, ··· 1583 1398 code3: 'him', 1584 1399 code2: '', 1585 1400 name: 'Himachali languages; Western Pahari languages', 1586 - en: 'Himachali languages; Western Pahari languages', 1587 1401 android: false, 1588 1402 ios: false, 1589 1403 }, 1590 1404 { 1591 1405 code3: 'hin', 1592 1406 code2: 'hi', 1593 - name: 'हिन्दी', 1594 - en: 'Hindi', 1407 + name: 'Hindi', 1595 1408 android: true, 1596 1409 ios: true, 1597 1410 }, ··· 1599 1412 code3: 'hit', 1600 1413 code2: '', 1601 1414 name: 'Hittite', 1602 - en: 'Hittite', 1603 1415 android: false, 1604 1416 ios: false, 1605 1417 }, ··· 1607 1419 code3: 'hmn', 1608 1420 code2: '', 1609 1421 name: 'Hmong', 1610 - en: 'Hmong', 1611 1422 android: false, 1612 1423 ios: false, 1613 1424 }, ··· 1615 1426 code3: 'hmo', 1616 1427 code2: 'ho', 1617 1428 name: 'Hiri Motu', 1618 - en: 'Hiri Motu', 1619 1429 android: false, 1620 1430 ios: false, 1621 1431 }, 1622 1432 { 1623 1433 code3: 'hrv', 1624 1434 code2: 'hr', 1625 - name: 'hrvatski', 1626 - en: 'Croatian', 1435 + name: 'Croatian', 1627 1436 android: true, 1628 1437 ios: false, 1629 1438 }, ··· 1631 1440 code3: 'hsb', 1632 1441 code2: '', 1633 1442 name: 'Upper Sorbian', 1634 - en: 'Upper Sorbian', 1635 1443 android: false, 1636 1444 ios: false, 1637 1445 }, 1638 1446 { 1639 1447 code3: 'hun', 1640 1448 code2: 'hu', 1641 - name: 'magyar', 1642 - en: 'Hungarian', 1449 + name: 'Hungarian', 1643 1450 android: true, 1644 1451 ios: false, 1645 1452 }, ··· 1647 1454 code3: 'hup', 1648 1455 code2: '', 1649 1456 name: 'Hupa', 1650 - en: 'Hupa', 1651 1457 android: false, 1652 1458 ios: false, 1653 1459 }, ··· 1655 1461 code3: 'hye', 1656 1462 code2: 'hy', 1657 1463 name: 'Armenian', 1658 - en: 'Armenian', 1659 1464 android: false, 1660 1465 ios: false, 1661 1466 }, ··· 1663 1468 code3: 'iba', 1664 1469 code2: '', 1665 1470 name: 'Iban', 1666 - en: 'Iban', 1667 1471 android: false, 1668 1472 ios: false, 1669 1473 }, ··· 1671 1475 code3: 'ibo', 1672 1476 code2: 'ig', 1673 1477 name: 'Igbo', 1674 - en: 'Igbo', 1675 1478 android: false, 1676 1479 ios: false, 1677 1480 }, ··· 1679 1482 code3: 'ice', 1680 1483 code2: 'is', 1681 1484 name: 'Icelandic', 1682 - en: 'Icelandic', 1683 1485 android: true, 1684 1486 ios: false, 1685 1487 }, ··· 1687 1489 code3: 'ido', 1688 1490 code2: 'io', 1689 1491 name: 'Ido', 1690 - en: 'Ido', 1691 1492 android: false, 1692 1493 ios: false, 1693 1494 }, ··· 1695 1496 code3: 'iii', 1696 1497 code2: 'ii', 1697 1498 name: 'Sichuan Yi; Nuosu', 1698 - en: 'Sichuan Yi; Nuosu', 1699 1499 android: false, 1700 1500 ios: false, 1701 1501 }, ··· 1703 1503 code3: 'ijo', 1704 1504 code2: '', 1705 1505 name: 'Ijo languages', 1706 - en: 'Ijo languages', 1707 1506 android: false, 1708 1507 ios: false, 1709 1508 }, ··· 1711 1510 code3: 'iku', 1712 1511 code2: 'iu', 1713 1512 name: 'Inuktitut', 1714 - en: 'Inuktitut', 1715 1513 android: false, 1716 1514 ios: false, 1717 1515 }, ··· 1719 1517 code3: 'ile', 1720 1518 code2: 'ie', 1721 1519 name: 'Interlingue', 1722 - en: 'Interlingue', 1723 1520 android: false, 1724 1521 ios: false, 1725 1522 }, ··· 1727 1524 code3: 'ilo', 1728 1525 code2: '', 1729 1526 name: 'Iloko', 1730 - en: 'Iloko', 1731 1527 android: false, 1732 1528 ios: false, 1733 1529 }, ··· 1735 1531 code3: 'ina', 1736 1532 code2: 'ia', 1737 1533 name: 'Interlingua', 1738 - en: 'Interlingua', 1739 1534 android: false, 1740 1535 ios: false, 1741 1536 }, ··· 1743 1538 code3: 'inc', 1744 1539 code2: '', 1745 1540 name: 'Indic languages', 1746 - en: 'Indic languages', 1747 1541 android: false, 1748 1542 ios: false, 1749 1543 }, 1750 1544 { 1751 1545 code3: 'ind', 1752 1546 code2: 'id', 1753 - name: 'Indonesia', 1754 - en: 'Indonesian', 1547 + name: 'Indonesian', 1755 1548 android: true, 1756 1549 ios: false, 1757 1550 }, ··· 1759 1552 code3: 'ine', 1760 1553 code2: '', 1761 1554 name: 'Indo-European languages', 1762 - en: 'Indo-European languages', 1763 1555 android: false, 1764 1556 ios: false, 1765 1557 }, ··· 1767 1559 code3: 'inh', 1768 1560 code2: '', 1769 1561 name: 'Ingush', 1770 - en: 'Ingush', 1771 1562 android: false, 1772 1563 ios: false, 1773 1564 }, ··· 1775 1566 code3: 'ipk', 1776 1567 code2: 'ik', 1777 1568 name: 'Inupiaq', 1778 - en: 'Inupiaq', 1779 1569 android: false, 1780 1570 ios: false, 1781 1571 }, ··· 1783 1573 code3: 'ira', 1784 1574 code2: '', 1785 1575 name: 'Iranian languages', 1786 - en: 'Iranian languages', 1787 1576 android: false, 1788 1577 ios: false, 1789 1578 }, ··· 1791 1580 code3: 'iro', 1792 1581 code2: '', 1793 1582 name: 'Iroquoian languages', 1794 - en: 'Iroquoian languages', 1795 1583 android: false, 1796 1584 ios: false, 1797 1585 }, ··· 1799 1587 code3: 'isl', 1800 1588 code2: 'is', 1801 1589 name: 'Icelandic', 1802 - en: 'Icelandic', 1803 1590 android: true, 1804 1591 ios: false, 1805 1592 }, 1806 1593 { 1807 1594 code3: 'ita', 1808 1595 code2: 'it', 1809 - name: 'italiano', 1810 - en: 'Italian', 1596 + name: 'Italian', 1811 1597 android: true, 1812 1598 ios: true, 1813 1599 }, ··· 1815 1601 code3: 'jav', 1816 1602 code2: 'jv', 1817 1603 name: 'Javanese', 1818 - en: 'Javanese', 1819 1604 android: false, 1820 1605 ios: false, 1821 1606 }, ··· 1823 1608 code3: 'jbo', 1824 1609 code2: '', 1825 1610 name: 'Lojban', 1826 - en: 'Lojban', 1827 1611 android: false, 1828 1612 ios: false, 1829 1613 }, 1830 1614 { 1831 1615 code3: 'jpn', 1832 1616 code2: 'ja', 1833 - name: '日本語', 1834 - en: 'Japanese', 1617 + name: 'Japanese', 1835 1618 android: true, 1836 1619 ios: true, 1837 1620 }, ··· 1839 1622 code3: 'jpr', 1840 1623 code2: '', 1841 1624 name: 'Judeo-Persian', 1842 - en: 'Judeo-Persian', 1843 1625 android: false, 1844 1626 ios: false, 1845 1627 }, ··· 1847 1629 code3: 'jrb', 1848 1630 code2: '', 1849 1631 name: 'Judeo-Arabic', 1850 - en: 'Judeo-Arabic', 1851 1632 android: false, 1852 1633 ios: false, 1853 1634 }, ··· 1855 1636 code3: 'kaa', 1856 1637 code2: '', 1857 1638 name: 'Kara-Kalpak', 1858 - en: 'Kara-Kalpak', 1859 1639 android: false, 1860 1640 ios: false, 1861 1641 }, ··· 1863 1643 code3: 'kab', 1864 1644 code2: '', 1865 1645 name: 'Kabyle', 1866 - en: 'Kabyle', 1867 1646 android: false, 1868 1647 ios: false, 1869 1648 }, ··· 1871 1650 code3: 'kac', 1872 1651 code2: '', 1873 1652 name: 'Kachin; Jingpho', 1874 - en: 'Kachin; Jingpho', 1875 1653 android: false, 1876 1654 ios: false, 1877 1655 }, ··· 1879 1657 code3: 'kal', 1880 1658 code2: 'kl', 1881 1659 name: 'Kalaallisut', 1882 - en: 'Kalaallisut', 1883 1660 android: false, 1884 1661 ios: false, 1885 1662 }, ··· 1887 1664 code3: 'kam', 1888 1665 code2: '', 1889 1666 name: 'Kamba', 1890 - en: 'Kamba', 1891 1667 android: false, 1892 1668 ios: false, 1893 1669 }, 1894 1670 { 1895 1671 code3: 'kan', 1896 1672 code2: 'kn', 1897 - name: 'ಕನ್ನಡ', 1898 - en: 'Kannada', 1673 + name: 'Kannada', 1899 1674 android: true, 1900 1675 ios: false, 1901 1676 }, ··· 1903 1678 code3: 'kar', 1904 1679 code2: '', 1905 1680 name: 'Karen languages', 1906 - en: 'Karen languages', 1907 1681 android: false, 1908 1682 ios: false, 1909 1683 }, ··· 1911 1685 code3: 'kas', 1912 1686 code2: 'ks', 1913 1687 name: 'Kashmiri', 1914 - en: 'Kashmiri', 1915 1688 android: false, 1916 1689 ios: false, 1917 1690 }, ··· 1919 1692 code3: 'kat', 1920 1693 code2: 'ka', 1921 1694 name: 'Georgian', 1922 - en: 'Georgian', 1923 1695 android: true, 1924 1696 ios: false, 1925 1697 }, ··· 1927 1699 code3: 'kau', 1928 1700 code2: 'kr', 1929 1701 name: 'Kanuri', 1930 - en: 'Kanuri', 1931 1702 android: false, 1932 1703 ios: false, 1933 1704 }, ··· 1935 1706 code3: 'kaw', 1936 1707 code2: '', 1937 1708 name: 'Kawi', 1938 - en: 'Kawi', 1939 1709 android: false, 1940 1710 ios: false, 1941 1711 }, ··· 1943 1713 code3: 'kaz', 1944 1714 code2: 'kk', 1945 1715 name: 'Kazakh', 1946 - en: 'Kazakh', 1947 1716 android: false, 1948 1717 ios: false, 1949 1718 }, ··· 1951 1720 code3: 'kbd', 1952 1721 code2: '', 1953 1722 name: 'Kabardian', 1954 - en: 'Kabardian', 1955 1723 android: false, 1956 1724 ios: false, 1957 1725 }, ··· 1959 1727 code3: 'kha', 1960 1728 code2: '', 1961 1729 name: 'Khasi', 1962 - en: 'Khasi', 1963 1730 android: false, 1964 1731 ios: false, 1965 1732 }, ··· 1967 1734 code3: 'khi', 1968 1735 code2: '', 1969 1736 name: 'Khoisan languages', 1970 - en: 'Khoisan languages', 1971 1737 android: false, 1972 1738 ios: false, 1973 1739 }, ··· 1975 1741 code3: 'khm', 1976 1742 code2: 'km', 1977 1743 name: 'Khmer', 1978 - en: 'Khmer', 1979 1744 android: false, 1980 1745 ios: false, 1981 1746 }, ··· 1983 1748 code3: 'kho', 1984 1749 code2: '', 1985 1750 name: 'Khotanese; Sakan', 1986 - en: 'Khotanese; Sakan', 1987 1751 android: false, 1988 1752 ios: false, 1989 1753 }, ··· 1991 1755 code3: 'kik', 1992 1756 code2: 'ki', 1993 1757 name: 'Kikuyu; Gikuyu', 1994 - en: 'Kikuyu; Gikuyu', 1995 1758 android: false, 1996 1759 ios: false, 1997 1760 }, ··· 1999 1762 code3: 'kin', 2000 1763 code2: 'rw', 2001 1764 name: 'Kinyarwanda', 2002 - en: 'Kinyarwanda', 2003 1765 android: false, 2004 1766 ios: false, 2005 1767 }, ··· 2007 1769 code3: 'kir', 2008 1770 code2: 'ky', 2009 1771 name: 'Kyrgyz', 2010 - en: 'Kyrgyz', 2011 1772 android: false, 2012 1773 ios: false, 2013 1774 }, ··· 2015 1776 code3: 'kmb', 2016 1777 code2: '', 2017 1778 name: 'Kimbundu', 2018 - en: 'Kimbundu', 2019 1779 android: false, 2020 1780 ios: false, 2021 1781 }, 2022 1782 { 2023 1783 code3: 'kok', 2024 1784 code2: '', 2025 - name: 'कोंकणी', 2026 - en: 'Konkani', 1785 + name: 'Konkani', 2027 1786 android: false, 2028 1787 ios: false, 2029 1788 }, ··· 2031 1790 code3: 'kom', 2032 1791 code2: 'kv', 2033 1792 name: 'Komi', 2034 - en: 'Komi', 2035 1793 android: false, 2036 1794 ios: false, 2037 1795 }, ··· 2039 1797 code3: 'kon', 2040 1798 code2: 'kg', 2041 1799 name: 'Kongo', 2042 - en: 'Kongo', 2043 1800 android: false, 2044 1801 ios: false, 2045 1802 }, 2046 1803 { 2047 1804 code3: 'kor', 2048 1805 code2: 'ko', 2049 - name: '한국어', 2050 - en: 'Korean', 1806 + name: 'Korean', 2051 1807 android: true, 2052 1808 ios: true, 2053 1809 }, ··· 2055 1811 code3: 'kos', 2056 1812 code2: '', 2057 1813 name: 'Kosraean', 2058 - en: 'Kosraean', 2059 1814 android: false, 2060 1815 ios: false, 2061 1816 }, ··· 2063 1818 code3: 'kpe', 2064 1819 code2: '', 2065 1820 name: 'Kpelle', 2066 - en: 'Kpelle', 2067 1821 android: false, 2068 1822 ios: false, 2069 1823 }, ··· 2071 1825 code3: 'krc', 2072 1826 code2: '', 2073 1827 name: 'Karachay-Balkar', 2074 - en: 'Karachay-Balkar', 2075 1828 android: false, 2076 1829 ios: false, 2077 1830 }, ··· 2079 1832 code3: 'krl', 2080 1833 code2: '', 2081 1834 name: 'Karelian', 2082 - en: 'Karelian', 2083 1835 android: false, 2084 1836 ios: false, 2085 1837 }, ··· 2087 1839 code3: 'kro', 2088 1840 code2: '', 2089 1841 name: 'Kru languages', 2090 - en: 'Kru languages', 2091 1842 android: false, 2092 1843 ios: false, 2093 1844 }, ··· 2095 1846 code3: 'kru', 2096 1847 code2: '', 2097 1848 name: 'Kurukh', 2098 - en: 'Kurukh', 2099 1849 android: false, 2100 1850 ios: false, 2101 1851 }, ··· 2103 1853 code3: 'kua', 2104 1854 code2: 'kj', 2105 1855 name: 'Kuanyama; Kwanyama', 2106 - en: 'Kuanyama; Kwanyama', 2107 1856 android: false, 2108 1857 ios: false, 2109 1858 }, ··· 2111 1860 code3: 'kum', 2112 1861 code2: '', 2113 1862 name: 'Kumyk', 2114 - en: 'Kumyk', 2115 1863 android: false, 2116 1864 ios: false, 2117 1865 }, ··· 2119 1867 code3: 'kur', 2120 1868 code2: 'ku', 2121 1869 name: 'Kurdish', 2122 - en: 'Kurdish', 2123 1870 android: false, 2124 1871 ios: false, 2125 1872 }, ··· 2127 1874 code3: 'kut', 2128 1875 code2: '', 2129 1876 name: 'Kutenai', 2130 - en: 'Kutenai', 2131 1877 android: false, 2132 1878 ios: false, 2133 1879 }, ··· 2135 1881 code3: 'lad', 2136 1882 code2: '', 2137 1883 name: 'Ladino', 2138 - en: 'Ladino', 2139 1884 android: false, 2140 1885 ios: false, 2141 1886 }, ··· 2143 1888 code3: 'lah', 2144 1889 code2: '', 2145 1890 name: 'Lahnda', 2146 - en: 'Lahnda', 2147 1891 android: false, 2148 1892 ios: false, 2149 1893 }, ··· 2151 1895 code3: 'lam', 2152 1896 code2: '', 2153 1897 name: 'Lamba', 2154 - en: 'Lamba', 2155 1898 android: false, 2156 1899 ios: false, 2157 1900 }, ··· 2159 1902 code3: 'lao', 2160 1903 code2: 'lo', 2161 1904 name: 'Lao', 2162 - en: 'Lao', 2163 1905 android: false, 2164 1906 ios: false, 2165 1907 }, ··· 2167 1909 code3: 'lat', 2168 1910 code2: 'la', 2169 1911 name: 'Latin', 2170 - en: 'Latin', 2171 1912 android: false, 2172 1913 ios: false, 2173 1914 }, 2174 1915 { 2175 1916 code3: 'lav', 2176 1917 code2: 'lv', 2177 - name: 'latviešu', 2178 - en: 'Latvian', 1918 + name: 'Latvian', 2179 1919 android: true, 2180 1920 ios: false, 2181 1921 }, ··· 2183 1923 code3: 'lez', 2184 1924 code2: '', 2185 1925 name: 'Lezghian', 2186 - en: 'Lezghian', 2187 1926 android: false, 2188 1927 ios: false, 2189 1928 }, ··· 2191 1930 code3: 'lim', 2192 1931 code2: 'li', 2193 1932 name: 'Limburgish', 2194 - en: 'Limburgish', 2195 1933 android: false, 2196 1934 ios: false, 2197 1935 }, ··· 2199 1937 code3: 'lin', 2200 1938 code2: 'ln', 2201 1939 name: 'Lingala', 2202 - en: 'Lingala', 2203 1940 android: false, 2204 1941 ios: false, 2205 1942 }, 2206 1943 { 2207 1944 code3: 'lit', 2208 1945 code2: 'lt', 2209 - name: 'lietuvių', 2210 - en: 'Lithuanian', 1946 + name: 'Lithuanian', 2211 1947 android: true, 2212 1948 ios: false, 2213 1949 }, ··· 2215 1951 code3: 'lol', 2216 1952 code2: '', 2217 1953 name: 'Mongo', 2218 - en: 'Mongo', 2219 1954 android: false, 2220 1955 ios: false, 2221 1956 }, ··· 2223 1958 code3: 'loz', 2224 1959 code2: '', 2225 1960 name: 'Lozi', 2226 - en: 'Lozi', 2227 1961 android: false, 2228 1962 ios: false, 2229 1963 }, ··· 2231 1965 code3: 'ltz', 2232 1966 code2: 'lb', 2233 1967 name: 'Luxembourgish', 2234 - en: 'Luxembourgish', 2235 1968 android: false, 2236 1969 ios: false, 2237 1970 }, ··· 2239 1972 code3: 'lua', 2240 1973 code2: '', 2241 1974 name: 'Luba-Lulua', 2242 - en: 'Luba-Lulua', 2243 1975 android: false, 2244 1976 ios: false, 2245 1977 }, ··· 2247 1979 code3: 'lub', 2248 1980 code2: 'lu', 2249 1981 name: 'Luba-Katanga', 2250 - en: 'Luba-Katanga', 2251 1982 android: false, 2252 1983 ios: false, 2253 1984 }, ··· 2255 1986 code3: 'lug', 2256 1987 code2: 'lg', 2257 1988 name: 'Ganda', 2258 - en: 'Ganda', 2259 1989 android: false, 2260 1990 ios: false, 2261 1991 }, ··· 2263 1993 code3: 'lui', 2264 1994 code2: '', 2265 1995 name: 'Luiseno', 2266 - en: 'Luiseno', 2267 1996 android: false, 2268 1997 ios: false, 2269 1998 }, ··· 2271 2000 code3: 'lun', 2272 2001 code2: '', 2273 2002 name: 'Lunda', 2274 - en: 'Lunda', 2275 2003 android: false, 2276 2004 ios: false, 2277 2005 }, ··· 2279 2007 code3: 'luo', 2280 2008 code2: '', 2281 2009 name: 'Luo (Kenya and Tanzania)', 2282 - en: 'Luo (Kenya and Tanzania)', 2283 2010 android: false, 2284 2011 ios: false, 2285 2012 }, ··· 2287 2014 code3: 'lus', 2288 2015 code2: '', 2289 2016 name: 'Mizo', 2290 - en: 'Mizo', 2291 2017 android: false, 2292 2018 ios: false, 2293 2019 }, ··· 2295 2021 code3: 'mac', 2296 2022 code2: 'mk', 2297 2023 name: 'Macedonian', 2298 - en: 'Macedonian', 2299 2024 android: true, 2300 2025 ios: false, 2301 2026 }, ··· 2303 2028 code3: 'mad', 2304 2029 code2: '', 2305 2030 name: 'Madurese', 2306 - en: 'Madurese', 2307 2031 android: false, 2308 2032 ios: false, 2309 2033 }, ··· 2311 2035 code3: 'mag', 2312 2036 code2: '', 2313 2037 name: 'Magahi', 2314 - en: 'Magahi', 2315 2038 android: false, 2316 2039 ios: false, 2317 2040 }, ··· 2319 2042 code3: 'mah', 2320 2043 code2: 'mh', 2321 2044 name: 'Marshallese', 2322 - en: 'Marshallese', 2323 2045 android: false, 2324 2046 ios: false, 2325 2047 }, ··· 2327 2049 code3: 'mai', 2328 2050 code2: '', 2329 2051 name: 'Maithili', 2330 - en: 'Maithili', 2331 2052 android: false, 2332 2053 ios: false, 2333 2054 }, ··· 2335 2056 code3: 'mak', 2336 2057 code2: '', 2337 2058 name: 'Makasar', 2338 - en: 'Makasar', 2339 2059 android: false, 2340 2060 ios: false, 2341 2061 }, 2342 2062 { 2343 2063 code3: 'mal', 2344 2064 code2: 'ml', 2345 - name: 'മലയാളം', 2346 - en: 'Malayalam', 2065 + name: 'Malayalam', 2347 2066 android: false, 2348 2067 ios: false, 2349 2068 }, ··· 2351 2070 code3: 'man', 2352 2071 code2: '', 2353 2072 name: 'Mandingo', 2354 - en: 'Mandingo', 2355 2073 android: false, 2356 2074 ios: false, 2357 2075 }, ··· 2359 2077 code3: 'mao', 2360 2078 code2: 'mi', 2361 2079 name: 'Māori', 2362 - en: 'Māori', 2363 2080 android: false, 2364 2081 ios: false, 2365 2082 }, ··· 2367 2084 code3: 'map', 2368 2085 code2: '', 2369 2086 name: 'Austronesian languages', 2370 - en: 'Austronesian languages', 2371 2087 android: false, 2372 2088 ios: false, 2373 2089 }, 2374 2090 { 2375 2091 code3: 'mar', 2376 2092 code2: 'mr', 2377 - name: 'मराठी', 2378 - en: 'Marathi', 2093 + name: 'Marathi', 2379 2094 android: true, 2380 2095 ios: false, 2381 2096 }, ··· 2383 2098 code3: 'mas', 2384 2099 code2: '', 2385 2100 name: 'Masai', 2386 - en: 'Masai', 2387 2101 android: false, 2388 2102 ios: false, 2389 2103 }, 2390 2104 { 2391 2105 code3: 'may', 2392 2106 code2: 'ms', 2393 - name: 'Melayu', 2394 - en: 'Malay', 2107 + name: 'Malay', 2395 2108 android: true, 2396 2109 ios: false, 2397 2110 }, ··· 2399 2112 code3: 'mdf', 2400 2113 code2: '', 2401 2114 name: 'Moksha', 2402 - en: 'Moksha', 2403 2115 android: false, 2404 2116 ios: false, 2405 2117 }, ··· 2407 2119 code3: 'mdr', 2408 2120 code2: '', 2409 2121 name: 'Mandar', 2410 - en: 'Mandar', 2411 2122 android: false, 2412 2123 ios: false, 2413 2124 }, ··· 2415 2126 code3: 'men', 2416 2127 code2: '', 2417 2128 name: 'Mende', 2418 - en: 'Mende', 2419 2129 android: false, 2420 2130 ios: false, 2421 2131 }, ··· 2423 2133 code3: 'mga', 2424 2134 code2: '', 2425 2135 name: 'Irish, Middle (900-1200)', 2426 - en: 'Irish, Middle (900-1200)', 2427 2136 android: false, 2428 2137 ios: false, 2429 2138 }, ··· 2431 2140 code3: 'mic', 2432 2141 code2: '', 2433 2142 name: "Mi'kmaq; Micmac", 2434 - en: "Mi'kmaq; Micmac", 2435 2143 android: false, 2436 2144 ios: false, 2437 2145 }, ··· 2439 2147 code3: 'min', 2440 2148 code2: '', 2441 2149 name: 'Minangkabau', 2442 - en: 'Minangkabau', 2443 2150 android: false, 2444 2151 ios: false, 2445 2152 }, ··· 2447 2154 code3: 'mis', 2448 2155 code2: '', 2449 2156 name: 'Uncoded languages', 2450 - en: 'Uncoded languages', 2451 2157 android: false, 2452 2158 ios: false, 2453 2159 }, ··· 2455 2161 code3: 'mkd', 2456 2162 code2: 'mk', 2457 2163 name: 'Macedonian', 2458 - en: 'Macedonian', 2459 2164 android: true, 2460 2165 ios: false, 2461 2166 }, ··· 2463 2168 code3: 'mkh', 2464 2169 code2: '', 2465 2170 name: 'Mon-Khmer languages', 2466 - en: 'Mon-Khmer languages', 2467 2171 android: false, 2468 2172 ios: false, 2469 2173 }, ··· 2471 2175 code3: 'mlg', 2472 2176 code2: 'mg', 2473 2177 name: 'Malagasy', 2474 - en: 'Malagasy', 2475 2178 android: false, 2476 2179 ios: false, 2477 2180 }, ··· 2479 2182 code3: 'mlt', 2480 2183 code2: 'mt', 2481 2184 name: 'Maltese', 2482 - en: 'Maltese', 2483 2185 android: true, 2484 2186 ios: false, 2485 2187 }, ··· 2487 2189 code3: 'mnc', 2488 2190 code2: '', 2489 2191 name: 'Manchu', 2490 - en: 'Manchu', 2491 2192 android: false, 2492 2193 ios: false, 2493 2194 }, ··· 2495 2196 code3: 'mni', 2496 2197 code2: '', 2497 2198 name: 'Manipuri', 2498 - en: 'Manipuri', 2499 2199 android: false, 2500 2200 ios: false, 2501 2201 }, ··· 2503 2203 code3: 'mno', 2504 2204 code2: '', 2505 2205 name: 'Manobo languages', 2506 - en: 'Manobo languages', 2507 2206 android: false, 2508 2207 ios: false, 2509 2208 }, ··· 2511 2210 code3: 'moh', 2512 2211 code2: '', 2513 2212 name: 'Mohawk', 2514 - en: 'Mohawk', 2515 2213 android: false, 2516 2214 ios: false, 2517 2215 }, ··· 2519 2217 code3: 'mon', 2520 2218 code2: 'mn', 2521 2219 name: 'Mongolian', 2522 - en: 'Mongolian', 2523 2220 android: false, 2524 2221 ios: false, 2525 2222 }, ··· 2527 2224 code3: 'mos', 2528 2225 code2: '', 2529 2226 name: 'Mossi', 2530 - en: 'Mossi', 2531 2227 android: false, 2532 2228 ios: false, 2533 2229 }, ··· 2535 2231 code3: 'mri', 2536 2232 code2: 'mi', 2537 2233 name: 'Māori', 2538 - en: 'Māori', 2539 2234 android: false, 2540 2235 ios: false, 2541 2236 }, 2542 2237 { 2543 2238 code3: 'msa', 2544 2239 code2: 'ms', 2545 - name: 'Melayu', 2546 - en: 'Malay', 2240 + name: 'Malay', 2547 2241 android: true, 2548 2242 ios: false, 2549 2243 }, ··· 2551 2245 code3: 'mul', 2552 2246 code2: '', 2553 2247 name: 'Multiple languages', 2554 - en: 'Multiple languages', 2555 2248 android: false, 2556 2249 ios: false, 2557 2250 }, ··· 2559 2252 code3: 'mun', 2560 2253 code2: '', 2561 2254 name: 'Munda languages', 2562 - en: 'Munda languages', 2563 2255 android: false, 2564 2256 ios: false, 2565 2257 }, ··· 2567 2259 code3: 'mus', 2568 2260 code2: '', 2569 2261 name: 'Creek', 2570 - en: 'Creek', 2571 2262 android: false, 2572 2263 ios: false, 2573 2264 }, ··· 2575 2266 code3: 'mwl', 2576 2267 code2: '', 2577 2268 name: 'Mirandese', 2578 - en: 'Mirandese', 2579 2269 android: false, 2580 2270 ios: false, 2581 2271 }, ··· 2583 2273 code3: 'mwr', 2584 2274 code2: '', 2585 2275 name: 'Marwari', 2586 - en: 'Marwari', 2587 2276 android: false, 2588 2277 ios: false, 2589 2278 }, ··· 2591 2280 code3: 'mya', 2592 2281 code2: 'my', 2593 2282 name: 'Burmese', 2594 - en: 'Burmese', 2595 2283 android: false, 2596 2284 ios: false, 2597 2285 }, ··· 2599 2287 code3: 'myn', 2600 2288 code2: '', 2601 2289 name: 'Mayan languages', 2602 - en: 'Mayan languages', 2603 2290 android: false, 2604 2291 ios: false, 2605 2292 }, ··· 2607 2294 code3: 'myv', 2608 2295 code2: '', 2609 2296 name: 'Erzya', 2610 - en: 'Erzya', 2611 2297 android: false, 2612 2298 ios: false, 2613 2299 }, ··· 2615 2301 code3: 'nah', 2616 2302 code2: '', 2617 2303 name: 'Nahuatl languages', 2618 - en: 'Nahuatl languages', 2619 2304 android: false, 2620 2305 ios: false, 2621 2306 }, ··· 2623 2308 code3: 'nai', 2624 2309 code2: '', 2625 2310 name: 'North American Indian languages', 2626 - en: 'North American Indian languages', 2627 2311 android: false, 2628 2312 ios: false, 2629 2313 }, ··· 2631 2315 code3: 'nap', 2632 2316 code2: '', 2633 2317 name: 'Neapolitan', 2634 - en: 'Neapolitan', 2635 2318 android: false, 2636 2319 ios: false, 2637 2320 }, ··· 2639 2322 code3: 'nau', 2640 2323 code2: 'na', 2641 2324 name: 'Nauru', 2642 - en: 'Nauru', 2643 2325 android: false, 2644 2326 ios: false, 2645 2327 }, ··· 2647 2329 code3: 'nav', 2648 2330 code2: 'nv', 2649 2331 name: 'Navajo', 2650 - en: 'Navajo', 2651 2332 android: false, 2652 2333 ios: false, 2653 2334 }, ··· 2655 2336 code3: 'nbl', 2656 2337 code2: 'nr', 2657 2338 name: 'South Ndebele', 2658 - en: 'South Ndebele', 2659 2339 android: false, 2660 2340 ios: false, 2661 2341 }, ··· 2663 2343 code3: 'nde', 2664 2344 code2: 'nd', 2665 2345 name: 'North Ndebele', 2666 - en: 'North Ndebele', 2667 2346 android: false, 2668 2347 ios: false, 2669 2348 }, ··· 2671 2350 code3: 'ndo', 2672 2351 code2: 'ng', 2673 2352 name: 'Ndonga', 2674 - en: 'Ndonga', 2675 2353 android: false, 2676 2354 ios: false, 2677 2355 }, ··· 2679 2357 code3: 'nds', 2680 2358 code2: '', 2681 2359 name: 'Low German; Low Saxon; German, Low; Saxon, Low', 2682 - en: 'Low German; Low Saxon; German, Low; Saxon, Low', 2683 2360 android: false, 2684 2361 ios: false, 2685 2362 }, ··· 2687 2364 code3: 'nep', 2688 2365 code2: 'ne', 2689 2366 name: 'Nepali', 2690 - en: 'Nepali', 2691 2367 android: false, 2692 2368 ios: false, 2693 2369 }, ··· 2695 2371 code3: 'new', 2696 2372 code2: '', 2697 2373 name: 'Nepal Bhasa; Newari', 2698 - en: 'Nepal Bhasa; Newari', 2699 2374 android: false, 2700 2375 ios: false, 2701 2376 }, ··· 2703 2378 code3: 'nia', 2704 2379 code2: '', 2705 2380 name: 'Nias', 2706 - en: 'Nias', 2707 2381 android: false, 2708 2382 ios: false, 2709 2383 }, ··· 2711 2385 code3: 'nic', 2712 2386 code2: '', 2713 2387 name: 'Niger-Kordofanian languages', 2714 - en: 'Niger-Kordofanian languages', 2715 2388 android: false, 2716 2389 ios: false, 2717 2390 }, ··· 2719 2392 code3: 'niu', 2720 2393 code2: '', 2721 2394 name: 'Niuean', 2722 - en: 'Niuean', 2723 2395 android: false, 2724 2396 ios: false, 2725 2397 }, 2726 2398 { 2727 2399 code3: 'nld', 2728 2400 code2: 'nl', 2729 - name: 'Nederlands', 2730 - en: 'Dutch', 2401 + name: 'Dutch', 2731 2402 android: true, 2732 2403 ios: true, 2733 2404 }, ··· 2735 2406 code3: 'nno', 2736 2407 code2: 'nn', 2737 2408 name: 'Norwegian Nynorsk', 2738 - en: 'Norwegian Nynorsk', 2739 2409 android: false, 2740 2410 ios: false, 2741 2411 }, 2742 2412 { 2743 2413 code3: 'nob', 2744 2414 code2: 'nb', 2745 - name: 'norsk bokmål', 2746 - en: 'Norwegian Bokmål', 2415 + name: 'Norwegian Bokmål', 2747 2416 android: false, 2748 2417 ios: false, 2749 2418 }, ··· 2751 2420 code3: 'nog', 2752 2421 code2: '', 2753 2422 name: 'Nogai', 2754 - en: 'Nogai', 2755 2423 android: false, 2756 2424 ios: false, 2757 2425 }, ··· 2759 2427 code3: 'non', 2760 2428 code2: '', 2761 2429 name: 'Norse, Old', 2762 - en: 'Norse, Old', 2763 2430 android: false, 2764 2431 ios: false, 2765 2432 }, 2766 2433 { 2767 2434 code3: 'nor', 2768 2435 code2: 'no', 2769 - name: 'norsk', 2770 - en: 'Norwegian', 2436 + name: 'Norwegian', 2771 2437 android: true, 2772 2438 ios: false, 2773 2439 }, ··· 2775 2441 code3: 'nqo', 2776 2442 code2: '', 2777 2443 name: "N'Ko", 2778 - en: "N'Ko", 2779 2444 android: false, 2780 2445 ios: false, 2781 2446 }, ··· 2783 2448 code3: 'nso', 2784 2449 code2: '', 2785 2450 name: 'Northern Sotho', 2786 - en: 'Northern Sotho', 2787 2451 android: false, 2788 2452 ios: false, 2789 2453 }, ··· 2791 2455 code3: 'nub', 2792 2456 code2: '', 2793 2457 name: 'Nubian languages', 2794 - en: 'Nubian languages', 2795 2458 android: false, 2796 2459 ios: false, 2797 2460 }, ··· 2799 2462 code3: 'nwc', 2800 2463 code2: '', 2801 2464 name: 'Classical Newari; Old Newari; Classical Nepal Bhasa', 2802 - en: 'Classical Newari; Old Newari; Classical Nepal Bhasa', 2803 2465 android: false, 2804 2466 ios: false, 2805 2467 }, ··· 2807 2469 code3: 'nya', 2808 2470 code2: 'ny', 2809 2471 name: 'Nyanja', 2810 - en: 'Nyanja', 2811 2472 android: false, 2812 2473 ios: false, 2813 2474 }, ··· 2815 2476 code3: 'nym', 2816 2477 code2: '', 2817 2478 name: 'Nyamwezi', 2818 - en: 'Nyamwezi', 2819 2479 android: false, 2820 2480 ios: false, 2821 2481 }, ··· 2823 2483 code3: 'nyn', 2824 2484 code2: '', 2825 2485 name: 'Nyankole', 2826 - en: 'Nyankole', 2827 2486 android: false, 2828 2487 ios: false, 2829 2488 }, ··· 2831 2490 code3: 'nyo', 2832 2491 code2: '', 2833 2492 name: 'Nyoro', 2834 - en: 'Nyoro', 2835 2493 android: false, 2836 2494 ios: false, 2837 2495 }, ··· 2839 2497 code3: 'nzi', 2840 2498 code2: '', 2841 2499 name: 'Nzima', 2842 - en: 'Nzima', 2843 2500 android: false, 2844 2501 ios: false, 2845 2502 }, ··· 2847 2504 code3: 'oci', 2848 2505 code2: 'oc', 2849 2506 name: 'Occitan', 2850 - en: 'Occitan', 2851 2507 android: false, 2852 2508 ios: false, 2853 2509 }, ··· 2855 2511 code3: 'oji', 2856 2512 code2: 'oj', 2857 2513 name: 'Ojibwa', 2858 - en: 'Ojibwa', 2859 2514 android: false, 2860 2515 ios: false, 2861 2516 }, ··· 2863 2518 code3: 'ori', 2864 2519 code2: 'or', 2865 2520 name: 'Odia', 2866 - en: 'Odia', 2867 2521 android: false, 2868 2522 ios: false, 2869 2523 }, ··· 2871 2525 code3: 'orm', 2872 2526 code2: 'om', 2873 2527 name: 'Oromo', 2874 - en: 'Oromo', 2875 2528 android: false, 2876 2529 ios: false, 2877 2530 }, ··· 2879 2532 code3: 'osa', 2880 2533 code2: '', 2881 2534 name: 'Osage', 2882 - en: 'Osage', 2883 2535 android: false, 2884 2536 ios: false, 2885 2537 }, ··· 2887 2539 code3: 'oss', 2888 2540 code2: 'os', 2889 2541 name: 'Ossetic', 2890 - en: 'Ossetic', 2891 2542 android: false, 2892 2543 ios: false, 2893 2544 }, ··· 2895 2546 code3: 'ota', 2896 2547 code2: '', 2897 2548 name: 'Turkish, Ottoman (1500-1928)', 2898 - en: 'Turkish, Ottoman (1500-1928)', 2899 2549 android: false, 2900 2550 ios: false, 2901 2551 }, ··· 2903 2553 code3: 'oto', 2904 2554 code2: '', 2905 2555 name: 'Otomian languages', 2906 - en: 'Otomian languages', 2907 2556 android: false, 2908 2557 ios: false, 2909 2558 }, ··· 2911 2560 code3: 'paa', 2912 2561 code2: '', 2913 2562 name: 'Papuan languages', 2914 - en: 'Papuan languages', 2915 2563 android: false, 2916 2564 ios: false, 2917 2565 }, ··· 2919 2567 code3: 'pag', 2920 2568 code2: '', 2921 2569 name: 'Pangasinan', 2922 - en: 'Pangasinan', 2923 2570 android: false, 2924 2571 ios: false, 2925 2572 }, ··· 2927 2574 code3: 'pal', 2928 2575 code2: '', 2929 2576 name: 'Pahlavi', 2930 - en: 'Pahlavi', 2931 2577 android: false, 2932 2578 ios: false, 2933 2579 }, ··· 2935 2581 code3: 'pam', 2936 2582 code2: '', 2937 2583 name: 'Pampanga; Kapampangan', 2938 - en: 'Pampanga; Kapampangan', 2939 2584 android: false, 2940 2585 ios: false, 2941 2586 }, 2942 2587 { 2943 2588 code3: 'pan', 2944 2589 code2: 'pa', 2945 - name: 'ਪੰਜਾਬੀ', 2946 - en: 'Punjabi', 2590 + name: 'Punjabi', 2947 2591 android: false, 2948 2592 ios: false, 2949 2593 }, ··· 2951 2595 code3: 'pap', 2952 2596 code2: '', 2953 2597 name: 'Papiamento', 2954 - en: 'Papiamento', 2955 2598 android: false, 2956 2599 ios: false, 2957 2600 }, ··· 2959 2602 code3: 'pau', 2960 2603 code2: '', 2961 2604 name: 'Palauan', 2962 - en: 'Palauan', 2963 2605 android: false, 2964 2606 ios: false, 2965 2607 }, ··· 2967 2609 code3: 'peo', 2968 2610 code2: '', 2969 2611 name: 'Persian, Old (ca.600-400 B.C.)', 2970 - en: 'Persian, Old (ca.600-400 B.C.)', 2971 2612 android: false, 2972 2613 ios: false, 2973 2614 }, 2974 2615 { 2975 2616 code3: 'per', 2976 2617 code2: 'fa', 2977 - name: 'فارسی', 2978 - en: 'Persian', 2618 + name: 'Persian', 2979 2619 android: true, 2980 2620 ios: false, 2981 2621 }, ··· 2983 2623 code3: 'phi', 2984 2624 code2: '', 2985 2625 name: 'Philippine languages', 2986 - en: 'Philippine languages', 2987 2626 android: false, 2988 2627 ios: false, 2989 2628 }, ··· 2991 2630 code3: 'phn', 2992 2631 code2: '', 2993 2632 name: 'Phoenician', 2994 - en: 'Phoenician', 2995 2633 android: false, 2996 2634 ios: false, 2997 2635 }, ··· 2999 2637 code3: 'pli', 3000 2638 code2: 'pi', 3001 2639 name: 'Pali', 3002 - en: 'Pali', 3003 2640 android: false, 3004 2641 ios: false, 3005 2642 }, 3006 2643 { 3007 2644 code3: 'pol', 3008 2645 code2: 'pl', 3009 - name: 'polski', 3010 - en: 'Polish', 2646 + name: 'Polish', 3011 2647 android: true, 3012 2648 ios: true, 3013 2649 }, ··· 3015 2651 code3: 'pon', 3016 2652 code2: '', 3017 2653 name: 'Pohnpeian', 3018 - en: 'Pohnpeian', 3019 2654 android: false, 3020 2655 ios: false, 3021 2656 }, 3022 2657 { 3023 2658 code3: 'por', 3024 2659 code2: 'pt', 3025 - name: 'português', 3026 - en: 'Portuguese', 2660 + name: 'Portuguese', 3027 2661 android: true, 3028 2662 ios: true, 3029 2663 }, ··· 3031 2665 code3: 'pra', 3032 2666 code2: '', 3033 2667 name: 'Prakrit languages', 3034 - en: 'Prakrit languages', 3035 2668 android: false, 3036 2669 ios: false, 3037 2670 }, ··· 3039 2672 code3: 'pro', 3040 2673 code2: '', 3041 2674 name: 'Provençal, Old (to 1500);Occitan, Old (to 1500)', 3042 - en: 'Provençal, Old (to 1500);Occitan, Old (to 1500)', 3043 2675 android: false, 3044 2676 ios: false, 3045 2677 }, ··· 3047 2679 code3: 'pus', 3048 2680 code2: 'ps', 3049 2681 name: 'Pashto', 3050 - en: 'Pashto', 3051 2682 android: false, 3052 2683 ios: false, 3053 2684 }, ··· 3055 2686 code3: 'que', 3056 2687 code2: 'qu', 3057 2688 name: 'Quechua', 3058 - en: 'Quechua', 3059 2689 android: false, 3060 2690 ios: false, 3061 2691 }, ··· 3063 2693 code3: 'raj', 3064 2694 code2: '', 3065 2695 name: 'Rajasthani', 3066 - en: 'Rajasthani', 3067 2696 android: false, 3068 2697 ios: false, 3069 2698 }, ··· 3071 2700 code3: 'rap', 3072 2701 code2: '', 3073 2702 name: 'Rapanui', 3074 - en: 'Rapanui', 3075 2703 android: false, 3076 2704 ios: false, 3077 2705 }, ··· 3079 2707 code3: 'rar', 3080 2708 code2: '', 3081 2709 name: 'Rarotongan; Cook Islands Maori', 3082 - en: 'Rarotongan; Cook Islands Maori', 3083 2710 android: false, 3084 2711 ios: false, 3085 2712 }, ··· 3087 2714 code3: 'roa', 3088 2715 code2: '', 3089 2716 name: 'Romance languages', 3090 - en: 'Romance languages', 3091 2717 android: false, 3092 2718 ios: false, 3093 2719 }, ··· 3095 2721 code3: 'roh', 3096 2722 code2: 'rm', 3097 2723 name: 'Romansh', 3098 - en: 'Romansh', 3099 2724 android: false, 3100 2725 ios: false, 3101 2726 }, ··· 3103 2728 code3: 'rom', 3104 2729 code2: '', 3105 2730 name: 'Romany', 3106 - en: 'Romany', 3107 2731 android: false, 3108 2732 ios: false, 3109 2733 }, 3110 2734 { 3111 2735 code3: 'rum', 3112 2736 code2: 'ro', 3113 - name: 'română', 3114 - en: 'Romanian', 2737 + name: 'Romanian', 3115 2738 android: true, 3116 2739 ios: false, 3117 2740 }, 3118 2741 { 3119 2742 code3: 'ron', 3120 2743 code2: 'ro', 3121 - name: 'română', 3122 - en: 'Romanian', 2744 + name: 'Romanian', 3123 2745 android: true, 3124 2746 ios: false, 3125 2747 }, ··· 3127 2749 code3: 'run', 3128 2750 code2: 'rn', 3129 2751 name: 'Rundi', 3130 - en: 'Rundi', 3131 2752 android: false, 3132 2753 ios: false, 3133 2754 }, ··· 3135 2756 code3: 'rup', 3136 2757 code2: '', 3137 2758 name: 'Aromanian; Arumanian; Macedo-Romanian', 3138 - en: 'Aromanian; Arumanian; Macedo-Romanian', 3139 2759 android: false, 3140 2760 ios: false, 3141 2761 }, 3142 2762 { 3143 2763 code3: 'rus', 3144 2764 code2: 'ru', 3145 - name: 'русский', 3146 - en: 'Russian', 2765 + name: 'Russian', 3147 2766 android: true, 3148 2767 ios: true, 3149 2768 }, ··· 3151 2770 code3: 'sad', 3152 2771 code2: '', 3153 2772 name: 'Sandawe', 3154 - en: 'Sandawe', 3155 2773 android: false, 3156 2774 ios: false, 3157 2775 }, ··· 3159 2777 code3: 'sag', 3160 2778 code2: 'sg', 3161 2779 name: 'Sango', 3162 - en: 'Sango', 3163 2780 android: false, 3164 2781 ios: false, 3165 2782 }, ··· 3167 2784 code3: 'sah', 3168 2785 code2: '', 3169 2786 name: 'Yakut', 3170 - en: 'Yakut', 3171 2787 android: false, 3172 2788 ios: false, 3173 2789 }, ··· 3175 2791 code3: 'sai', 3176 2792 code2: '', 3177 2793 name: 'South American Indian languages', 3178 - en: 'South American Indian languages', 3179 2794 android: false, 3180 2795 ios: false, 3181 2796 }, ··· 3183 2798 code3: 'sal', 3184 2799 code2: '', 3185 2800 name: 'Salishan languages', 3186 - en: 'Salishan languages', 3187 2801 android: false, 3188 2802 ios: false, 3189 2803 }, ··· 3191 2805 code3: 'sam', 3192 2806 code2: '', 3193 2807 name: 'Samaritan Aramaic', 3194 - en: 'Samaritan Aramaic', 3195 2808 android: false, 3196 2809 ios: false, 3197 2810 }, ··· 3199 2812 code3: 'san', 3200 2813 code2: 'sa', 3201 2814 name: 'Sanskrit', 3202 - en: 'Sanskrit', 3203 2815 android: false, 3204 2816 ios: false, 3205 2817 }, ··· 3207 2819 code3: 'sas', 3208 2820 code2: '', 3209 2821 name: 'Sasak', 3210 - en: 'Sasak', 3211 2822 android: false, 3212 2823 ios: false, 3213 2824 }, ··· 3215 2826 code3: 'sat', 3216 2827 code2: '', 3217 2828 name: 'Santali', 3218 - en: 'Santali', 3219 2829 android: false, 3220 2830 ios: false, 3221 2831 }, ··· 3223 2833 code3: 'scn', 3224 2834 code2: '', 3225 2835 name: 'Sicilian', 3226 - en: 'Sicilian', 3227 2836 android: false, 3228 2837 ios: false, 3229 2838 }, ··· 3231 2840 code3: 'sco', 3232 2841 code2: '', 3233 2842 name: 'Scots', 3234 - en: 'Scots', 3235 2843 android: false, 3236 2844 ios: false, 3237 2845 }, ··· 3239 2847 code3: 'sel', 3240 2848 code2: '', 3241 2849 name: 'Selkup', 3242 - en: 'Selkup', 3243 2850 android: false, 3244 2851 ios: false, 3245 2852 }, ··· 3247 2854 code3: 'sem', 3248 2855 code2: '', 3249 2856 name: 'Semitic languages', 3250 - en: 'Semitic languages', 3251 2857 android: false, 3252 2858 ios: false, 3253 2859 }, ··· 3255 2861 code3: 'sga', 3256 2862 code2: '', 3257 2863 name: 'Irish, Old (to 900)', 3258 - en: 'Irish, Old (to 900)', 3259 2864 android: false, 3260 2865 ios: false, 3261 2866 }, ··· 3263 2868 code3: 'sgn', 3264 2869 code2: '', 3265 2870 name: 'Sign Languages', 3266 - en: 'Sign Languages', 3267 2871 android: false, 3268 2872 ios: false, 3269 2873 }, ··· 3271 2875 code3: 'shn', 3272 2876 code2: '', 3273 2877 name: 'Shan', 3274 - en: 'Shan', 3275 2878 android: false, 3276 2879 ios: false, 3277 2880 }, ··· 3279 2882 code3: 'sid', 3280 2883 code2: '', 3281 2884 name: 'Sidamo', 3282 - en: 'Sidamo', 3283 2885 android: false, 3284 2886 ios: false, 3285 2887 }, ··· 3287 2889 code3: 'sin', 3288 2890 code2: 'si', 3289 2891 name: 'Sinhala', 3290 - en: 'Sinhala', 3291 2892 android: false, 3292 2893 ios: false, 3293 2894 }, ··· 3295 2896 code3: 'sio', 3296 2897 code2: '', 3297 2898 name: 'Siouan languages', 3298 - en: 'Siouan languages', 3299 2899 android: false, 3300 2900 ios: false, 3301 2901 }, ··· 3303 2903 code3: 'sit', 3304 2904 code2: '', 3305 2905 name: 'Sino-Tibetan languages', 3306 - en: 'Sino-Tibetan languages', 3307 2906 android: false, 3308 2907 ios: false, 3309 2908 }, ··· 3311 2910 code3: 'sla', 3312 2911 code2: '', 3313 2912 name: 'Slavic languages', 3314 - en: 'Slavic languages', 3315 2913 android: false, 3316 2914 ios: false, 3317 2915 }, 3318 2916 { 3319 2917 code3: 'slo', 3320 2918 code2: 'sk', 3321 - name: 'slovenčina', 3322 - en: 'Slovak', 2919 + name: 'Slovak', 3323 2920 android: true, 3324 2921 ios: false, 3325 2922 }, 3326 2923 { 3327 2924 code3: 'slk', 3328 2925 code2: 'sk', 3329 - name: 'slovenčina', 3330 - en: 'Slovak', 2926 + name: 'Slovak', 3331 2927 android: true, 3332 2928 ios: false, 3333 2929 }, 3334 2930 { 3335 2931 code3: 'slv', 3336 2932 code2: 'sl', 3337 - name: 'slovenščina', 3338 - en: 'Slovenian', 2933 + name: 'Slovenian', 3339 2934 android: true, 3340 2935 ios: false, 3341 2936 }, ··· 3343 2938 code3: 'sma', 3344 2939 code2: '', 3345 2940 name: 'Southern Sami', 3346 - en: 'Southern Sami', 3347 2941 android: false, 3348 2942 ios: false, 3349 2943 }, ··· 3351 2945 code3: 'sme', 3352 2946 code2: 'se', 3353 2947 name: 'Northern Sami', 3354 - en: 'Northern Sami', 3355 2948 android: false, 3356 2949 ios: false, 3357 2950 }, ··· 3359 2952 code3: 'smi', 3360 2953 code2: '', 3361 2954 name: 'Sami languages', 3362 - en: 'Sami languages', 3363 2955 android: false, 3364 2956 ios: false, 3365 2957 }, ··· 3367 2959 code3: 'smj', 3368 2960 code2: '', 3369 2961 name: 'Lule Sami', 3370 - en: 'Lule Sami', 3371 2962 android: false, 3372 2963 ios: false, 3373 2964 }, ··· 3375 2966 code3: 'smn', 3376 2967 code2: '', 3377 2968 name: 'Inari Sami', 3378 - en: 'Inari Sami', 3379 2969 android: false, 3380 2970 ios: false, 3381 2971 }, ··· 3383 2973 code3: 'smo', 3384 2974 code2: 'sm', 3385 2975 name: 'Samoan', 3386 - en: 'Samoan', 3387 2976 android: false, 3388 2977 ios: false, 3389 2978 }, ··· 3391 2980 code3: 'sms', 3392 2981 code2: '', 3393 2982 name: 'Skolt Sami', 3394 - en: 'Skolt Sami', 3395 2983 android: false, 3396 2984 ios: false, 3397 2985 }, ··· 3399 2987 code3: 'sna', 3400 2988 code2: 'sn', 3401 2989 name: 'Shona', 3402 - en: 'Shona', 3403 2990 android: false, 3404 2991 ios: false, 3405 2992 }, 3406 2993 { 3407 2994 code3: 'snd', 3408 2995 code2: 'sd', 3409 - name: 'سنڌي', 3410 - en: 'Sindhi', 2996 + name: 'Sindhi', 3411 2997 android: false, 3412 2998 ios: false, 3413 2999 }, ··· 3415 3001 code3: 'snk', 3416 3002 code2: '', 3417 3003 name: 'Soninke', 3418 - en: 'Soninke', 3419 3004 android: false, 3420 3005 ios: false, 3421 3006 }, ··· 3423 3008 code3: 'sog', 3424 3009 code2: '', 3425 3010 name: 'Sogdian', 3426 - en: 'Sogdian', 3427 3011 android: false, 3428 3012 ios: false, 3429 3013 }, ··· 3431 3015 code3: 'som', 3432 3016 code2: 'so', 3433 3017 name: 'Somali', 3434 - en: 'Somali', 3435 3018 android: false, 3436 3019 ios: false, 3437 3020 }, ··· 3439 3022 code3: 'son', 3440 3023 code2: '', 3441 3024 name: 'Songhai languages', 3442 - en: 'Songhai languages', 3443 3025 android: false, 3444 3026 ios: false, 3445 3027 }, ··· 3447 3029 code3: 'sot', 3448 3030 code2: 'st', 3449 3031 name: 'Southern Sotho', 3450 - en: 'Southern Sotho', 3451 3032 android: false, 3452 3033 ios: false, 3453 3034 }, 3454 3035 { 3455 3036 code3: 'spa', 3456 3037 code2: 'es', 3457 - name: 'español', 3458 - en: 'Spanish', 3038 + name: 'Spanish', 3459 3039 android: true, 3460 3040 ios: true, 3461 3041 }, ··· 3463 3043 code3: 'sqi', 3464 3044 code2: 'sq', 3465 3045 name: 'Albanian', 3466 - en: 'Albanian', 3467 3046 android: true, 3468 3047 ios: false, 3469 3048 }, ··· 3471 3050 code3: 'srd', 3472 3051 code2: 'sc', 3473 3052 name: 'Sardinian', 3474 - en: 'Sardinian', 3475 3053 android: false, 3476 3054 ios: false, 3477 3055 }, ··· 3479 3057 code3: 'srn', 3480 3058 code2: '', 3481 3059 name: 'Sranan Tongo', 3482 - en: 'Sranan Tongo', 3483 3060 android: false, 3484 3061 ios: false, 3485 3062 }, 3486 3063 { 3487 3064 code3: 'srp', 3488 3065 code2: 'sr', 3489 - name: 'српски', 3490 - en: 'Serbian', 3066 + name: 'Serbian', 3491 3067 android: false, 3492 3068 ios: false, 3493 3069 }, ··· 3495 3071 code3: 'srr', 3496 3072 code2: '', 3497 3073 name: 'Serer', 3498 - en: 'Serer', 3499 3074 android: false, 3500 3075 ios: false, 3501 3076 }, ··· 3503 3078 code3: 'ssa', 3504 3079 code2: '', 3505 3080 name: 'Nilo-Saharan languages', 3506 - en: 'Nilo-Saharan languages', 3507 3081 android: false, 3508 3082 ios: false, 3509 3083 }, ··· 3511 3085 code3: 'ssw', 3512 3086 code2: 'ss', 3513 3087 name: 'Swati', 3514 - en: 'Swati', 3515 3088 android: false, 3516 3089 ios: false, 3517 3090 }, ··· 3519 3092 code3: 'suk', 3520 3093 code2: '', 3521 3094 name: 'Sukuma', 3522 - en: 'Sukuma', 3523 3095 android: false, 3524 3096 ios: false, 3525 3097 }, ··· 3527 3099 code3: 'sun', 3528 3100 code2: 'su', 3529 3101 name: 'Sundanese', 3530 - en: 'Sundanese', 3531 3102 android: false, 3532 3103 ios: false, 3533 3104 }, ··· 3535 3106 code3: 'sus', 3536 3107 code2: '', 3537 3108 name: 'Susu', 3538 - en: 'Susu', 3539 3109 android: false, 3540 3110 ios: false, 3541 3111 }, ··· 3543 3113 code3: 'sux', 3544 3114 code2: '', 3545 3115 name: 'Sumerian', 3546 - en: 'Sumerian', 3547 3116 android: false, 3548 3117 ios: false, 3549 3118 }, 3550 3119 { 3551 3120 code3: 'swa', 3552 3121 code2: 'sw', 3553 - name: 'Kiswahili', 3554 - en: 'Swahili', 3122 + name: 'Swahili', 3555 3123 android: true, 3556 3124 ios: false, 3557 3125 }, 3558 3126 { 3559 3127 code3: 'swe', 3560 3128 code2: 'sv', 3561 - name: 'svenska', 3562 - en: 'Swedish', 3129 + name: 'Swedish', 3563 3130 android: true, 3564 3131 ios: false, 3565 3132 }, ··· 3567 3134 code3: 'syc', 3568 3135 code2: '', 3569 3136 name: 'Classical Syriac', 3570 - en: 'Classical Syriac', 3571 3137 android: false, 3572 3138 ios: false, 3573 3139 }, ··· 3575 3141 code3: 'syr', 3576 3142 code2: '', 3577 3143 name: 'Syriac', 3578 - en: 'Syriac', 3579 3144 android: false, 3580 3145 ios: false, 3581 3146 }, ··· 3583 3148 code3: 'tah', 3584 3149 code2: 'ty', 3585 3150 name: 'Tahitian', 3586 - en: 'Tahitian', 3587 3151 android: false, 3588 3152 ios: false, 3589 3153 }, ··· 3591 3155 code3: 'tai', 3592 3156 code2: '', 3593 3157 name: 'Tai languages', 3594 - en: 'Tai languages', 3595 3158 android: false, 3596 3159 ios: false, 3597 3160 }, 3598 3161 { 3599 3162 code3: 'tam', 3600 3163 code2: 'ta', 3601 - name: 'தமிழ்', 3602 - en: 'Tamil', 3164 + name: 'Tamil', 3603 3165 android: true, 3604 3166 ios: false, 3605 3167 }, ··· 3607 3169 code3: 'tat', 3608 3170 code2: 'tt', 3609 3171 name: 'Tatar', 3610 - en: 'Tatar', 3611 3172 android: false, 3612 3173 ios: false, 3613 3174 }, 3614 3175 { 3615 3176 code3: 'tel', 3616 3177 code2: 'te', 3617 - name: 'తెలుగు', 3618 - en: 'Telugu', 3178 + name: 'Telugu', 3619 3179 android: true, 3620 3180 ios: false, 3621 3181 }, ··· 3623 3183 code3: 'tem', 3624 3184 code2: '', 3625 3185 name: 'Timne', 3626 - en: 'Timne', 3627 3186 android: false, 3628 3187 ios: false, 3629 3188 }, ··· 3631 3190 code3: 'ter', 3632 3191 code2: '', 3633 3192 name: 'Tereno', 3634 - en: 'Tereno', 3635 3193 android: false, 3636 3194 ios: false, 3637 3195 }, ··· 3639 3197 code3: 'tet', 3640 3198 code2: '', 3641 3199 name: 'Tetum', 3642 - en: 'Tetum', 3643 3200 android: false, 3644 3201 ios: false, 3645 3202 }, ··· 3647 3204 code3: 'tgk', 3648 3205 code2: 'tg', 3649 3206 name: 'Tajik', 3650 - en: 'Tajik', 3651 3207 android: false, 3652 3208 ios: false, 3653 3209 }, ··· 3655 3211 code3: 'tgl', 3656 3212 code2: 'tl', 3657 3213 name: 'Filipino', 3658 - en: 'Filipino', 3659 3214 android: true, 3660 3215 ios: false, 3661 3216 }, 3662 3217 { 3663 3218 code3: 'tha', 3664 3219 code2: 'th', 3665 - name: 'ไทย', 3666 - en: 'Thai', 3220 + name: 'Thai', 3667 3221 android: true, 3668 3222 ios: true, 3669 3223 }, ··· 3671 3225 code3: 'tib', 3672 3226 code2: 'bo', 3673 3227 name: 'Tibetan', 3674 - en: 'Tibetan', 3675 3228 android: false, 3676 3229 ios: false, 3677 3230 }, ··· 3679 3232 code3: 'tig', 3680 3233 code2: '', 3681 3234 name: 'Tigre', 3682 - en: 'Tigre', 3683 3235 android: false, 3684 3236 ios: false, 3685 3237 }, ··· 3687 3239 code3: 'tir', 3688 3240 code2: 'ti', 3689 3241 name: 'Tigrinya', 3690 - en: 'Tigrinya', 3691 3242 android: false, 3692 3243 ios: false, 3693 3244 }, ··· 3695 3246 code3: 'tiv', 3696 3247 code2: '', 3697 3248 name: 'Tiv', 3698 - en: 'Tiv', 3699 3249 android: false, 3700 3250 ios: false, 3701 3251 }, ··· 3703 3253 code3: 'tkl', 3704 3254 code2: '', 3705 3255 name: 'Tokelau', 3706 - en: 'Tokelau', 3707 3256 android: false, 3708 3257 ios: false, 3709 3258 }, ··· 3711 3260 code3: 'tlh', 3712 3261 code2: '', 3713 3262 name: 'Klingon; tlhIngan-Hol', 3714 - en: 'Klingon; tlhIngan-Hol', 3715 3263 android: false, 3716 3264 ios: false, 3717 3265 }, ··· 3719 3267 code3: 'tli', 3720 3268 code2: '', 3721 3269 name: 'Tlingit', 3722 - en: 'Tlingit', 3723 3270 android: false, 3724 3271 ios: false, 3725 3272 }, ··· 3727 3274 code3: 'tmh', 3728 3275 code2: '', 3729 3276 name: 'Tamashek', 3730 - en: 'Tamashek', 3731 3277 android: false, 3732 3278 ios: false, 3733 3279 }, ··· 3735 3281 code3: 'tog', 3736 3282 code2: '', 3737 3283 name: 'Tonga (Nyasa)', 3738 - en: 'Tonga (Nyasa)', 3739 3284 android: false, 3740 3285 ios: false, 3741 3286 }, ··· 3743 3288 code3: 'ton', 3744 3289 code2: 'to', 3745 3290 name: 'Tongan', 3746 - en: 'Tongan', 3747 3291 android: false, 3748 3292 ios: false, 3749 3293 }, ··· 3751 3295 code3: 'tpi', 3752 3296 code2: '', 3753 3297 name: 'Tok Pisin', 3754 - en: 'Tok Pisin', 3755 3298 android: false, 3756 3299 ios: false, 3757 3300 }, ··· 3759 3302 code3: 'tsi', 3760 3303 code2: '', 3761 3304 name: 'Tsimshian', 3762 - en: 'Tsimshian', 3763 3305 android: false, 3764 3306 ios: false, 3765 3307 }, ··· 3767 3309 code3: 'tsn', 3768 3310 code2: 'tn', 3769 3311 name: 'Tswana', 3770 - en: 'Tswana', 3771 3312 android: false, 3772 3313 ios: false, 3773 3314 }, ··· 3775 3316 code3: 'tso', 3776 3317 code2: 'ts', 3777 3318 name: 'Tsonga', 3778 - en: 'Tsonga', 3779 3319 android: false, 3780 3320 ios: false, 3781 3321 }, ··· 3783 3323 code3: 'tuk', 3784 3324 code2: 'tk', 3785 3325 name: 'Turkmen', 3786 - en: 'Turkmen', 3787 3326 android: false, 3788 3327 ios: false, 3789 3328 }, ··· 3791 3330 code3: 'tum', 3792 3331 code2: '', 3793 3332 name: 'Tumbuka', 3794 - en: 'Tumbuka', 3795 3333 android: false, 3796 3334 ios: false, 3797 3335 }, ··· 3799 3337 code3: 'tup', 3800 3338 code2: '', 3801 3339 name: 'Tupi languages', 3802 - en: 'Tupi languages', 3803 3340 android: false, 3804 3341 ios: false, 3805 3342 }, 3806 3343 { 3807 3344 code3: 'tur', 3808 3345 code2: 'tr', 3809 - name: 'Türkçe', 3810 - en: 'Turkish', 3346 + name: 'Turkish', 3811 3347 android: true, 3812 3348 ios: true, 3813 3349 }, ··· 3815 3351 code3: 'tut', 3816 3352 code2: '', 3817 3353 name: 'Altaic languages', 3818 - en: 'Altaic languages', 3819 3354 android: false, 3820 3355 ios: false, 3821 3356 }, ··· 3823 3358 code3: 'tvl', 3824 3359 code2: '', 3825 3360 name: 'Tuvalu', 3826 - en: 'Tuvalu', 3827 3361 android: false, 3828 3362 ios: false, 3829 3363 }, ··· 3831 3365 code3: 'twi', 3832 3366 code2: 'tw', 3833 3367 name: 'Akan', 3834 - en: 'Akan', 3835 3368 android: false, 3836 3369 ios: false, 3837 3370 }, ··· 3839 3372 code3: 'tyv', 3840 3373 code2: '', 3841 3374 name: 'Tuvinian', 3842 - en: 'Tuvinian', 3843 3375 android: false, 3844 3376 ios: false, 3845 3377 }, ··· 3847 3379 code3: 'udm', 3848 3380 code2: '', 3849 3381 name: 'Udmurt', 3850 - en: 'Udmurt', 3851 3382 android: false, 3852 3383 ios: false, 3853 3384 }, ··· 3855 3386 code3: 'uga', 3856 3387 code2: '', 3857 3388 name: 'Ugaritic', 3858 - en: 'Ugaritic', 3859 3389 android: false, 3860 3390 ios: false, 3861 3391 }, ··· 3863 3393 code3: 'uig', 3864 3394 code2: 'ug', 3865 3395 name: 'Uyghur', 3866 - en: 'Uyghur', 3867 3396 android: false, 3868 3397 ios: false, 3869 3398 }, 3870 3399 { 3871 3400 code3: 'ukr', 3872 3401 code2: 'uk', 3873 - name: 'українська', 3874 - en: 'Ukrainian', 3402 + name: 'Ukrainian', 3875 3403 android: true, 3876 3404 ios: true, 3877 3405 }, ··· 3879 3407 code3: 'umb', 3880 3408 code2: '', 3881 3409 name: 'Umbundu', 3882 - en: 'Umbundu', 3883 3410 android: false, 3884 3411 ios: false, 3885 3412 }, ··· 3887 3414 code3: 'und', 3888 3415 code2: '', 3889 3416 name: 'Undetermined', 3890 - en: 'Undetermined', 3891 3417 android: false, 3892 3418 ios: false, 3893 3419 }, 3894 3420 { 3895 3421 code3: 'urd', 3896 3422 code2: 'ur', 3897 - name: 'اردو', 3898 - en: 'Urdu', 3423 + name: 'Urdu', 3899 3424 android: true, 3900 3425 ios: false, 3901 3426 }, 3902 3427 { 3903 3428 code3: 'uzb', 3904 3429 code2: 'uz', 3905 - name: 'o‘zbek', 3906 - en: 'Uzbek', 3430 + name: 'Uzbek', 3907 3431 android: false, 3908 3432 ios: false, 3909 3433 }, ··· 3911 3435 code3: 'vai', 3912 3436 code2: '', 3913 3437 name: 'Vai', 3914 - en: 'Vai', 3915 3438 android: false, 3916 3439 ios: false, 3917 3440 }, ··· 3919 3442 code3: 'ven', 3920 3443 code2: 've', 3921 3444 name: 'Venda', 3922 - en: 'Venda', 3923 3445 android: false, 3924 3446 ios: false, 3925 3447 }, 3926 3448 { 3927 3449 code3: 'vie', 3928 3450 code2: 'vi', 3929 - name: 'Tiếng Việt', 3930 - en: 'Vietnamese', 3451 + name: 'Vietnamese', 3931 3452 android: true, 3932 3453 ios: true, 3933 3454 }, ··· 3935 3456 code3: 'vol', 3936 3457 code2: 'vo', 3937 3458 name: 'Volapük', 3938 - en: 'Volapük', 3939 3459 android: false, 3940 3460 ios: false, 3941 3461 }, ··· 3943 3463 code3: 'vot', 3944 3464 code2: '', 3945 3465 name: 'Votic', 3946 - en: 'Votic', 3947 3466 android: false, 3948 3467 ios: false, 3949 3468 }, ··· 3951 3470 code3: 'wak', 3952 3471 code2: '', 3953 3472 name: 'Wakashan languages', 3954 - en: 'Wakashan languages', 3955 3473 android: false, 3956 3474 ios: false, 3957 3475 }, ··· 3959 3477 code3: 'wal', 3960 3478 code2: '', 3961 3479 name: 'Wolaitta; Wolaytta', 3962 - en: 'Wolaitta; Wolaytta', 3963 3480 android: false, 3964 3481 ios: false, 3965 3482 }, ··· 3967 3484 code3: 'war', 3968 3485 code2: '', 3969 3486 name: 'Waray', 3970 - en: 'Waray', 3971 3487 android: false, 3972 3488 ios: false, 3973 3489 }, ··· 3975 3491 code3: 'was', 3976 3492 code2: '', 3977 3493 name: 'Washo', 3978 - en: 'Washo', 3979 3494 android: false, 3980 3495 ios: false, 3981 3496 }, ··· 3983 3498 code3: 'wel', 3984 3499 code2: 'cy', 3985 3500 name: 'Welsh', 3986 - en: 'Welsh', 3987 3501 android: true, 3988 3502 ios: false, 3989 3503 }, ··· 3991 3505 code3: 'wen', 3992 3506 code2: '', 3993 3507 name: 'Sorbian languages', 3994 - en: 'Sorbian languages', 3995 3508 android: false, 3996 3509 ios: false, 3997 3510 }, ··· 3999 3512 code3: 'wln', 4000 3513 code2: 'wa', 4001 3514 name: 'Walloon', 4002 - en: 'Walloon', 4003 3515 android: false, 4004 3516 ios: false, 4005 3517 }, ··· 4007 3519 code3: 'wol', 4008 3520 code2: 'wo', 4009 3521 name: 'Wolof', 4010 - en: 'Wolof', 4011 3522 android: false, 4012 3523 ios: false, 4013 3524 }, ··· 4015 3526 code3: 'xal', 4016 3527 code2: '', 4017 3528 name: 'Kalmyk; Oirat', 4018 - en: 'Kalmyk; Oirat', 4019 3529 android: false, 4020 3530 ios: false, 4021 3531 }, ··· 4023 3533 code3: 'xho', 4024 3534 code2: 'xh', 4025 3535 name: 'Xhosa', 4026 - en: 'Xhosa', 4027 3536 android: false, 4028 3537 ios: false, 4029 3538 }, ··· 4031 3540 code3: 'yao', 4032 3541 code2: '', 4033 3542 name: 'Yao', 4034 - en: 'Yao', 4035 3543 android: false, 4036 3544 ios: false, 4037 3545 }, ··· 4039 3547 code3: 'yap', 4040 3548 code2: '', 4041 3549 name: 'Yapese', 4042 - en: 'Yapese', 4043 3550 android: false, 4044 3551 ios: false, 4045 3552 }, ··· 4047 3554 code3: 'yid', 4048 3555 code2: 'yi', 4049 3556 name: 'Yiddish', 4050 - en: 'Yiddish', 4051 3557 android: false, 4052 3558 ios: false, 4053 3559 }, ··· 4055 3561 code3: 'yor', 4056 3562 code2: 'yo', 4057 3563 name: 'Yoruba', 4058 - en: 'Yoruba', 4059 3564 android: false, 4060 3565 ios: false, 4061 3566 }, ··· 4063 3568 code3: 'ypk', 4064 3569 code2: '', 4065 3570 name: 'Yupik languages', 4066 - en: 'Yupik languages', 4067 3571 android: false, 4068 3572 ios: false, 4069 3573 }, ··· 4071 3575 code3: 'zap', 4072 3576 code2: '', 4073 3577 name: 'Zapotec', 4074 - en: 'Zapotec', 4075 3578 android: false, 4076 3579 ios: false, 4077 3580 }, ··· 4079 3582 code3: 'zbl', 4080 3583 code2: '', 4081 3584 name: 'Blissymbols; Blissymbolics; Bliss', 4082 - en: 'Blissymbols; Blissymbolics; Bliss', 4083 3585 android: false, 4084 3586 ios: false, 4085 3587 }, ··· 4087 3589 code3: 'zen', 4088 3590 code2: '', 4089 3591 name: 'Zenaga', 4090 - en: 'Zenaga', 4091 3592 android: false, 4092 3593 ios: false, 4093 3594 }, ··· 4095 3596 code3: 'zgh', 4096 3597 code2: '', 4097 3598 name: 'Standard Moroccan Tamazight', 4098 - en: 'Standard Moroccan Tamazight', 4099 3599 android: false, 4100 3600 ios: false, 4101 3601 }, ··· 4103 3603 code3: 'zha', 4104 3604 code2: 'za', 4105 3605 name: 'Zhuang; Chuang', 4106 - en: 'Zhuang; Chuang', 4107 3606 android: false, 4108 3607 ios: false, 4109 3608 }, 4110 3609 { 4111 3610 code3: 'zho', 4112 3611 code2: 'zh', 4113 - name: '中文', 4114 - en: 'Chinese', 3612 + name: 'Chinese', 4115 3613 android: true, 4116 3614 ios: true, 4117 3615 }, ··· 4119 3617 code3: 'znd', 4120 3618 code2: '', 4121 3619 name: 'Zande languages', 4122 - en: 'Zande languages', 4123 3620 android: false, 4124 3621 ios: false, 4125 3622 }, ··· 4127 3624 code3: 'zul', 4128 3625 code2: 'zu', 4129 3626 name: 'Zulu', 4130 - en: 'Zulu', 4131 3627 android: false, 4132 3628 ios: false, 4133 3629 }, ··· 4135 3631 code3: 'zun', 4136 3632 code2: '', 4137 3633 name: 'Zuni', 4138 - en: 'Zuni', 4139 3634 android: false, 4140 3635 ios: false, 4141 3636 }, ··· 4143 3638 code3: 'zza', 4144 3639 code2: '', 4145 3640 name: 'Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki', 4146 - en: 'Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki', 4147 3641 android: false, 4148 3642 ios: false, 4149 3643 },
+23 -29
src/screens/Settings/LanguageSettings.tsx
··· 8 8 type CommonNavigatorParams, 9 9 type NativeStackScreenProps, 10 10 } from '#/lib/routes/types' 11 - import {sanitizeAppLanguageSetting} from '#/locale/helpers' 11 + import {languageName, sanitizeAppLanguageSetting} from '#/locale/helpers' 12 12 import {APP_LANGUAGES, LANGUAGES} from '#/locale/languages' 13 13 import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' 14 14 import {atoms as a, web} from '#/alf' ··· 144 144 <Select.ItemText>{label}</Select.ItemText> 145 145 </Select.Item> 146 146 )} 147 - items={DEDUPED_LANGUAGES.sort( 148 - (a, b) => 149 - a.name.localeCompare(b.name, langPrefs.appLanguage), // Localized sort 150 - ).map(l => ({ 151 - label: l.name, // Pre-generated name using Intl.DisplayNames 147 + items={DEDUPED_LANGUAGES.map(l => ({ 148 + label: languageName(l, langPrefs.appLanguage), 152 149 value: l.code2, 153 - }))} 150 + })).sort((a, b) => 151 + a.label.localeCompare(b.label, langPrefs.appLanguage), 152 + )} 154 153 /> 155 154 </Select.Root> 156 155 </View> ··· 180 179 values={langPrefs.contentLanguages} 181 180 onChange={setLangPrefs.setContentLanguages}> 182 181 <Toggle.PanelGroup> 183 - {possibleLanguages 184 - .sort( 185 - (a, b) => 186 - a.name.localeCompare(b.name, langPrefs.appLanguage), // Localized sort 182 + {possibleLanguages.map((language, index) => { 183 + const name = languageName(language, langPrefs.appLanguage) 184 + return ( 185 + <Toggle.Item 186 + key={language.code2} 187 + name={language.code2} 188 + label={name}> 189 + {({selected}) => ( 190 + <Toggle.Panel 191 + active={selected} 192 + adjacent={index === 0 ? 'trailing' : 'both'}> 193 + <Toggle.Checkbox /> 194 + <Toggle.PanelText>{name}</Toggle.PanelText> 195 + </Toggle.Panel> 196 + )} 197 + </Toggle.Item> 187 198 ) 188 - .map((language, index) => { 189 - const name = language.name // Pre-generated name using Intl.DisplayNames 190 - return ( 191 - <Toggle.Item 192 - key={language.code2} 193 - name={language.code2} 194 - label={name}> 195 - {({selected}) => ( 196 - <Toggle.Panel 197 - active={selected} 198 - adjacent={index === 0 ? 'trailing' : 'both'}> 199 - <Toggle.Checkbox /> 200 - <Toggle.PanelText>{name}</Toggle.PanelText> 201 - </Toggle.Panel> 202 - )} 203 - </Toggle.Item> 204 - ) 205 - })} 199 + })} 206 200 <Button 207 201 label={_(msg`Add more languages…`)} 208 202 onPress={contentLanguagePrefsControl.open}>