mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-04 18:29:23 +02:00
cleanup; language sorting
This commit is contained in:
parent
3370d413fa
commit
efcd60f48d
6 changed files with 181 additions and 176 deletions
|
@ -19,9 +19,7 @@
|
||||||
|
|
||||||
package org.geometerplus.android.fbreader.network;
|
package org.geometerplus.android.fbreader.network;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
@ -242,6 +240,7 @@ public class NetworkLibraryActivity extends NetworkBaseActivity {
|
||||||
case MENU_LANGUAGES:
|
case MENU_LANGUAGES:
|
||||||
{
|
{
|
||||||
final List<String> allLanguageCodes = NetworkLibrary.Instance().languageCodes();
|
final List<String> allLanguageCodes = NetworkLibrary.Instance().languageCodes();
|
||||||
|
Collections.sort(allLanguageCodes, new ZLLanguageUtil.CodeComparator());
|
||||||
final Collection<String> activeLanguageCodes = NetworkLibrary.Instance().activeLanguageCodes();
|
final Collection<String> activeLanguageCodes = NetworkLibrary.Instance().activeLanguageCodes();
|
||||||
final CharSequence[] languageNames = new CharSequence[allLanguageCodes.size()];
|
final CharSequence[] languageNames = new CharSequence[allLanguageCodes.size()];
|
||||||
final boolean[] checked = new boolean[allLanguageCodes.size()];
|
final boolean[] checked = new boolean[allLanguageCodes.size()];
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
package org.geometerplus.android.fbreader.preferences;
|
package org.geometerplus.android.fbreader.preferences;
|
||||||
|
|
||||||
import java.util.TreeMap;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
@ -54,21 +54,19 @@ class LanguagePreference extends ZLStringListPreference {
|
||||||
LanguagePreference(Context context, ZLResource rootResource, String resourceKey, Book book) {
|
LanguagePreference(Context context, ZLResource rootResource, String resourceKey, Book book) {
|
||||||
super(context, rootResource, resourceKey);
|
super(context, rootResource, resourceKey);
|
||||||
myBook = book;
|
myBook = book;
|
||||||
final TreeMap<String,String> map = new TreeMap<String,String>();
|
final TreeSet<String> set = new TreeSet<String>(new ZLLanguageUtil.CodeComparator());
|
||||||
for (String code : ZLLanguageUtil.languageCodes()) {
|
set.addAll(ZLLanguageUtil.languageCodes());
|
||||||
map.put(ZLLanguageUtil.languageName(code), code);
|
set.add(ZLLanguageUtil.OTHER_LANGUAGE_CODE);
|
||||||
}
|
|
||||||
final int size = map.size();
|
final int size = set.size();
|
||||||
String[] codes = new String[size + 1];
|
String[] codes = new String[size];
|
||||||
String[] names = new String[size + 1];
|
String[] names = new String[size];
|
||||||
int index = 0;
|
int index = 0;
|
||||||
for (TreeMap.Entry<String,String> entry : map.entrySet()) {
|
for (String code : set) {
|
||||||
codes[index] = entry.getValue();
|
codes[index] = code;
|
||||||
names[index] = entry.getKey();
|
names[index] = ZLLanguageUtil.languageName(code);
|
||||||
++index;
|
++index;
|
||||||
}
|
}
|
||||||
codes[size] = ZLLanguageUtil.OTHER_LANGUAGE_CODE;
|
|
||||||
names[size] = ZLLanguageUtil.languageName(codes[size]);
|
|
||||||
setLists(codes, names);
|
setLists(codes, names);
|
||||||
String language = myBook.getLanguage();
|
String language = myBook.getLanguage();
|
||||||
if (language == null) {
|
if (language == null) {
|
||||||
|
|
|
@ -24,7 +24,7 @@ import java.io.*;
|
||||||
import org.geometerplus.zlibrary.core.filesystem.ZLFile;
|
import org.geometerplus.zlibrary.core.filesystem.ZLFile;
|
||||||
import org.geometerplus.zlibrary.core.image.ZLImage;
|
import org.geometerplus.zlibrary.core.image.ZLImage;
|
||||||
import org.geometerplus.zlibrary.core.encoding.ZLEncodingCollection;
|
import org.geometerplus.zlibrary.core.encoding.ZLEncodingCollection;
|
||||||
import org.geometerplus.zlibrary.core.util.ZLLanguageUtil;
|
import org.geometerplus.zlibrary.core.language.ZLLanguageUtil;
|
||||||
|
|
||||||
import org.geometerplus.fbreader.library.Book;
|
import org.geometerplus.fbreader.library.Book;
|
||||||
import org.geometerplus.fbreader.bookmodel.BookModel;
|
import org.geometerplus.fbreader.bookmodel.BookModel;
|
||||||
|
@ -57,7 +57,7 @@ public class MobipocketPlugin extends PdbPlugin {
|
||||||
final int fullNameOffset = (int)PdbUtil.readInt(stream);
|
final int fullNameOffset = (int)PdbUtil.readInt(stream);
|
||||||
final int fullNameLength = (int)PdbUtil.readInt(stream);
|
final int fullNameLength = (int)PdbUtil.readInt(stream);
|
||||||
final int languageCode = (int)PdbUtil.readInt(stream);
|
final int languageCode = (int)PdbUtil.readInt(stream);
|
||||||
book.setLanguage(ZLLanguageUtil.languageByCode(languageCode & 0xFF, (languageCode >> 8) & 0xFF));
|
book.setLanguage(ZLLanguageUtil.languageByIntCode(languageCode & 0xFF, (languageCode >> 8) & 0xFF));
|
||||||
PdbUtil.skip(stream, 32);
|
PdbUtil.skip(stream, 32);
|
||||||
int offset = 132;
|
int offset = 132;
|
||||||
if ((PdbUtil.readInt(stream) & 0x40) != 0) {
|
if ((PdbUtil.readInt(stream) & 0x40) != 0) {
|
||||||
|
|
|
@ -114,7 +114,10 @@ public class NetworkLibrary {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setActiveLanguageCodes(Collection<String> codes) {
|
public void setActiveLanguageCodes(Collection<String> codes) {
|
||||||
activeLanguageCodesOption().setValue(commaSeparatedString(codes));
|
final TreeSet<String> allCodes = new TreeSet<String>(ZLibrary.Instance().defaultLanguageCodes());
|
||||||
|
allCodes.removeAll(languageCodes());
|
||||||
|
allCodes.addAll(codes);
|
||||||
|
activeLanguageCodesOption().setValue(commaSeparatedString(allCodes));
|
||||||
}
|
}
|
||||||
|
|
||||||
private String commaSeparatedString(Collection<String> codes) {
|
private String commaSeparatedString(Collection<String> codes) {
|
||||||
|
|
|
@ -33,6 +33,33 @@ public abstract class ZLLanguageUtil {
|
||||||
private ZLLanguageUtil() {
|
private ZLLanguageUtil() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class CodeComparator implements Comparator<String> {
|
||||||
|
public int compare(String code0, String code1) {
|
||||||
|
if (code0 == null) {
|
||||||
|
return code1 == null ? 0 : -1;
|
||||||
|
}
|
||||||
|
if (code1 == null) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (code0.equals(code1)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (MULTI_LANGUAGE_CODE.equals(code0)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (MULTI_LANGUAGE_CODE.equals(code1)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (OTHER_LANGUAGE_CODE.equals(code0)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (OTHER_LANGUAGE_CODE.equals(code1)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return languageName(code0).compareTo(languageName(code1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static List<String> languageCodes() {
|
public static List<String> languageCodes() {
|
||||||
if (ourLanguageCodes.isEmpty()) {
|
if (ourLanguageCodes.isEmpty()) {
|
||||||
TreeSet<String> codes = new TreeSet<String>();
|
TreeSet<String> codes = new TreeSet<String>();
|
||||||
|
@ -60,4 +87,139 @@ public abstract class ZLLanguageUtil {
|
||||||
public static ZLFile patternsFile() {
|
public static ZLFile patternsFile() {
|
||||||
return ZLResourceFile.createResourceFile("languagePatterns");
|
return ZLResourceFile.createResourceFile("languagePatterns");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String languageByIntCode(int languageCode, int subLanguageCode) {
|
||||||
|
switch (languageCode) {
|
||||||
|
default: return null;
|
||||||
|
case 0x01: return "ar"; // Arabic
|
||||||
|
case 0x02: return "bg"; // Bulgarian
|
||||||
|
case 0x03: return "ca"; // Catalan
|
||||||
|
case 0x04: return "zh"; // Chinese
|
||||||
|
case 0x05: return "cs"; // Czech
|
||||||
|
case 0x06: return "da"; // Danish
|
||||||
|
case 0x07: return "de"; // German
|
||||||
|
case 0x08: return "el"; // Greek
|
||||||
|
case 0x09: return "en"; // English
|
||||||
|
case 0x0A: return "es"; // Spanish
|
||||||
|
case 0x0B: return "fi"; // Finnish
|
||||||
|
case 0x0C: return "fr"; // French
|
||||||
|
case 0x0D: return "he"; // Hebrew
|
||||||
|
case 0x0E: return "hu"; // Hungarian
|
||||||
|
case 0x0F: return "is"; // Icelandic
|
||||||
|
case 0x10: return "it"; // Italian
|
||||||
|
case 0x11: return "ja"; // Japanese
|
||||||
|
case 0x12: return "ko"; // Korean
|
||||||
|
case 0x13: return "nl"; // Dutch
|
||||||
|
case 0x14: return "no"; // Norwegian
|
||||||
|
case 0x15: return "pl"; // Polish
|
||||||
|
case 0x16: return "pt"; // Portuguese
|
||||||
|
case 0x17: return "rm"; // Romansh
|
||||||
|
case 0x18: return "ro"; // Romanian
|
||||||
|
case 0x19: return "ru"; // Russian
|
||||||
|
case 0x1A:
|
||||||
|
switch (subLanguageCode) {
|
||||||
|
default: return "sr"; // Serbian
|
||||||
|
case 0x04:
|
||||||
|
case 0x10: return "hr"; // Croatian
|
||||||
|
case 0x14:
|
||||||
|
case 0x20:
|
||||||
|
case 0x78: return "bs"; // Bosnian
|
||||||
|
}
|
||||||
|
case 0x1B: return "sk"; // Slovak
|
||||||
|
case 0x1C: return "sq"; // Albanian
|
||||||
|
case 0x1D: return "sv"; // Swedish
|
||||||
|
case 0x1E: return "th"; // Thai
|
||||||
|
case 0x1F: return "tr"; // Turkish
|
||||||
|
case 0x20: return "ur"; // Urdu
|
||||||
|
case 0x21: return "id"; // Indonesian
|
||||||
|
case 0x22: return "uk"; // Ukrainian
|
||||||
|
case 0x23: return "be"; // Belarusian
|
||||||
|
case 0x24: return "sl"; // Slovenian
|
||||||
|
case 0x25: return "et"; // Estonian
|
||||||
|
case 0x26: return "lv"; // Latvian
|
||||||
|
case 0x27: return "lt"; // Lithuanian
|
||||||
|
case 0x28: return "tg"; // Tajik
|
||||||
|
case 0x29: return "fa"; // Persian (Farsi)
|
||||||
|
case 0x2A: return "vi"; // Vietnamese
|
||||||
|
case 0x2B: return "hy"; // Armenian
|
||||||
|
case 0x2C: return "az"; // Azeri
|
||||||
|
case 0x2D: return "eu"; // Basque
|
||||||
|
case 0x2E: return (subLanguageCode == 0x08)
|
||||||
|
? "dsb" // Lower Sorbian
|
||||||
|
: "wen"; // Upper Sorbian
|
||||||
|
case 0x2F: return "mk"; // Makedonian
|
||||||
|
case 0x32: return "tn"; // Setswana/Tswana
|
||||||
|
case 0x34: return "xh"; // Xhosa/isiXhosa
|
||||||
|
case 0x35: return "zu"; // Zulu/isiZulu
|
||||||
|
case 0x36: return "af"; // Afrikaans
|
||||||
|
case 0x37: return "ka"; // Georgian
|
||||||
|
case 0x38: return "fo"; // Faeroese
|
||||||
|
case 0x39: return "hi"; // Hindi
|
||||||
|
case 0x3A: return "mt"; // Maltese
|
||||||
|
case 0x3B: return "se"; // Sami
|
||||||
|
case 0x3C: return "ga"; // Irish
|
||||||
|
case 0x3E: return "ms"; // Malay
|
||||||
|
case 0x3F: return "kk"; // Kazak
|
||||||
|
case 0x40: return "ky"; // Kyrgyz
|
||||||
|
case 0x41: return "sw"; // Swahili
|
||||||
|
case 0x42: return "tk"; // Turkmen
|
||||||
|
case 0x43: return "uz"; // Uzbek
|
||||||
|
case 0x44: return "tt"; // Tatar
|
||||||
|
case 0x45: return "bn"; // Bengali
|
||||||
|
case 0x46: return "pa"; // Punjabi
|
||||||
|
case 0x47: return "gu"; // Gujaratu
|
||||||
|
case 0x48: return "or"; // Oriya
|
||||||
|
case 0x49: return "ta"; // Tamil
|
||||||
|
case 0x4A: return "te"; // Telugi
|
||||||
|
case 0x4B: return "kn"; // Kannada
|
||||||
|
case 0x4C: return "ml"; // Malayalam
|
||||||
|
case 0x4D: return "as"; // Assamese
|
||||||
|
case 0x4E: return "mr"; // Marathi
|
||||||
|
case 0x4F: return "sa"; // Sanskrit
|
||||||
|
case 0x50: return "mn"; // Mongolian
|
||||||
|
case 0x51: return "bo"; // Tibetian
|
||||||
|
case 0x52: return "cy"; // Welsh
|
||||||
|
case 0x53: return "kh"; // Khmer
|
||||||
|
case 0x54: return "lo"; // Lao
|
||||||
|
case 0x56: return "gl"; // Galician
|
||||||
|
case 0x57: return "kok"; // Konkani
|
||||||
|
case 0x58: return "mni"; // Manipuri
|
||||||
|
case 0x59: return "sd"; // Sindhi
|
||||||
|
case 0x5A: return "syr"; // Syriac
|
||||||
|
case 0x5B: return "si"; // Sinhala
|
||||||
|
case 0x5D: return "iu"; // Inuktitut
|
||||||
|
case 0x5E: return "am"; // Amharic
|
||||||
|
case 0x5F: return "tzm"; // Tamazight
|
||||||
|
case 0x60: return "ks"; // Kashmiri
|
||||||
|
case 0x61: return "ne"; // Nepali
|
||||||
|
case 0x62: return "fy"; // Frisian
|
||||||
|
case 0x63: return "ps"; // Pashto
|
||||||
|
case 0x64: return "fil"; // Filipino
|
||||||
|
case 0x65: return "dv"; // Divehi
|
||||||
|
case 0x68: return "ha"; // Hausa
|
||||||
|
case 0x6A: return "yo"; // Yoruba
|
||||||
|
case 0x6B: return "quz"; // Quechua
|
||||||
|
case 0x6C: return "ns"; // Northern Sotho
|
||||||
|
case 0x6D: return "ba"; // Bashkir
|
||||||
|
case 0x6E: return "lb"; // Luxemburgish
|
||||||
|
case 0x6F: return "kl"; // Greenlandic
|
||||||
|
case 0x70: return "ig"; // Igbo
|
||||||
|
case 0x73: return "ti"; // Tigrinya
|
||||||
|
case 0x78: return "yi"; // Yi
|
||||||
|
case 0x7A: return "arn"; // Mapudungun
|
||||||
|
case 0x7C: return "moh"; // Mohawk
|
||||||
|
case 0x7E: return "be"; // Breton
|
||||||
|
case 0x80: return "ug"; // Uighur
|
||||||
|
case 0x81: return "mi"; // Maori
|
||||||
|
case 0x82: return "oc"; // Occitan
|
||||||
|
case 0x83: return "co"; // Corsican
|
||||||
|
case 0x84: return "gsw"; // Alsatian
|
||||||
|
case 0x85: return "sah"; // Yakut
|
||||||
|
case 0x86: return "qut"; // K'iche
|
||||||
|
case 0x87: return "rw"; // Kinyarwanda
|
||||||
|
case 0x88: return "wo"; // Wolof
|
||||||
|
case 0x8C: return "prs"; // Dari
|
||||||
|
case 0x8D: return "mg"; // Malagasy
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,157 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (C) 2008-2010 Geometer Plus <contact@geometerplus.com>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
||||||
* 02110-1301, USA.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.geometerplus.zlibrary.core.util;
|
|
||||||
|
|
||||||
public abstract class ZLLanguageUtil {
|
|
||||||
public static String languageByCode(int languageCode, int subLanguageCode) {
|
|
||||||
switch (languageCode) {
|
|
||||||
default: return null;
|
|
||||||
case 0x01: return "ar"; // Arabic
|
|
||||||
case 0x02: return "bg"; // Bulgarian
|
|
||||||
case 0x03: return "ca"; // Catalan
|
|
||||||
case 0x04: return "zh"; // Chinese
|
|
||||||
case 0x05: return "cs"; // Czech
|
|
||||||
case 0x06: return "da"; // Danish
|
|
||||||
case 0x07: return "de"; // German
|
|
||||||
case 0x08: return "el"; // Greek
|
|
||||||
case 0x09: return "en"; // English
|
|
||||||
case 0x0A: return "es"; // Spanish
|
|
||||||
case 0x0B: return "fi"; // Finnish
|
|
||||||
case 0x0C: return "fr"; // French
|
|
||||||
case 0x0D: return "he"; // Hebrew
|
|
||||||
case 0x0E: return "hu"; // Hungarian
|
|
||||||
case 0x0F: return "is"; // Icelandic
|
|
||||||
case 0x10: return "it"; // Italian
|
|
||||||
case 0x11: return "ja"; // Japanese
|
|
||||||
case 0x12: return "ko"; // Korean
|
|
||||||
case 0x13: return "nl"; // Dutch
|
|
||||||
case 0x14: return "no"; // Norwegian
|
|
||||||
case 0x15: return "pl"; // Polish
|
|
||||||
case 0x16: return "pt"; // Portuguese
|
|
||||||
case 0x17: return "rm"; // Romansh
|
|
||||||
case 0x18: return "ro"; // Romanian
|
|
||||||
case 0x19: return "ru"; // Russian
|
|
||||||
case 0x1A:
|
|
||||||
switch (subLanguageCode) {
|
|
||||||
default: return "sr"; // Serbian
|
|
||||||
case 0x04:
|
|
||||||
case 0x10: return "hr"; // Croatian
|
|
||||||
case 0x14:
|
|
||||||
case 0x20:
|
|
||||||
case 0x78: return "bs"; // Bosnian
|
|
||||||
}
|
|
||||||
case 0x1B: return "sk"; // Slovak
|
|
||||||
case 0x1C: return "sq"; // Albanian
|
|
||||||
case 0x1D: return "sv"; // Swedish
|
|
||||||
case 0x1E: return "th"; // Thai
|
|
||||||
case 0x1F: return "tr"; // Turkish
|
|
||||||
case 0x20: return "ur"; // Urdu
|
|
||||||
case 0x21: return "id"; // Indonesian
|
|
||||||
case 0x22: return "uk"; // Ukrainian
|
|
||||||
case 0x23: return "be"; // Belarusian
|
|
||||||
case 0x24: return "sl"; // Slovenian
|
|
||||||
case 0x25: return "et"; // Estonian
|
|
||||||
case 0x26: return "lv"; // Latvian
|
|
||||||
case 0x27: return "lt"; // Lithuanian
|
|
||||||
case 0x28: return "tg"; // Tajik
|
|
||||||
case 0x29: return "fa"; // Persian (Farsi)
|
|
||||||
case 0x2A: return "vi"; // Vietnamese
|
|
||||||
case 0x2B: return "hy"; // Armenian
|
|
||||||
case 0x2C: return "az"; // Azeri
|
|
||||||
case 0x2D: return "eu"; // Basque
|
|
||||||
case 0x2E: return (subLanguageCode == 0x08)
|
|
||||||
? "dsb" // Lower Sorbian
|
|
||||||
: "wen"; // Upper Sorbian
|
|
||||||
case 0x2F: return "mk"; // Makedonian
|
|
||||||
case 0x32: return "tn"; // Setswana/Tswana
|
|
||||||
case 0x34: return "xh"; // Xhosa/isiXhosa
|
|
||||||
case 0x35: return "zu"; // Zulu/isiZulu
|
|
||||||
case 0x36: return "af"; // Afrikaans
|
|
||||||
case 0x37: return "ka"; // Georgian
|
|
||||||
case 0x38: return "fo"; // Faeroese
|
|
||||||
case 0x39: return "hi"; // Hindi
|
|
||||||
case 0x3A: return "mt"; // Maltese
|
|
||||||
case 0x3B: return "se"; // Sami
|
|
||||||
case 0x3C: return "ga"; // Irish
|
|
||||||
case 0x3E: return "ms"; // Malay
|
|
||||||
case 0x3F: return "kk"; // Kazak
|
|
||||||
case 0x40: return "ky"; // Kyrgyz
|
|
||||||
case 0x41: return "sw"; // Swahili
|
|
||||||
case 0x42: return "tk"; // Turkmen
|
|
||||||
case 0x43: return "uz"; // Uzbek
|
|
||||||
case 0x44: return "tt"; // Tatar
|
|
||||||
case 0x45: return "bn"; // Bengali
|
|
||||||
case 0x46: return "pa"; // Punjabi
|
|
||||||
case 0x47: return "gu"; // Gujaratu
|
|
||||||
case 0x48: return "or"; // Oriya
|
|
||||||
case 0x49: return "ta"; // Tamil
|
|
||||||
case 0x4A: return "te"; // Telugi
|
|
||||||
case 0x4B: return "kn"; // Kannada
|
|
||||||
case 0x4C: return "ml"; // Malayalam
|
|
||||||
case 0x4D: return "as"; // Assamese
|
|
||||||
case 0x4E: return "mr"; // Marathi
|
|
||||||
case 0x4F: return "sa"; // Sanskrit
|
|
||||||
case 0x50: return "mn"; // Mongolian
|
|
||||||
case 0x51: return "bo"; // Tibetian
|
|
||||||
case 0x52: return "cy"; // Welsh
|
|
||||||
case 0x53: return "kh"; // Khmer
|
|
||||||
case 0x54: return "lo"; // Lao
|
|
||||||
case 0x56: return "gl"; // Galician
|
|
||||||
case 0x57: return "kok"; // Konkani
|
|
||||||
case 0x58: return "mni"; // Manipuri
|
|
||||||
case 0x59: return "sd"; // Sindhi
|
|
||||||
case 0x5A: return "syr"; // Syriac
|
|
||||||
case 0x5B: return "si"; // Sinhala
|
|
||||||
case 0x5D: return "iu"; // Inuktitut
|
|
||||||
case 0x5E: return "am"; // Amharic
|
|
||||||
case 0x5F: return "tzm"; // Tamazight
|
|
||||||
case 0x60: return "ks"; // Kashmiri
|
|
||||||
case 0x61: return "ne"; // Nepali
|
|
||||||
case 0x62: return "fy"; // Frisian
|
|
||||||
case 0x63: return "ps"; // Pashto
|
|
||||||
case 0x64: return "fil"; // Filipino
|
|
||||||
case 0x65: return "dv"; // Divehi
|
|
||||||
case 0x68: return "ha"; // Hausa
|
|
||||||
case 0x6A: return "yo"; // Yoruba
|
|
||||||
case 0x6B: return "quz"; // Quechua
|
|
||||||
case 0x6C: return "ns"; // Northern Sotho
|
|
||||||
case 0x6D: return "ba"; // Bashkir
|
|
||||||
case 0x6E: return "lb"; // Luxemburgish
|
|
||||||
case 0x6F: return "kl"; // Greenlandic
|
|
||||||
case 0x70: return "ig"; // Igbo
|
|
||||||
case 0x73: return "ti"; // Tigrinya
|
|
||||||
case 0x78: return "yi"; // Yi
|
|
||||||
case 0x7A: return "arn"; // Mapudungun
|
|
||||||
case 0x7C: return "moh"; // Mohawk
|
|
||||||
case 0x7E: return "be"; // Breton
|
|
||||||
case 0x80: return "ug"; // Uighur
|
|
||||||
case 0x81: return "mi"; // Maori
|
|
||||||
case 0x82: return "oc"; // Occitan
|
|
||||||
case 0x83: return "co"; // Corsican
|
|
||||||
case 0x84: return "gsw"; // Alsatian
|
|
||||||
case 0x85: return "sah"; // Yakut
|
|
||||||
case 0x86: return "qut"; // K'iche
|
|
||||||
case 0x87: return "rw"; // Kinyarwanda
|
|
||||||
case 0x88: return "wo"; // Wolof
|
|
||||||
case 0x8C: return "prs"; // Dari
|
|
||||||
case 0x8D: return "mg"; // Malagasy
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue