1
0
Fork 0
mirror of synced 2024-06-25 17:50:38 +12:00

Merge pull request #352 from TorstenDittmann/master

[API] Locale - List languages - ISO 639-1
This commit is contained in:
Eldad A. Fux 2020-06-11 11:25:06 +03:00 committed by GitHub
commit 293030766b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 983 additions and 1 deletions

936
app/config/languages.php Normal file
View file

@ -0,0 +1,936 @@
<?php
/**
* List of languages classified in ISO 639-1.
*
* Source:
* https://gist.github.com/joshuabaker/d2775b5ada7d1601bcd7b31cb4081981
*/
return [
[
"code" => "aa",
"name" => "Afar",
"nativeName" => "Afar"
],
[
"code" => "ab",
"name" => "Abkhazian",
"nativeName" => "Аҧсуа"
],
[
"code" => "af",
"name" => "Afrikaans",
"nativeName" => "Afrikaans"
],
[
"code" => "ak",
"name" => "Akan",
"nativeName" => "Akana"
],
[
"code" => "am",
"name" => "Amharic",
"nativeName" => "አማርኛ"
],
[
"code" => "an",
"name" => "Aragonese",
"nativeName" => "Aragonés"
],
[
"code" => "ar",
"name" => "Arabic",
"nativeName" => "العربية"
],
[
"code" => "as",
"name" => "Assamese",
"nativeName" => "অসমীয়া"
],
[
"code" => "av",
"name" => "Avar",
"nativeName" => "Авар"
],
[
"code" => "ay",
"name" => "Aymara",
"nativeName" => "Aymar"
],
[
"code" => "az",
"name" => "Azerbaijani",
"nativeName" => "Azərbaycanca / آذربايجان"
],
[
"code" => "ba",
"name" => "Bashkir",
"nativeName" => "Башҡорт"
],
[
"code" => "be",
"name" => "Belarusian",
"nativeName" => "Беларуская"
],
[
"code" => "bg",
"name" => "Bulgarian",
"nativeName" => "Български"
],
[
"code" => "bh",
"name" => "Bihari",
"nativeName" => "भोजपुरी"
],
[
"code" => "bi",
"name" => "Bislama",
"nativeName" => "Bislama"
],
[
"code" => "bm",
"name" => "Bambara",
"nativeName" => "Bamanankan"
],
[
"code" => "bn",
"name" => "Bengali",
"nativeName" => "বাংলা"
],
[
"code" => "bo",
"name" => "Tibetan",
"nativeName" => "བོད་ཡིག / Bod skad"
],
[
"code" => "br",
"name" => "Breton",
"nativeName" => "Brezhoneg"
],
[
"code" => "bs",
"name" => "Bosnian",
"nativeName" => "Bosanski"
],
[
"code" => "ca",
"name" => "Catalan",
"nativeName" => "Català"
],
[
"code" => "ce",
"name" => "Chechen",
"nativeName" => "Нохчийн"
],
[
"code" => "ch",
"name" => "Chamorro",
"nativeName" => "Chamoru"
],
[
"code" => "co",
"name" => "Corsican",
"nativeName" => "Corsu"
],
[
"code" => "cr",
"name" => "Cree",
"nativeName" => "Nehiyaw"
],
[
"code" => "cs",
"name" => "Czech",
"nativeName" => "Česky"
],
[
"code" => "cu",
"name" => "Old Church Slavonic / Old Bulgarian",
"nativeName" => "словѣньскъ / slověnĭskŭ"
],
[
"code" => "cv",
"name" => "Chuvash",
"nativeName" => "Чăваш"
],
[
"code" => "cy",
"name" => "Welsh",
"nativeName" => "Cymraeg"
],
[
"code" => "da",
"name" => "Danish",
"nativeName" => "Dansk"
],
[
"code" => "de",
"name" => "German",
"nativeName" => "Deutsch"
],
[
"code" => "dv",
"name" => "Divehi",
"nativeName" => "ދިވެހިބަސް"
],
[
"code" => "dz",
"name" => "Dzongkha",
"nativeName" => "ཇོང་ཁ"
],
[
"code" => "ee",
"name" => "Ewe",
"nativeName" => "Ɛʋɛ"
],
[
"code" => "el",
"name" => "Greek",
"nativeName" => "Ελληνικά"
],
[
"code" => "en",
"name" => "English",
"nativeName" => "English"
],
[
"code" => "eo",
"name" => "Esperanto",
"nativeName" => "Esperanto"
],
[
"code" => "es",
"name" => "Spanish",
"nativeName" => "Español"
],
[
"code" => "et",
"name" => "Estonian",
"nativeName" => "Eesti"
],
[
"code" => "eu",
"name" => "Basque",
"nativeName" => "Euskara"
],
[
"code" => "fa",
"name" => "Persian",
"nativeName" => "فارسی"
],
[
"code" => "ff",
"name" => "Peul",
"nativeName" => "Fulfulde"
],
[
"code" => "fi",
"name" => "Finnish",
"nativeName" => "Suomi"
],
[
"code" => "fj",
"name" => "Fijian",
"nativeName" => "Na Vosa Vakaviti"
],
[
"code" => "fo",
"name" => "Faroese",
"nativeName" => "Føroyskt"
],
[
"code" => "fr",
"name" => "French",
"nativeName" => "Français"
],
[
"code" => "fy",
"name" => "West Frisian",
"nativeName" => "Frysk"
],
[
"code" => "ga",
"name" => "Irish",
"nativeName" => "Gaeilge"
],
[
"code" => "gd",
"name" => "Scottish Gaelic",
"nativeName" => "Gàidhlig"
],
[
"code" => "gl",
"name" => "Galician",
"nativeName" => "Galego"
],
[
"code" => "gn",
"name" => "Guarani",
"nativeName" => "Avañe'ẽ"
],
[
"code" => "gu",
"name" => "Gujarati",
"nativeName" => "ગુજરાતી"
],
[
"code" => "gv",
"name" => "Manx",
"nativeName" => "Gaelg"
],
[
"code" => "ha",
"name" => "Hausa",
"nativeName" => "هَوُسَ"
],
[
"code" => "he",
"name" => "Hebrew",
"nativeName" => "עברית"
],
[
"code" => "hi",
"name" => "Hindi",
"nativeName" => "हिन्दी"
],
[
"code" => "ho",
"name" => "Hiri Motu",
"nativeName" => "Hiri Motu"
],
[
"code" => "hr",
"name" => "Croatian",
"nativeName" => "Hrvatski"
],
[
"code" => "ht",
"name" => "Haitian",
"nativeName" => "Krèyol ayisyen"
],
[
"code" => "hu",
"name" => "Hungarian",
"nativeName" => "Magyar"
],
[
"code" => "hy",
"name" => "Armenian",
"nativeName" => "Հայերեն"
],
[
"code" => "hz",
"name" => "Herero",
"nativeName" => "Otsiherero"
],
[
"code" => "ia",
"name" => "Interlingua",
"nativeName" => "Interlingua"
],
[
"code" => "id",
"name" => "Indonesian",
"nativeName" => "Bahasa Indonesia"
],
[
"code" => "ie",
"name" => "Interlingue",
"nativeName" => "Interlingue"
],
[
"code" => "ig",
"name" => "Igbo",
"nativeName" => "Igbo"
],
[
"code" => "ii",
"name" => "Sichuan Yi",
"nativeName" => "ꆇꉙ / 四川彝语"
],
[
"code" => "ik",
"name" => "Inupiak",
"nativeName" => "Iñupiak"
],
[
"code" => "io",
"name" => "Ido",
"nativeName" => "Ido"
],
[
"code" => "is",
"name" => "Icelandic",
"nativeName" => "Íslenska"
],
[
"code" => "it",
"name" => "Italian",
"nativeName" => "Italiano"
],
[
"code" => "iu",
"name" => "Inuktitut",
"nativeName" => "ᐃᓄᒃᑎᑐᑦ"
],
[
"code" => "ja",
"name" => "Japanese",
"nativeName" => "日本語"
],
[
"code" => "jv",
"name" => "Javanese",
"nativeName" => "Basa Jawa"
],
[
"code" => "ka",
"name" => "Georgian",
"nativeName" => "ქართული"
],
[
"code" => "kg",
"name" => "Kongo",
"nativeName" => "KiKongo"
],
[
"code" => "ki",
"name" => "Kikuyu",
"nativeName" => "Gĩkũyũ"
],
[
"code" => "kj",
"name" => "Kuanyama",
"nativeName" => "Kuanyama"
],
[
"code" => "kk",
"name" => "Kazakh",
"nativeName" => "Қазақша"
],
[
"code" => "kl",
"name" => "Greenlandic",
"nativeName" => "Kalaallisut"
],
[
"code" => "km",
"name" => "Cambodian",
"nativeName" => "ភាសាខ្មែរ"
],
[
"code" => "kn",
"name" => "Kannada",
"nativeName" => "ಕನ್ನಡ"
],
[
"code" => "ko",
"name" => "Korean",
"nativeName" => "한국어"
],
[
"code" => "kr",
"name" => "Kanuri",
"nativeName" => "Kanuri"
],
[
"code" => "ks",
"name" => "Kashmiri",
"nativeName" => "कश्मीरी / كشميري"
],
[
"code" => "ku",
"name" => "Kurdish",
"nativeName" => "Kurdî / كوردی"
],
[
"code" => "kv",
"name" => "Komi",
"nativeName" => "Коми"
],
[
"code" => "kw",
"name" => "Cornish",
"nativeName" => "Kernewek"
],
[
"code" => "ky",
"name" => "Kirghiz",
"nativeName" => "Kırgızca / Кыргызча"
],
[
"code" => "la",
"name" => "Latin",
"nativeName" => "Latina"
],
[
"code" => "lb",
"name" => "Luxembourgish",
"nativeName" => "Lëtzebuergesch"
],
[
"code" => "lg",
"name" => "Ganda",
"nativeName" => "Luganda"
],
[
"code" => "li",
"name" => "Limburgian",
"nativeName" => "Limburgs"
],
[
"code" => "ln",
"name" => "Lingala",
"nativeName" => "Lingála"
],
[
"code" => "lo",
"name" => "Laotian",
"nativeName" => "ລາວ / Pha xa lao"
],
[
"code" => "lt",
"name" => "Lithuanian",
"nativeName" => "Lietuvių"
],
[
"code" => "lu",
"name" => "Luba-Katanga",
"nativeName" => "Tshiluba"
],
[
"code" => "lv",
"name" => "Latvian",
"nativeName" => "Latviešu"
],
[
"code" => "mg",
"name" => "Malagasy",
"nativeName" => "Malagasy"
],
[
"code" => "mh",
"name" => "Marshallese",
"nativeName" => "Kajin Majel / Ebon"
],
[
"code" => "mi",
"name" => "Maori",
"nativeName" => "Māori"
],
[
"code" => "mk",
"name" => "Macedonian",
"nativeName" => "Македонски"
],
[
"code" => "ml",
"name" => "Malayalam",
"nativeName" => "മലയാളം"
],
[
"code" => "mn",
"name" => "Mongolian",
"nativeName" => "Монгол"
],
[
"code" => "mo",
"name" => "Moldovan",
"nativeName" => "Moldovenească"
],
[
"code" => "mr",
"name" => "Marathi",
"nativeName" => "मराठी"
],
[
"code" => "ms",
"name" => "Malay",
"nativeName" => "Bahasa Melayu"
],
[
"code" => "mt",
"name" => "Maltese",
"nativeName" => "bil-Malti"
],
[
"code" => "my",
"name" => "Burmese",
"nativeName" => "မြန်မာစာ"
],
[
"code" => "na",
"name" => "Nauruan",
"nativeName" => "Dorerin Naoero"
],
[
"code" => "nb",
"name" => "Norwegian Bokmål",
"nativeName" => "Norsk bokmål"
],
[
"code" => "nd",
"name" => "North Ndebele",
"nativeName" => "Sindebele"
],
[
"code" => "ne",
"name" => "Nepali",
"nativeName" => "नेपाली"
],
[
"code" => "ng",
"name" => "Ndonga",
"nativeName" => "Oshiwambo"
],
[
"code" => "nl",
"name" => "Dutch",
"nativeName" => "Nederlands"
],
[
"code" => "nn",
"name" => "Norwegian Nynorsk",
"nativeName" => "Norsk nynorsk"
],
[
"code" => "no",
"name" => "Norwegian",
"nativeName" => "Norsk"
],
[
"code" => "nr",
"name" => "South Ndebele",
"nativeName" => "isiNdebele"
],
[
"code" => "nv",
"name" => "Navajo",
"nativeName" => "Diné bizaad"
],
[
"code" => "ny",
"name" => "Chichewa",
"nativeName" => "Chi-Chewa"
],
[
"code" => "oc",
"name" => "Occitan",
"nativeName" => "Occitan"
],
[
"code" => "oj",
"name" => "Ojibwa",
"nativeName" => "ᐊᓂᔑᓈᐯᒧᐎᓐ / Anishinaabemowin"
],
[
"code" => "om",
"name" => "Oromo",
"nativeName" => "Oromoo"
],
[
"code" => "or",
"name" => "Oriya",
"nativeName" => "ଓଡ଼ିଆ"
],
[
"code" => "os",
"name" => "Ossetian / Ossetic",
"nativeName" => "Иронау"
],
[
"code" => "pa",
"name" => "Panjabi / Punjabi",
"nativeName" => "ਪੰਜਾਬੀ / पंजाबी / پنجابي"
],
[
"code" => "pi",
"name" => "Pali",
"nativeName" => "Pāli / पाऴि"
],
[
"code" => "pl",
"name" => "Polish",
"nativeName" => "Polski"
],
[
"code" => "ps",
"name" => "Pashto",
"nativeName" => "پښتو"
],
[
"code" => "pt",
"name" => "Portuguese",
"nativeName" => "Português"
],
[
"code" => "qu",
"name" => "Quechua",
"nativeName" => "Runa Simi"
],
[
"code" => "rm",
"name" => "Raeto Romance",
"nativeName" => "Rumantsch"
],
[
"code" => "rn",
"name" => "Kirundi",
"nativeName" => "Kirundi"
],
[
"code" => "ro",
"name" => "Romanian",
"nativeName" => "Română"
],
[
"code" => "ru",
"name" => "Russian",
"nativeName" => "Русский"
],
[
"code" => "rw",
"name" => "Rwandi",
"nativeName" => "Kinyarwandi"
],
[
"code" => "sa",
"name" => "Sanskrit",
"nativeName" => "संस्कृतम्"
],
[
"code" => "sc",
"name" => "Sardinian",
"nativeName" => "Sardu"
],
[
"code" => "sd",
"name" => "Sindhi",
"nativeName" => "सिनधि"
],
[
"code" => "se",
"name" => "Northern Sami",
"nativeName" => "Sámegiella"
],
[
"code" => "sg",
"name" => "Sango",
"nativeName" => "Sängö"
],
[
"code" => "sh",
"name" => "Serbo-Croatian",
"nativeName" => "Srpskohrvatski / Српскохрватски"
],
[
"code" => "si",
"name" => "Sinhalese",
"nativeName" => "සිංහල"
],
[
"code" => "sk",
"name" => "Slovak",
"nativeName" => "Slovenčina"
],
[
"code" => "sl",
"name" => "Slovenian",
"nativeName" => "Slovenščina"
],
[
"code" => "sm",
"name" => "Samoan",
"nativeName" => "Gagana Samoa"
],
[
"code" => "sn",
"name" => "Shona",
"nativeName" => "chiShona"
],
[
"code" => "so",
"name" => "Somalia",
"nativeName" => "Soomaaliga"
],
[
"code" => "sq",
"name" => "Albanian",
"nativeName" => "Shqip"
],
[
"code" => "sr",
"name" => "Serbian",
"nativeName" => "Српски"
],
[
"code" => "ss",
"name" => "Swati",
"nativeName" => "SiSwati"
],
[
"code" => "st",
"name" => "Southern Sotho",
"nativeName" => "Sesotho"
],
[
"code" => "su",
"name" => "Sundanese",
"nativeName" => "Basa Sunda"
],
[
"code" => "sv",
"name" => "Swedish",
"nativeName" => "Svenska"
],
[
"code" => "sw",
"name" => "Swahili",
"nativeName" => "Kiswahili"
],
[
"code" => "ta",
"name" => "Tamil",
"nativeName" => "தமிழ்"
],
[
"code" => "te",
"name" => "Telugu",
"nativeName" => "తెలుగు"
],
[
"code" => "tg",
"name" => "Tajik",
"nativeName" => "Тоҷикӣ"
],
[
"code" => "th",
"name" => "Thai",
"nativeName" => "ไทย / Phasa Thai"
],
[
"code" => "ti",
"name" => "Tigrinya",
"nativeName" => "ትግርኛ"
],
[
"code" => "tk",
"name" => "Turkmen",
"nativeName" => "Туркмен / تركمن"
],
[
"code" => "tl",
"name" => "Tagalog / Filipino",
"nativeName" => "Tagalog"
],
[
"code" => "tn",
"name" => "Tswana",
"nativeName" => "Setswana"
],
[
"code" => "to",
"name" => "Tonga",
"nativeName" => "Lea Faka-Tonga"
],
[
"code" => "tr",
"name" => "Turkish",
"nativeName" => "Türkçe"
],
[
"code" => "ts",
"name" => "Tsonga",
"nativeName" => "Xitsonga"
],
[
"code" => "tt",
"name" => "Tatar",
"nativeName" => "Tatarça"
],
[
"code" => "tw",
"name" => "Twi",
"nativeName" => "Twi"
],
[
"code" => "ty",
"name" => "Tahitian",
"nativeName" => "Reo Mā`ohi"
],
[
"code" => "ug",
"name" => "Uyghur",
"nativeName" => "Uyƣurqə / ئۇيغۇرچە"
],
[
"code" => "uk",
"name" => "Ukrainian",
"nativeName" => "Українська"
],
[
"code" => "ur",
"name" => "Urdu",
"nativeName" => "اردو"
],
[
"code" => "uz",
"name" => "Uzbek",
"nativeName" => "Ўзбек"
],
[
"code" => "ve",
"name" => "Venda",
"nativeName" => "Tshivenḓa"
],
[
"code" => "vi",
"name" => "Vietnamese",
"nativeName" => "Tiếng Việt"
],
[
"code" => "vo",
"name" => "Volapük",
"nativeName" => "Volapük"
],
[
"code" => "wa",
"name" => "Walloon",
"nativeName" => "Walon"
],
[
"code" => "wo",
"name" => "Wolof",
"nativeName" => "Wollof"
],
[
"code" => "xh",
"name" => "Xhosa",
"nativeName" => "isiXhosa"
],
[
"code" => "yi",
"name" => "Yiddish",
"nativeName" => "ייִדיש"
],
[
"code" => "yo",
"name" => "Yoruba",
"nativeName" => "Yorùbá"
],
[
"code" => "za",
"name" => "Zhuang",
"nativeName" => "Cuengh / Tôô / 壮语"
],
[
"code" => "zh",
"name" => "Chinese",
"nativeName" => "中文"
],
[
"code" => "zu",
"name" => "Zulu",
"nativeName" => "isiZulu"
]
];

View file

@ -165,3 +165,19 @@ $utopia->get('/v1/locale/currencies')
$response->json($currencies);
}
);
$utopia->get('/v1/locale/languages')
->desc('List Languages')
->label('scope', 'locale.read')
->label('sdk.platform', [APP_PLATFORM_CLIENT, APP_PLATFORM_SERVER])
->label('sdk.namespace', 'locale')
->label('sdk.method', 'getLanguages')
->label('sdk.description', '/docs/references/locale/get-languages.md')
->action(
function () use ($response) {
$languages = include __DIR__.'/../../config/languages.php';
$response->json($languages);
}
);

View file

@ -1 +1 @@
List of all currencies, including currency symol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.
List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in a supported language.

View file

@ -0,0 +1 @@
List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.

View file

@ -183,6 +183,35 @@ trait LocaleBase
return [];
}
public function testGetLanguages():array
{
/**
* Test for SUCCESS
*/
$response = $this->client->call(Client::METHOD_GET, '/locale/languages', array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()));
$this->assertEquals($response['headers']['status-code'], 200);
$this->assertIsArray($response['body']);
$this->assertCount(185, $response['body']);
$this->assertEquals($response['body'][0]['code'], 'aa');
$this->assertEquals($response['body'][0]['name'], 'Afar');
$this->assertEquals($response['body'][0]['nativeName'], 'Afar');
$this->assertEquals($response['body'][184]['code'], 'zu');
$this->assertEquals($response['body'][184]['name'], 'Zulu');
$this->assertEquals($response['body'][184]['nativeName'], 'isiZulu');
/**
* Test for FAILURE
*/
return [];
}
public function testLangaugaes(): array
{
/**