From 11366df5c2a65ba718f4b65c407de22b81d1875c Mon Sep 17 00:00:00 2001 From: dan63047 Date: Tue, 11 Jul 2023 20:02:35 +0300 Subject: [PATCH] Countries names + colors kindly stolen from osk tetra channel script --- lib/data_objects/tetrio.dart | 26 +- lib/gen/strings.g.dart | 1080 ++++++++++++++++++++++++++++- lib/services/crud_exceptions.dart | 14 + lib/services/tetrio_crud.dart | 4 +- lib/views/main_view.dart | 31 +- lib/widgets/user_thingy.dart | 2 +- res/i18n/strings.i18n.json | 294 +++++++- res/i18n/strings_ru.i18n.json | 294 +++++++- 8 files changed, 1728 insertions(+), 17 deletions(-) diff --git a/lib/data_objects/tetrio.dart b/lib/data_objects/tetrio.dart index 768f28f..336c30e 100644 --- a/lib/data_objects/tetrio.dart +++ b/lib/data_objects/tetrio.dart @@ -1,5 +1,6 @@ import 'dart:math'; import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; import 'package:vector_math/vector_math.dart'; const double noTrRd = 60.9; @@ -13,7 +14,7 @@ const double appdspWeight = 140; const double vsapmWeight = 60; const double cheeseWeight = 1.25; const double gbeWeight = 315; -const Map ranksCutoffs = { +const Map rankCutoffs = { "x": 0.01, "u": 0.05, "ss": 0.11, @@ -32,6 +33,27 @@ const Map ranksCutoffs = { "d+": 0.975, "d": 1 }; +const Map rankColors = { // thanks osk for const rankColors at https://ch.tetr.io/res/js/base.js:418 + 'x': Color(0xFFFF45FF), + 'u': Color(0xFFFF3813), + 'ss': Color(0xFFDB8B1F), + 's+': Color(0xFFD8AF0E), + 's': Color(0xFFE0A71B), + 's-': Color(0xFFB2972B), + 'a+': Color(0xFF1FA834), + 'a': Color(0xFF46AD51), + 'a-': Color(0xFF3BB687), + 'b+': Color(0xFF4F99C0), + 'b': Color(0xFF4F64C9), + 'b-': Color(0xFF5650C7), + 'c+': Color(0xFF552883), + 'c': Color(0xFF733E8F), + 'c-': Color(0xFF79558C), + 'd+': Color(0xFF8E6091), + 'd': Color(0xFF907591), + 'z': Color(0xFF375433) +}; + Duration doubleSecondsToDuration(double value) { value = value * 1000000; @@ -890,7 +912,7 @@ class TetrioPlayersLeaderboard { avgGamesPlayed = (totalGamesPlayed / filtredLeaderboard.length).floor(); avgGamesWon = (totalGamesWon / filtredLeaderboard.length).floor(); return [TetraLeagueAlpha(apm: avgAPM, pps: avgPPS, vs: avgVS, glicko: avgGlicko, rd: avgRD, gamesPlayed: avgGamesPlayed, gamesWon: avgGamesWon, bestRank: rank, decaying: false, rating: avgTR, rank: rank, percentileRank: rank, percentile: 0, standing: -1, standingLocal: -1, nextAt: -1, prevAt: -1), - {"totalGamesPlayed": totalGamesPlayed, "totalGamesWon": totalGamesWon, "players": filtredLeaderboard.length, "lowestTR": lowestTR, "toEnterTR": leaderboard[(leaderboard.length * ranksCutoffs[rank]!).floor()-1].rating}]; + {"totalGamesPlayed": totalGamesPlayed, "totalGamesWon": totalGamesWon, "players": filtredLeaderboard.length, "lowestTR": lowestTR, "toEnterTR": leaderboard[(leaderboard.length * rankCutoffs[rank]!).floor()-1].rating}]; } Map> get averages => { diff --git a/lib/gen/strings.g.dart b/lib/gen/strings.g.dart index 7a7a680..c12c794 100644 --- a/lib/gen/strings.g.dart +++ b/lib/gen/strings.g.dart @@ -1,9 +1,9 @@ /// Generated file. Do not edit. /// /// Locales: 2 -/// Strings: 154 (77 per locale) +/// Strings: 680 (340 per locale) /// -/// Built on 2023-07-10 at 17:08 UTC +/// Built on 2023-07-11 at 16:43 UTC // coverage:ignore-file // ignore_for_file: type=lint @@ -192,6 +192,7 @@ class _StringsEn implements BaseTranslations { String get decaying => 'Decaying'; String gamesUntilRanked({required Object left}) => '${left} games until being ranked'; String get nerdStats => 'Nerd Stats'; + String get playersYouTrack => 'Players you track'; late final _StringsStatCellNumEn statCellNum = _StringsStatCellNumEn._(_root); Map get playerRole => { 'user': 'User', @@ -201,9 +202,271 @@ class _StringsEn implements BaseTranslations { 'admin': 'Admin', 'mod': 'Moderator', 'halfmod': 'Community moderator', + 'anon': 'Anonymous', }; late final _StringsNumOfGameActionsEn numOfGameActions = _StringsNumOfGameActionsEn._(_root); late final _StringsPopupActionsEn popupActions = _StringsPopupActionsEn._(_root); + late final _StringsErrorsEn errors = _StringsErrorsEn._(_root); + Map get countries => { + 'AF': 'Afghanistan', + 'AX': 'Åland Islands', + 'AL': 'Albania', + 'DZ': 'Algeria', + 'AS': 'American Samoa', + 'AD': 'Andorra', + 'AO': 'Angola', + 'AI': 'Anguilla', + 'AQ': 'Antarctica', + 'AG': 'Antigua and Barbuda', + 'AR': 'Argentina', + 'AM': 'Armenia', + 'AW': 'Aruba', + 'AU': 'Australia', + 'AT': 'Austria', + 'AZ': 'Azerbaijan', + 'BS': 'Bahamas', + 'BH': 'Bahrain', + 'BD': 'Bangladesh', + 'BB': 'Barbados', + 'BY': 'Belarus', + 'BE': 'Belgium', + 'BZ': 'Belize', + 'BJ': 'Benin', + 'BM': 'Bermuda', + 'BT': 'Bhutan', + 'BO': 'Bolivia, Plurinational State of', + 'BA': 'Bosnia and Herzegovina', + 'BW': 'Botswana', + 'BV': 'Bouvet Island', + 'BR': 'Brazil', + 'IO': 'British Indian Ocean Territory', + 'BN': 'Brunei Darussalam', + 'BG': 'Bulgaria', + 'BF': 'Burkina Faso', + 'BI': 'Burundi', + 'KH': 'Cambodia', + 'CM': 'Cameroon', + 'CA': 'Canada', + 'CV': 'Cape Verde', + 'BQ': 'Caribbean Netherlands', + 'KY': 'Cayman Islands', + 'CF': 'Central African Republic', + 'TD': 'Chad', + 'CL': 'Chile', + 'CN': 'China', + 'CX': 'Christmas Island', + 'CC': 'Cocos (Keeling) Islands', + 'CO': 'Colombia', + 'KM': 'Comoros', + 'CG': 'Congo', + 'CD': 'Congo, the Democratic Republic of the', + 'CK': 'Cook Islands', + 'CR': 'Costa Rica', + 'CI': 'Côte d\'Ivoire', + 'HR': 'Croatia', + 'CU': 'Cuba', + 'CW': 'Curaçao', + 'CY': 'Cyprus', + 'CZ': 'Czech Republic', + 'DK': 'Denmark', + 'DJ': 'Djibouti', + 'DM': 'Dominica', + 'DO': 'Dominican Republic', + 'EC': 'Ecuador', + 'EG': 'Egypt', + 'SV': 'El Salvador', + 'GB-ENG': 'England', + 'GQ': 'Equatorial Guinea', + 'ER': 'Eritrea', + 'EE': 'Estonia', + 'ET': 'Ethiopia', + 'EU': 'Europe', + 'FK': 'Falkland Islands (Malvinas)', + 'FO': 'Faroe Islands', + 'FJ': 'Fiji', + 'FI': 'Finland', + 'FR': 'France', + 'GF': 'French Guiana', + 'PF': 'French Polynesia', + 'TF': 'French Southern Territories', + 'GA': 'Gabon', + 'GM': 'Gambia', + 'GE': 'Georgia', + 'DE': 'Germany', + 'GH': 'Ghana', + 'GI': 'Gibraltar', + 'GR': 'Greece', + 'GL': 'Greenland', + 'GD': 'Grenada', + 'GP': 'Guadeloupe', + 'GU': 'Guam', + 'GT': 'Guatemala', + 'GG': 'Guernsey', + 'GN': 'Guinea', + 'GW': 'Guinea-Bissau', + 'GY': 'Guyana', + 'HT': 'Haiti', + 'HM': 'Heard Island and McDonald Islands', + 'VA': 'Holy See (Vatican City State)', + 'HN': 'Honduras', + 'HK': 'Hong Kong', + 'HU': 'Hungary', + 'IS': 'Iceland', + 'IN': 'India', + 'ID': 'Indonesia', + 'IR': 'Iran, Islamic Republic of', + 'IQ': 'Iraq', + 'IE': 'Ireland', + 'IM': 'Isle of Man', + 'IL': 'Israel', + 'IT': 'Italy', + 'JM': 'Jamaica', + 'JP': 'Japan', + 'JE': 'Jersey', + 'JO': 'Jordan', + 'KZ': 'Kazakhstan', + 'KE': 'Kenya', + 'KI': 'Kiribati', + 'KP': 'Korea, Democratic People\'s Republic of', + 'KR': 'Korea, Republic of', + 'XK': 'Kosovo', + 'KW': 'Kuwait', + 'KG': 'Kyrgyzstan', + 'LA': 'Lao People\'s Democratic Republic', + 'LV': 'Latvia', + 'LB': 'Lebanon', + 'LS': 'Lesotho', + 'LR': 'Liberia', + 'LY': 'Libya', + 'LI': 'Liechtenstein', + 'LT': 'Lithuania', + 'LU': 'Luxembourg', + 'MO': 'Macao', + 'MK': 'Macedonia, the former Yugoslav Republic of', + 'MG': 'Madagascar', + 'MW': 'Malawi', + 'MY': 'Malaysia', + 'MV': 'Maldives', + 'ML': 'Mali', + 'MT': 'Malta', + 'MH': 'Marshall Islands', + 'MQ': 'Martinique', + 'MR': 'Mauritania', + 'MU': 'Mauritius', + 'YT': 'Mayotte', + 'MX': 'Mexico', + 'FM': 'Micronesia, Federated States of', + 'MD': 'Moldova, Republic of', + 'MC': 'Monaco', + 'ME': 'Montenegro', + 'MA': 'Morocco', + 'MN': 'Mongolia', + 'MS': 'Montserrat', + 'MZ': 'Mozambique', + 'MM': 'Myanmar', + 'NA': 'Namibia', + 'NR': 'Nauru', + 'NP': 'Nepal', + 'NL': 'Netherlands', + 'AN': 'Netherlands Antilles', + 'NC': 'New Caledonia', + 'NZ': 'New Zealand', + 'NI': 'Nicaragua', + 'NE': 'Niger', + 'NG': 'Nigeria', + 'NU': 'Niue', + 'NF': 'Norfolk Island', + 'GB-NIR': 'Northern Ireland', + 'MP': 'Northern Mariana Islands', + 'NO': 'Norway', + 'OM': 'Oman', + 'PK': 'Pakistan', + 'PW': 'Palau', + 'PS': 'Palestine', + 'PA': 'Panama', + 'PG': 'Papua New Guinea', + 'PY': 'Paraguay', + 'PE': 'Peru', + 'PH': 'Philippines', + 'PN': 'Pitcairn', + 'PL': 'Poland', + 'PT': 'Portugal', + 'PR': 'Puerto Rico', + 'QA': 'Qatar', + 'RE': 'Réunion', + 'RO': 'Romania', + 'RU': 'Russian Federation', + 'RW': 'Rwanda', + 'BL': 'Saint Barthélemy', + 'SH': 'Saint Helena, Ascension and Tristan da Cunha', + 'KN': 'Saint Kitts and Nevis', + 'LC': 'Saint Lucia', + 'MF': 'Saint Martin', + 'PM': 'Saint Pierre and Miquelon', + 'VC': 'Saint Vincent and the Grenadines', + 'WS': 'Samoa', + 'SM': 'San Marino', + 'ST': 'Sao Tome and Principe', + 'SA': 'Saudi Arabia', + 'GB-SCT': 'Scotland', + 'SN': 'Senegal', + 'RS': 'Serbia', + 'SC': 'Seychelles', + 'SL': 'Sierra Leone', + 'SG': 'Singapore', + 'SX': 'Sint Maarten (Dutch part)', + 'SK': 'Slovakia', + 'SI': 'Slovenia', + 'SB': 'Solomon Islands', + 'SO': 'Somalia', + 'ZA': 'South Africa', + 'GS': 'South Georgia and the South Sandwich Islands', + 'SS': 'South Sudan', + 'ES': 'Spain', + 'LK': 'Sri Lanka', + 'SD': 'Sudan', + 'SR': 'Suriname', + 'SJ': 'Svalbard and Jan Mayen Islands', + 'SZ': 'Swaziland', + 'SE': 'Sweden', + 'CH': 'Switzerland', + 'SY': 'Syrian Arab Republic', + 'TW': 'Taiwan', + 'TJ': 'Tajikistan', + 'TZ': 'Tanzania, United Republic of', + 'TH': 'Thailand', + 'TL': 'Timor-Leste', + 'TG': 'Togo', + 'TK': 'Tokelau', + 'TO': 'Tonga', + 'TT': 'Trinidad and Tobago', + 'TN': 'Tunisia', + 'TR': 'Turkey', + 'TM': 'Turkmenistan', + 'TC': 'Turks and Caicos Islands', + 'TV': 'Tuvalu', + 'UG': 'Uganda', + 'UA': 'Ukraine', + 'AE': 'United Arab Emirates', + 'GB': 'United Kingdom', + 'US': 'United States', + 'UY': 'Uruguay', + 'UM': 'US Minor Outlying Islands', + 'UZ': 'Uzbekistan', + 'VU': 'Vanuatu', + 'VE': 'Venezuela, Bolivarian Republic of', + 'VN': 'Vietnam', + 'VG': 'Virgin Islands, British', + 'VI': 'Virgin Islands, U.S.', + 'GB-WLS': 'Wales', + 'WF': 'Wallis and Futuna Islands', + 'EH': 'Western Sahara', + 'YE': 'Yemen', + 'ZM': 'Zambia', + 'ZW': 'Zimbabwe', + 'XX': 'Unknown', + 'XM': 'The Moon', + }; } // Path: statCellNum @@ -260,6 +523,18 @@ class _StringsPopupActionsEn { String get ok => 'OK'; } +// Path: errors +class _StringsErrorsEn { + _StringsErrorsEn._(this._root); + + final _StringsEn _root; // ignore: unused_field + + // Translations + String connection({required Object code, required Object message}) => 'Some issue with connection: ${code} ${message}'; + String get noSuchUser => 'No such user'; + String socketException({required Object host, required Object message}) => 'Can\'t connect with ${host}: ${message}'; +} + // Path: class _StringsRu implements _StringsEn { @@ -330,6 +605,7 @@ class _StringsRu implements _StringsEn { @override String get decaying => 'Загнивает'; @override String gamesUntilRanked({required Object left}) => '${left} матчей до получения рейтинга'; @override String get nerdStats => 'Для задротов'; + @override String get playersYouTrack => 'Отслеживаемые игроки'; @override late final _StringsStatCellNumRu statCellNum = _StringsStatCellNumRu._(_root); @override Map get playerRole => { 'user': 'Пользователь', @@ -339,9 +615,271 @@ class _StringsRu implements _StringsEn { 'admin': 'Администратор', 'mod': 'Модератор', 'halfmod': 'Модератор сообщества', + 'anon': 'Аноним', }; @override late final _StringsNumOfGameActionsRu numOfGameActions = _StringsNumOfGameActionsRu._(_root); @override late final _StringsPopupActionsRu popupActions = _StringsPopupActionsRu._(_root); + @override late final _StringsErrorsRu errors = _StringsErrorsRu._(_root); + @override Map get countries => { + 'AF': 'Афганистан', + 'AX': 'Аландские острова', + 'AL': 'Албания', + 'DZ': 'Алжир', + 'AS': 'Американское Самоа', + 'AD': 'Андорра', + 'AO': 'Ангола', + 'AI': 'Ангилья', + 'AQ': 'Антарктида', + 'AG': 'Антигуа и Барбуда', + 'AR': 'Аргентина', + 'AM': 'Армения', + 'AW': 'Аруба', + 'AU': 'Австралия', + 'AT': 'Австрия', + 'AZ': 'Азербайджан', + 'BS': 'Багамские острова', + 'BH': 'Бахрейн', + 'BD': 'Бангладеш', + 'BB': 'Барбадос', + 'BY': 'Беларусь', + 'BE': 'Бельгия', + 'BZ': 'Белиз', + 'BJ': 'Бенин', + 'BM': 'Бермуды', + 'BT': 'Бутан', + 'BO': 'Боливия, Многонациональное Государство', + 'BA': 'Босния и Герцеговина', + 'BW': 'Ботсвана', + 'BV': 'Остров Буве', + 'BR': 'Бразилия', + 'IO': 'Британская территория в Индийском океане', + 'BN': 'Бруней-Даруссалам', + 'BG': 'Болгария', + 'BF': 'Буркина-Фасо', + 'BI': 'Бурунди', + 'KH': 'Камбоджа', + 'CM': 'Камерун', + 'CA': 'Канада', + 'CV': 'Кабо-Верде', + 'BQ': 'Карибские Нидерланды', + 'KY': 'Каймановы острова', + 'CF': 'Центральноафриканская Республика', + 'TD': 'Чад', + 'CL': 'Чили', + 'CN': 'Китай', + 'CX': 'Остров Рождества', + 'CC': 'Кокосовые острова', + 'CO': 'Колумбия', + 'KM': 'Коморские острова', + 'CG': 'Конго', + 'CD': 'Конго, Демократическая Республика', + 'CK': 'Острова Кука', + 'CR': 'Коста-Рика', + 'CI': 'Берег Слоновой Кости', + 'HR': 'Хорватия', + 'CU': 'Куба', + 'CW': 'Кюрасао', + 'CY': 'Кипр', + 'CZ': 'Чешская Республика', + 'DK': 'Дания', + 'DJ': 'Джибути', + 'DM': 'Доминика', + 'DO': 'Доминиканская Республика', + 'EC': 'Эквадор', + 'EG': 'Египет', + 'SV': 'Сальвадор', + 'GB-ENG': 'Англия', + 'GQ': 'Экваториальная Гвинея', + 'ER': 'Эритрея', + 'EE': 'Эстония', + 'ET': 'Эфиопия', + 'EU': 'Европа', + 'FK': 'Фолклендские (Мальвинские) острова', + 'FO': 'Фарерские острова', + 'FJ': 'Фиджи', + 'FI': 'Финляндия', + 'FR': 'Франция', + 'GF': 'Французская Гвиана', + 'PF': 'Французская Полинезия', + 'TF': 'Южные территории Франции', + 'GA': 'Габон', + 'GM': 'Гамбия', + 'GE': 'Грузия', + 'DE': 'Германия', + 'GH': 'Гана', + 'GI': 'Гибралтар', + 'GR': 'Греция', + 'GL': 'Гренландия', + 'GD': 'Гренада', + 'GP': 'Гваделупа', + 'GU': 'Гуам', + 'GT': 'Гватемала', + 'GG': 'Гернси', + 'GN': 'Гвинея', + 'GW': 'Гвинея-Бисау', + 'GY': 'Гайана', + 'HT': 'Гаити', + 'HM': 'Остров Херд и острова Макдональд', + 'VA': 'Святой Престол (государство-городок Ватикан)', + 'HN': 'Гондурас', + 'HK': 'Гонконг', + 'HU': 'Венгрия', + 'IS': 'Исландия', + 'IN': 'Индия', + 'ID': 'Индонезия', + 'IR': 'Иран, Исламская Республика', + 'IQ': 'Ирак', + 'IE': 'Ирландия', + 'IM': 'Остров Мэн', + 'IL': 'Израиль', + 'IT': 'Италия', + 'JM': 'Ямайка', + 'JP': 'Япония', + 'JE': 'Джерси', + 'JO': 'Иордания', + 'KZ': 'Казахстан', + 'KE': 'Кения', + 'KI': 'Кирибати', + 'KP': 'Корея, Народно-Демократическая Республика', + 'KR': 'Корея, Республика', + 'XK': 'Косово', + 'KW': 'Кувейт', + 'KG': 'Кыргызстан', + 'LA': 'Лаосская Народно-Демократическая Республика', + 'LV': 'Латвия', + 'LB': 'Ливан', + 'LS': 'Лесото', + 'LR': 'Либерия', + 'LY': 'Ливия', + 'LI': 'Лихтенштейн', + 'LT': 'Литва', + 'LU': 'Люксембург', + 'MO': 'Макао', + 'MK': 'Македония, бывшая югославская республика', + 'MG': 'Мадагаскар', + 'MW': 'Малави', + 'MY': 'Малайзия', + 'MV': 'Мальдивы', + 'ML': 'Мали', + 'MT': 'Мальта', + 'MH': 'Маршалловы острова', + 'MQ': 'Мартиника', + 'MR': 'Мавритания', + 'MU': 'Маврикий', + 'YT': 'Майотта', + 'MX': 'Мексика', + 'FM': 'Микронезия, Федеративные Штаты', + 'MD': 'Молдова, Республика', + 'MC': 'Монако', + 'ME': 'Черногория', + 'MA': 'Марокко', + 'MN': 'Монголия', + 'MS': 'Монтсеррат', + 'MZ': 'Мозамбик', + 'MM': 'Мьянма', + 'NA': 'Намибия', + 'NR': 'Науру', + 'NP': 'Непал', + 'NL': 'Нидерланды', + 'AN': 'Нидерландские Антильские острова', + 'NC': 'Новая Каледония', + 'NZ': 'Новая Зеландия', + 'NI': 'Никарагуа', + 'NE': 'Нигер', + 'NG': 'Нигерия', + 'NU': 'Ниуэ', + 'NF': 'Остров Норфолк', + 'GB-NIR': 'Северная Ирландия', + 'MP': 'Северные Марианские острова', + 'NO': 'Норвегия', + 'OM': 'Оман', + 'PK': 'Пакистан', + 'PW': 'Палау', + 'PS': 'Палестина', + 'PA': 'Панама', + 'PG': 'Папуа-Новая Гвинея', + 'PY': 'Парагвай', + 'PE': 'Перу', + 'PH': 'Филиппины', + 'PN': 'Питкэрн', + 'PL': 'Польша', + 'PT': 'Португалия', + 'PR': 'Пуэрто-Рико', + 'QA': 'Катар', + 'RE': 'Реюньон', + 'RO': 'Румыния', + 'RU': 'Российская Федерация', + 'RW': 'Руанда', + 'BL': 'Сен-Бартелеми', + 'SH': 'Острова Святой Елены, Вознесения и Тристан-да-Кунья', + 'KN': 'Сент-Китс и Невис', + 'LC': 'Сент-Люсия', + 'MF': 'Сен-Мартен', + 'PM': 'Сен-Пьер и Микелон', + 'VC': 'Сент-Винсент и Гренадины', + 'WS': 'Самоа', + 'SM': 'Сан-Марино', + 'ST': 'Сан-Томе и Принсипи', + 'SA': 'Саудовская Аравия', + 'GB-SCT': 'Шотландия', + 'SN': 'Сенегал', + 'RS': 'Сербия', + 'SC': 'Сейшельские острова', + 'SL': 'Сьерра-Леоне', + 'SG': 'Сингапур', + 'SX': 'Синт-Мартен (голландская часть)', + 'SK': 'Словакия', + 'SI': 'Словения', + 'SB': 'Соломоновы острова', + 'SO': 'Сомали', + 'ZA': 'ЮАР', + 'GS': 'Южная Георгия и Южные Сандвичевы острова', + 'SS': 'Южный Судан', + 'ES': 'Испания', + 'LK': 'Шри-Ланка', + 'SD': 'Судан', + 'SR': 'Суринам', + 'SJ': 'Острова Шпицберген и Ян-Майен', + 'SZ': 'Свазиленд', + 'SE': 'Швеция', + 'CH': 'Швейцария', + 'SY': 'Сирийская Арабская Республика', + 'TW': 'Тайвань', + 'TJ': 'Таджикистан', + 'TZ': 'Танзания, Объединенная Республика', + 'TH': 'Таиланд', + 'TL': 'Тимор-Лешти', + 'TG': 'Того', + 'TK': 'Токелау', + 'TO': 'Tonga', + 'TT': 'Тринидад и Тобаго', + 'TN': 'Тунис', + 'TR': 'Турция', + 'TM': 'Туркменистан', + 'TC': 'Острова Теркс и Кайкос', + 'ТВ': 'Тувалу', + 'UG': 'Уганда', + 'UA': 'Украина', + 'AE': 'Объединенные Арабские Эмираты', + 'GB': 'Великобритания', + 'US': 'Соединенные Штаты', + 'UY': 'Уругвай', + 'UM': 'Малые периферийные острова США', + 'UZ': 'Узбекистан', + 'VU': 'Вануату', + 'VE': 'Венесуэла, Боливарианская Республика', + 'VN': 'Вьетнам', + 'VG': 'Виргинские острова, Британские', + 'VI': 'Виргинские острова, США', + 'GB-WLS': 'Уэльс', + 'WF': 'Острова Уоллис и Футуна', + 'EH': 'Западная Сахара', + 'YE': 'Йемен', + 'ZM': 'Замбия', + 'ZW': 'Зимбабве', + 'XX': 'Неизвестно', + 'XM': 'Луна', + }; } // Path: statCellNum @@ -398,6 +936,18 @@ class _StringsPopupActionsRu implements _StringsPopupActionsEn { @override String get ok => 'OK'; } +// Path: errors +class _StringsErrorsRu implements _StringsErrorsEn { + _StringsErrorsRu._(this._root); + + @override final _StringsRu _root; // ignore: unused_field + + // Translations + @override String connection({required Object code, required Object message}) => 'Проблема с подключением: ${code} ${message}'; + @override String get noSuchUser => 'Нет такого пользователя'; + @override String socketException({required Object host, required Object message}) => 'Невозможно подключиться к ${host}: ${message}'; +} + /// Flat map(s) containing all translations. /// Only for edge cases! For simple maps, use the map function of this library. @@ -447,6 +997,7 @@ extension on _StringsEn { case 'decaying': return 'Decaying'; case 'gamesUntilRanked': return ({required Object left}) => '${left} games until being ranked'; case 'nerdStats': return 'Nerd Stats'; + case 'playersYouTrack': return 'Players you track'; case 'statCellNum.xpLevel': return 'XP Level'; case 'statCellNum.hoursPlayed': return 'Hours\nPlayed'; case 'statCellNum.onlineGames': return 'Online\nGames'; @@ -476,11 +1027,273 @@ extension on _StringsEn { case 'playerRole.admin': return 'Admin'; case 'playerRole.mod': return 'Moderator'; case 'playerRole.halfmod': return 'Community moderator'; + case 'playerRole.anon': return 'Anonymous'; case 'numOfGameActions.pc': return 'All Clears'; case 'numOfGameActions.hold': return 'Holds'; case 'numOfGameActions.tspinsTotal': return 'T-spins total'; case 'numOfGameActions.lineClears': return 'Line clears'; case 'popupActions.ok': return 'OK'; + case 'errors.connection': return ({required Object code, required Object message}) => 'Some issue with connection: ${code} ${message}'; + case 'errors.noSuchUser': return 'No such user'; + case 'errors.socketException': return ({required Object host, required Object message}) => 'Can\'t connect with ${host}: ${message}'; + case 'countries.AF': return 'Afghanistan'; + case 'countries.AX': return 'Åland Islands'; + case 'countries.AL': return 'Albania'; + case 'countries.DZ': return 'Algeria'; + case 'countries.AS': return 'American Samoa'; + case 'countries.AD': return 'Andorra'; + case 'countries.AO': return 'Angola'; + case 'countries.AI': return 'Anguilla'; + case 'countries.AQ': return 'Antarctica'; + case 'countries.AG': return 'Antigua and Barbuda'; + case 'countries.AR': return 'Argentina'; + case 'countries.AM': return 'Armenia'; + case 'countries.AW': return 'Aruba'; + case 'countries.AU': return 'Australia'; + case 'countries.AT': return 'Austria'; + case 'countries.AZ': return 'Azerbaijan'; + case 'countries.BS': return 'Bahamas'; + case 'countries.BH': return 'Bahrain'; + case 'countries.BD': return 'Bangladesh'; + case 'countries.BB': return 'Barbados'; + case 'countries.BY': return 'Belarus'; + case 'countries.BE': return 'Belgium'; + case 'countries.BZ': return 'Belize'; + case 'countries.BJ': return 'Benin'; + case 'countries.BM': return 'Bermuda'; + case 'countries.BT': return 'Bhutan'; + case 'countries.BO': return 'Bolivia, Plurinational State of'; + case 'countries.BA': return 'Bosnia and Herzegovina'; + case 'countries.BW': return 'Botswana'; + case 'countries.BV': return 'Bouvet Island'; + case 'countries.BR': return 'Brazil'; + case 'countries.IO': return 'British Indian Ocean Territory'; + case 'countries.BN': return 'Brunei Darussalam'; + case 'countries.BG': return 'Bulgaria'; + case 'countries.BF': return 'Burkina Faso'; + case 'countries.BI': return 'Burundi'; + case 'countries.KH': return 'Cambodia'; + case 'countries.CM': return 'Cameroon'; + case 'countries.CA': return 'Canada'; + case 'countries.CV': return 'Cape Verde'; + case 'countries.BQ': return 'Caribbean Netherlands'; + case 'countries.KY': return 'Cayman Islands'; + case 'countries.CF': return 'Central African Republic'; + case 'countries.TD': return 'Chad'; + case 'countries.CL': return 'Chile'; + case 'countries.CN': return 'China'; + case 'countries.CX': return 'Christmas Island'; + case 'countries.CC': return 'Cocos (Keeling) Islands'; + case 'countries.CO': return 'Colombia'; + case 'countries.KM': return 'Comoros'; + case 'countries.CG': return 'Congo'; + case 'countries.CD': return 'Congo, the Democratic Republic of the'; + case 'countries.CK': return 'Cook Islands'; + case 'countries.CR': return 'Costa Rica'; + case 'countries.CI': return 'Côte d\'Ivoire'; + case 'countries.HR': return 'Croatia'; + case 'countries.CU': return 'Cuba'; + case 'countries.CW': return 'Curaçao'; + case 'countries.CY': return 'Cyprus'; + case 'countries.CZ': return 'Czech Republic'; + case 'countries.DK': return 'Denmark'; + case 'countries.DJ': return 'Djibouti'; + case 'countries.DM': return 'Dominica'; + case 'countries.DO': return 'Dominican Republic'; + case 'countries.EC': return 'Ecuador'; + case 'countries.EG': return 'Egypt'; + case 'countries.SV': return 'El Salvador'; + case 'countries.GB-ENG': return 'England'; + case 'countries.GQ': return 'Equatorial Guinea'; + case 'countries.ER': return 'Eritrea'; + case 'countries.EE': return 'Estonia'; + case 'countries.ET': return 'Ethiopia'; + case 'countries.EU': return 'Europe'; + case 'countries.FK': return 'Falkland Islands (Malvinas)'; + case 'countries.FO': return 'Faroe Islands'; + case 'countries.FJ': return 'Fiji'; + case 'countries.FI': return 'Finland'; + case 'countries.FR': return 'France'; + case 'countries.GF': return 'French Guiana'; + case 'countries.PF': return 'French Polynesia'; + case 'countries.TF': return 'French Southern Territories'; + case 'countries.GA': return 'Gabon'; + case 'countries.GM': return 'Gambia'; + case 'countries.GE': return 'Georgia'; + case 'countries.DE': return 'Germany'; + case 'countries.GH': return 'Ghana'; + case 'countries.GI': return 'Gibraltar'; + case 'countries.GR': return 'Greece'; + case 'countries.GL': return 'Greenland'; + case 'countries.GD': return 'Grenada'; + case 'countries.GP': return 'Guadeloupe'; + case 'countries.GU': return 'Guam'; + case 'countries.GT': return 'Guatemala'; + case 'countries.GG': return 'Guernsey'; + case 'countries.GN': return 'Guinea'; + case 'countries.GW': return 'Guinea-Bissau'; + case 'countries.GY': return 'Guyana'; + case 'countries.HT': return 'Haiti'; + case 'countries.HM': return 'Heard Island and McDonald Islands'; + case 'countries.VA': return 'Holy See (Vatican City State)'; + case 'countries.HN': return 'Honduras'; + case 'countries.HK': return 'Hong Kong'; + case 'countries.HU': return 'Hungary'; + case 'countries.IS': return 'Iceland'; + case 'countries.IN': return 'India'; + case 'countries.ID': return 'Indonesia'; + case 'countries.IR': return 'Iran, Islamic Republic of'; + case 'countries.IQ': return 'Iraq'; + case 'countries.IE': return 'Ireland'; + case 'countries.IM': return 'Isle of Man'; + case 'countries.IL': return 'Israel'; + case 'countries.IT': return 'Italy'; + case 'countries.JM': return 'Jamaica'; + case 'countries.JP': return 'Japan'; + case 'countries.JE': return 'Jersey'; + case 'countries.JO': return 'Jordan'; + case 'countries.KZ': return 'Kazakhstan'; + case 'countries.KE': return 'Kenya'; + case 'countries.KI': return 'Kiribati'; + case 'countries.KP': return 'Korea, Democratic People\'s Republic of'; + case 'countries.KR': return 'Korea, Republic of'; + case 'countries.XK': return 'Kosovo'; + case 'countries.KW': return 'Kuwait'; + case 'countries.KG': return 'Kyrgyzstan'; + case 'countries.LA': return 'Lao People\'s Democratic Republic'; + case 'countries.LV': return 'Latvia'; + case 'countries.LB': return 'Lebanon'; + case 'countries.LS': return 'Lesotho'; + case 'countries.LR': return 'Liberia'; + case 'countries.LY': return 'Libya'; + case 'countries.LI': return 'Liechtenstein'; + case 'countries.LT': return 'Lithuania'; + case 'countries.LU': return 'Luxembourg'; + case 'countries.MO': return 'Macao'; + case 'countries.MK': return 'Macedonia, the former Yugoslav Republic of'; + case 'countries.MG': return 'Madagascar'; + case 'countries.MW': return 'Malawi'; + case 'countries.MY': return 'Malaysia'; + case 'countries.MV': return 'Maldives'; + case 'countries.ML': return 'Mali'; + case 'countries.MT': return 'Malta'; + case 'countries.MH': return 'Marshall Islands'; + case 'countries.MQ': return 'Martinique'; + case 'countries.MR': return 'Mauritania'; + case 'countries.MU': return 'Mauritius'; + case 'countries.YT': return 'Mayotte'; + case 'countries.MX': return 'Mexico'; + case 'countries.FM': return 'Micronesia, Federated States of'; + case 'countries.MD': return 'Moldova, Republic of'; + case 'countries.MC': return 'Monaco'; + case 'countries.ME': return 'Montenegro'; + case 'countries.MA': return 'Morocco'; + case 'countries.MN': return 'Mongolia'; + case 'countries.MS': return 'Montserrat'; + case 'countries.MZ': return 'Mozambique'; + case 'countries.MM': return 'Myanmar'; + case 'countries.NA': return 'Namibia'; + case 'countries.NR': return 'Nauru'; + case 'countries.NP': return 'Nepal'; + case 'countries.NL': return 'Netherlands'; + case 'countries.AN': return 'Netherlands Antilles'; + case 'countries.NC': return 'New Caledonia'; + case 'countries.NZ': return 'New Zealand'; + case 'countries.NI': return 'Nicaragua'; + case 'countries.NE': return 'Niger'; + case 'countries.NG': return 'Nigeria'; + case 'countries.NU': return 'Niue'; + case 'countries.NF': return 'Norfolk Island'; + case 'countries.GB-NIR': return 'Northern Ireland'; + case 'countries.MP': return 'Northern Mariana Islands'; + case 'countries.NO': return 'Norway'; + case 'countries.OM': return 'Oman'; + case 'countries.PK': return 'Pakistan'; + case 'countries.PW': return 'Palau'; + case 'countries.PS': return 'Palestine'; + case 'countries.PA': return 'Panama'; + case 'countries.PG': return 'Papua New Guinea'; + case 'countries.PY': return 'Paraguay'; + case 'countries.PE': return 'Peru'; + case 'countries.PH': return 'Philippines'; + case 'countries.PN': return 'Pitcairn'; + case 'countries.PL': return 'Poland'; + case 'countries.PT': return 'Portugal'; + case 'countries.PR': return 'Puerto Rico'; + case 'countries.QA': return 'Qatar'; + case 'countries.RE': return 'Réunion'; + case 'countries.RO': return 'Romania'; + case 'countries.RU': return 'Russian Federation'; + case 'countries.RW': return 'Rwanda'; + case 'countries.BL': return 'Saint Barthélemy'; + case 'countries.SH': return 'Saint Helena, Ascension and Tristan da Cunha'; + case 'countries.KN': return 'Saint Kitts and Nevis'; + case 'countries.LC': return 'Saint Lucia'; + case 'countries.MF': return 'Saint Martin'; + case 'countries.PM': return 'Saint Pierre and Miquelon'; + case 'countries.VC': return 'Saint Vincent and the Grenadines'; + case 'countries.WS': return 'Samoa'; + case 'countries.SM': return 'San Marino'; + case 'countries.ST': return 'Sao Tome and Principe'; + case 'countries.SA': return 'Saudi Arabia'; + case 'countries.GB-SCT': return 'Scotland'; + case 'countries.SN': return 'Senegal'; + case 'countries.RS': return 'Serbia'; + case 'countries.SC': return 'Seychelles'; + case 'countries.SL': return 'Sierra Leone'; + case 'countries.SG': return 'Singapore'; + case 'countries.SX': return 'Sint Maarten (Dutch part)'; + case 'countries.SK': return 'Slovakia'; + case 'countries.SI': return 'Slovenia'; + case 'countries.SB': return 'Solomon Islands'; + case 'countries.SO': return 'Somalia'; + case 'countries.ZA': return 'South Africa'; + case 'countries.GS': return 'South Georgia and the South Sandwich Islands'; + case 'countries.SS': return 'South Sudan'; + case 'countries.ES': return 'Spain'; + case 'countries.LK': return 'Sri Lanka'; + case 'countries.SD': return 'Sudan'; + case 'countries.SR': return 'Suriname'; + case 'countries.SJ': return 'Svalbard and Jan Mayen Islands'; + case 'countries.SZ': return 'Swaziland'; + case 'countries.SE': return 'Sweden'; + case 'countries.CH': return 'Switzerland'; + case 'countries.SY': return 'Syrian Arab Republic'; + case 'countries.TW': return 'Taiwan'; + case 'countries.TJ': return 'Tajikistan'; + case 'countries.TZ': return 'Tanzania, United Republic of'; + case 'countries.TH': return 'Thailand'; + case 'countries.TL': return 'Timor-Leste'; + case 'countries.TG': return 'Togo'; + case 'countries.TK': return 'Tokelau'; + case 'countries.TO': return 'Tonga'; + case 'countries.TT': return 'Trinidad and Tobago'; + case 'countries.TN': return 'Tunisia'; + case 'countries.TR': return 'Turkey'; + case 'countries.TM': return 'Turkmenistan'; + case 'countries.TC': return 'Turks and Caicos Islands'; + case 'countries.TV': return 'Tuvalu'; + case 'countries.UG': return 'Uganda'; + case 'countries.UA': return 'Ukraine'; + case 'countries.AE': return 'United Arab Emirates'; + case 'countries.GB': return 'United Kingdom'; + case 'countries.US': return 'United States'; + case 'countries.UY': return 'Uruguay'; + case 'countries.UM': return 'US Minor Outlying Islands'; + case 'countries.UZ': return 'Uzbekistan'; + case 'countries.VU': return 'Vanuatu'; + case 'countries.VE': return 'Venezuela, Bolivarian Republic of'; + case 'countries.VN': return 'Vietnam'; + case 'countries.VG': return 'Virgin Islands, British'; + case 'countries.VI': return 'Virgin Islands, U.S.'; + case 'countries.GB-WLS': return 'Wales'; + case 'countries.WF': return 'Wallis and Futuna Islands'; + case 'countries.EH': return 'Western Sahara'; + case 'countries.YE': return 'Yemen'; + case 'countries.ZM': return 'Zambia'; + case 'countries.ZW': return 'Zimbabwe'; + case 'countries.XX': return 'Unknown'; + case 'countries.XM': return 'The Moon'; default: return null; } } @@ -532,6 +1345,7 @@ extension on _StringsRu { case 'decaying': return 'Загнивает'; case 'gamesUntilRanked': return ({required Object left}) => '${left} матчей до получения рейтинга'; case 'nerdStats': return 'Для задротов'; + case 'playersYouTrack': return 'Отслеживаемые игроки'; case 'statCellNum.xpLevel': return 'Уровень\nопыта'; case 'statCellNum.hoursPlayed': return 'Часов\nСыграно'; case 'statCellNum.onlineGames': return 'Онлайн\nИгр'; @@ -561,11 +1375,273 @@ extension on _StringsRu { case 'playerRole.admin': return 'Администратор'; case 'playerRole.mod': return 'Модератор'; case 'playerRole.halfmod': return 'Модератор сообщества'; + case 'playerRole.anon': return 'Аноним'; case 'numOfGameActions.pc': return 'Все чисто'; case 'numOfGameActions.hold': return 'В запас'; case 'numOfGameActions.tspinsTotal': return 'T-spins всего'; case 'numOfGameActions.lineClears': return 'Линий очищено'; case 'popupActions.ok': return 'OK'; + case 'errors.connection': return ({required Object code, required Object message}) => 'Проблема с подключением: ${code} ${message}'; + case 'errors.noSuchUser': return 'Нет такого пользователя'; + case 'errors.socketException': return ({required Object host, required Object message}) => 'Невозможно подключиться к ${host}: ${message}'; + case 'countries.AF': return 'Афганистан'; + case 'countries.AX': return 'Аландские острова'; + case 'countries.AL': return 'Албания'; + case 'countries.DZ': return 'Алжир'; + case 'countries.AS': return 'Американское Самоа'; + case 'countries.AD': return 'Андорра'; + case 'countries.AO': return 'Ангола'; + case 'countries.AI': return 'Ангилья'; + case 'countries.AQ': return 'Антарктида'; + case 'countries.AG': return 'Антигуа и Барбуда'; + case 'countries.AR': return 'Аргентина'; + case 'countries.AM': return 'Армения'; + case 'countries.AW': return 'Аруба'; + case 'countries.AU': return 'Австралия'; + case 'countries.AT': return 'Австрия'; + case 'countries.AZ': return 'Азербайджан'; + case 'countries.BS': return 'Багамские острова'; + case 'countries.BH': return 'Бахрейн'; + case 'countries.BD': return 'Бангладеш'; + case 'countries.BB': return 'Барбадос'; + case 'countries.BY': return 'Беларусь'; + case 'countries.BE': return 'Бельгия'; + case 'countries.BZ': return 'Белиз'; + case 'countries.BJ': return 'Бенин'; + case 'countries.BM': return 'Бермуды'; + case 'countries.BT': return 'Бутан'; + case 'countries.BO': return 'Боливия, Многонациональное Государство'; + case 'countries.BA': return 'Босния и Герцеговина'; + case 'countries.BW': return 'Ботсвана'; + case 'countries.BV': return 'Остров Буве'; + case 'countries.BR': return 'Бразилия'; + case 'countries.IO': return 'Британская территория в Индийском океане'; + case 'countries.BN': return 'Бруней-Даруссалам'; + case 'countries.BG': return 'Болгария'; + case 'countries.BF': return 'Буркина-Фасо'; + case 'countries.BI': return 'Бурунди'; + case 'countries.KH': return 'Камбоджа'; + case 'countries.CM': return 'Камерун'; + case 'countries.CA': return 'Канада'; + case 'countries.CV': return 'Кабо-Верде'; + case 'countries.BQ': return 'Карибские Нидерланды'; + case 'countries.KY': return 'Каймановы острова'; + case 'countries.CF': return 'Центральноафриканская Республика'; + case 'countries.TD': return 'Чад'; + case 'countries.CL': return 'Чили'; + case 'countries.CN': return 'Китай'; + case 'countries.CX': return 'Остров Рождества'; + case 'countries.CC': return 'Кокосовые острова'; + case 'countries.CO': return 'Колумбия'; + case 'countries.KM': return 'Коморские острова'; + case 'countries.CG': return 'Конго'; + case 'countries.CD': return 'Конго, Демократическая Республика'; + case 'countries.CK': return 'Острова Кука'; + case 'countries.CR': return 'Коста-Рика'; + case 'countries.CI': return 'Берег Слоновой Кости'; + case 'countries.HR': return 'Хорватия'; + case 'countries.CU': return 'Куба'; + case 'countries.CW': return 'Кюрасао'; + case 'countries.CY': return 'Кипр'; + case 'countries.CZ': return 'Чешская Республика'; + case 'countries.DK': return 'Дания'; + case 'countries.DJ': return 'Джибути'; + case 'countries.DM': return 'Доминика'; + case 'countries.DO': return 'Доминиканская Республика'; + case 'countries.EC': return 'Эквадор'; + case 'countries.EG': return 'Египет'; + case 'countries.SV': return 'Сальвадор'; + case 'countries.GB-ENG': return 'Англия'; + case 'countries.GQ': return 'Экваториальная Гвинея'; + case 'countries.ER': return 'Эритрея'; + case 'countries.EE': return 'Эстония'; + case 'countries.ET': return 'Эфиопия'; + case 'countries.EU': return 'Европа'; + case 'countries.FK': return 'Фолклендские (Мальвинские) острова'; + case 'countries.FO': return 'Фарерские острова'; + case 'countries.FJ': return 'Фиджи'; + case 'countries.FI': return 'Финляндия'; + case 'countries.FR': return 'Франция'; + case 'countries.GF': return 'Французская Гвиана'; + case 'countries.PF': return 'Французская Полинезия'; + case 'countries.TF': return 'Южные территории Франции'; + case 'countries.GA': return 'Габон'; + case 'countries.GM': return 'Гамбия'; + case 'countries.GE': return 'Грузия'; + case 'countries.DE': return 'Германия'; + case 'countries.GH': return 'Гана'; + case 'countries.GI': return 'Гибралтар'; + case 'countries.GR': return 'Греция'; + case 'countries.GL': return 'Гренландия'; + case 'countries.GD': return 'Гренада'; + case 'countries.GP': return 'Гваделупа'; + case 'countries.GU': return 'Гуам'; + case 'countries.GT': return 'Гватемала'; + case 'countries.GG': return 'Гернси'; + case 'countries.GN': return 'Гвинея'; + case 'countries.GW': return 'Гвинея-Бисау'; + case 'countries.GY': return 'Гайана'; + case 'countries.HT': return 'Гаити'; + case 'countries.HM': return 'Остров Херд и острова Макдональд'; + case 'countries.VA': return 'Святой Престол (государство-городок Ватикан)'; + case 'countries.HN': return 'Гондурас'; + case 'countries.HK': return 'Гонконг'; + case 'countries.HU': return 'Венгрия'; + case 'countries.IS': return 'Исландия'; + case 'countries.IN': return 'Индия'; + case 'countries.ID': return 'Индонезия'; + case 'countries.IR': return 'Иран, Исламская Республика'; + case 'countries.IQ': return 'Ирак'; + case 'countries.IE': return 'Ирландия'; + case 'countries.IM': return 'Остров Мэн'; + case 'countries.IL': return 'Израиль'; + case 'countries.IT': return 'Италия'; + case 'countries.JM': return 'Ямайка'; + case 'countries.JP': return 'Япония'; + case 'countries.JE': return 'Джерси'; + case 'countries.JO': return 'Иордания'; + case 'countries.KZ': return 'Казахстан'; + case 'countries.KE': return 'Кения'; + case 'countries.KI': return 'Кирибати'; + case 'countries.KP': return 'Корея, Народно-Демократическая Республика'; + case 'countries.KR': return 'Корея, Республика'; + case 'countries.XK': return 'Косово'; + case 'countries.KW': return 'Кувейт'; + case 'countries.KG': return 'Кыргызстан'; + case 'countries.LA': return 'Лаосская Народно-Демократическая Республика'; + case 'countries.LV': return 'Латвия'; + case 'countries.LB': return 'Ливан'; + case 'countries.LS': return 'Лесото'; + case 'countries.LR': return 'Либерия'; + case 'countries.LY': return 'Ливия'; + case 'countries.LI': return 'Лихтенштейн'; + case 'countries.LT': return 'Литва'; + case 'countries.LU': return 'Люксембург'; + case 'countries.MO': return 'Макао'; + case 'countries.MK': return 'Македония, бывшая югославская республика'; + case 'countries.MG': return 'Мадагаскар'; + case 'countries.MW': return 'Малави'; + case 'countries.MY': return 'Малайзия'; + case 'countries.MV': return 'Мальдивы'; + case 'countries.ML': return 'Мали'; + case 'countries.MT': return 'Мальта'; + case 'countries.MH': return 'Маршалловы острова'; + case 'countries.MQ': return 'Мартиника'; + case 'countries.MR': return 'Мавритания'; + case 'countries.MU': return 'Маврикий'; + case 'countries.YT': return 'Майотта'; + case 'countries.MX': return 'Мексика'; + case 'countries.FM': return 'Микронезия, Федеративные Штаты'; + case 'countries.MD': return 'Молдова, Республика'; + case 'countries.MC': return 'Монако'; + case 'countries.ME': return 'Черногория'; + case 'countries.MA': return 'Марокко'; + case 'countries.MN': return 'Монголия'; + case 'countries.MS': return 'Монтсеррат'; + case 'countries.MZ': return 'Мозамбик'; + case 'countries.MM': return 'Мьянма'; + case 'countries.NA': return 'Намибия'; + case 'countries.NR': return 'Науру'; + case 'countries.NP': return 'Непал'; + case 'countries.NL': return 'Нидерланды'; + case 'countries.AN': return 'Нидерландские Антильские острова'; + case 'countries.NC': return 'Новая Каледония'; + case 'countries.NZ': return 'Новая Зеландия'; + case 'countries.NI': return 'Никарагуа'; + case 'countries.NE': return 'Нигер'; + case 'countries.NG': return 'Нигерия'; + case 'countries.NU': return 'Ниуэ'; + case 'countries.NF': return 'Остров Норфолк'; + case 'countries.GB-NIR': return 'Северная Ирландия'; + case 'countries.MP': return 'Северные Марианские острова'; + case 'countries.NO': return 'Норвегия'; + case 'countries.OM': return 'Оман'; + case 'countries.PK': return 'Пакистан'; + case 'countries.PW': return 'Палау'; + case 'countries.PS': return 'Палестина'; + case 'countries.PA': return 'Панама'; + case 'countries.PG': return 'Папуа-Новая Гвинея'; + case 'countries.PY': return 'Парагвай'; + case 'countries.PE': return 'Перу'; + case 'countries.PH': return 'Филиппины'; + case 'countries.PN': return 'Питкэрн'; + case 'countries.PL': return 'Польша'; + case 'countries.PT': return 'Португалия'; + case 'countries.PR': return 'Пуэрто-Рико'; + case 'countries.QA': return 'Катар'; + case 'countries.RE': return 'Реюньон'; + case 'countries.RO': return 'Румыния'; + case 'countries.RU': return 'Российская Федерация'; + case 'countries.RW': return 'Руанда'; + case 'countries.BL': return 'Сен-Бартелеми'; + case 'countries.SH': return 'Острова Святой Елены, Вознесения и Тристан-да-Кунья'; + case 'countries.KN': return 'Сент-Китс и Невис'; + case 'countries.LC': return 'Сент-Люсия'; + case 'countries.MF': return 'Сен-Мартен'; + case 'countries.PM': return 'Сен-Пьер и Микелон'; + case 'countries.VC': return 'Сент-Винсент и Гренадины'; + case 'countries.WS': return 'Самоа'; + case 'countries.SM': return 'Сан-Марино'; + case 'countries.ST': return 'Сан-Томе и Принсипи'; + case 'countries.SA': return 'Саудовская Аравия'; + case 'countries.GB-SCT': return 'Шотландия'; + case 'countries.SN': return 'Сенегал'; + case 'countries.RS': return 'Сербия'; + case 'countries.SC': return 'Сейшельские острова'; + case 'countries.SL': return 'Сьерра-Леоне'; + case 'countries.SG': return 'Сингапур'; + case 'countries.SX': return 'Синт-Мартен (голландская часть)'; + case 'countries.SK': return 'Словакия'; + case 'countries.SI': return 'Словения'; + case 'countries.SB': return 'Соломоновы острова'; + case 'countries.SO': return 'Сомали'; + case 'countries.ZA': return 'ЮАР'; + case 'countries.GS': return 'Южная Георгия и Южные Сандвичевы острова'; + case 'countries.SS': return 'Южный Судан'; + case 'countries.ES': return 'Испания'; + case 'countries.LK': return 'Шри-Ланка'; + case 'countries.SD': return 'Судан'; + case 'countries.SR': return 'Суринам'; + case 'countries.SJ': return 'Острова Шпицберген и Ян-Майен'; + case 'countries.SZ': return 'Свазиленд'; + case 'countries.SE': return 'Швеция'; + case 'countries.CH': return 'Швейцария'; + case 'countries.SY': return 'Сирийская Арабская Республика'; + case 'countries.TW': return 'Тайвань'; + case 'countries.TJ': return 'Таджикистан'; + case 'countries.TZ': return 'Танзания, Объединенная Республика'; + case 'countries.TH': return 'Таиланд'; + case 'countries.TL': return 'Тимор-Лешти'; + case 'countries.TG': return 'Того'; + case 'countries.TK': return 'Токелау'; + case 'countries.TO': return 'Tonga'; + case 'countries.TT': return 'Тринидад и Тобаго'; + case 'countries.TN': return 'Тунис'; + case 'countries.TR': return 'Турция'; + case 'countries.TM': return 'Туркменистан'; + case 'countries.TC': return 'Острова Теркс и Кайкос'; + case 'countries.ТВ': return 'Тувалу'; + case 'countries.UG': return 'Уганда'; + case 'countries.UA': return 'Украина'; + case 'countries.AE': return 'Объединенные Арабские Эмираты'; + case 'countries.GB': return 'Великобритания'; + case 'countries.US': return 'Соединенные Штаты'; + case 'countries.UY': return 'Уругвай'; + case 'countries.UM': return 'Малые периферийные острова США'; + case 'countries.UZ': return 'Узбекистан'; + case 'countries.VU': return 'Вануату'; + case 'countries.VE': return 'Венесуэла, Боливарианская Республика'; + case 'countries.VN': return 'Вьетнам'; + case 'countries.VG': return 'Виргинские острова, Британские'; + case 'countries.VI': return 'Виргинские острова, США'; + case 'countries.GB-WLS': return 'Уэльс'; + case 'countries.WF': return 'Острова Уоллис и Футуна'; + case 'countries.EH': return 'Западная Сахара'; + case 'countries.YE': return 'Йемен'; + case 'countries.ZM': return 'Замбия'; + case 'countries.ZW': return 'Зимбабве'; + case 'countries.XX': return 'Неизвестно'; + case 'countries.XM': return 'Луна'; default: return null; } } diff --git a/lib/services/crud_exceptions.dart b/lib/services/crud_exceptions.dart index 7804022..6588e1d 100644 --- a/lib/services/crud_exceptions.dart +++ b/lib/services/crud_exceptions.dart @@ -11,3 +11,17 @@ class CouldNotUpdatePlayer implements Exception {} class TetrioPlayerAlreadyExist implements Exception {} class TetrioPlayerNotExist implements Exception {} + +class ConnectionIssue implements Exception { + const ConnectionIssue(this.code, this.message); + + final int code; + final String message; + + @override + String toString() { + String result = 'ConnectionIssue'; + return '$result: $code $message'; + } +} + diff --git a/lib/services/tetrio_crud.dart b/lib/services/tetrio_crud.dart index ce70bb0..0be56cf 100644 --- a/lib/services/tetrio_crud.dart +++ b/lib/services/tetrio_crud.dart @@ -360,11 +360,11 @@ class TetrioService extends DB { return player; } else { developer.log("fetchPlayer User dosen't exist", name: "services/tetrio_crud", error: response.body); - throw Exception("User doesn't exist"); + throw TetrioPlayerNotExist(); } } else { developer.log("fetchPlayer Failed to fetch player", name: "services/tetrio_crud", error: response.statusCode); - throw Exception('Failed to fetch player'); + throw ConnectionIssue(response.statusCode, response.reasonPhrase??"No reason"); } } diff --git a/lib/views/main_view.dart b/lib/views/main_view.dart index 0a07e7c..948dbc3 100644 --- a/lib/views/main_view.dart +++ b/lib/views/main_view.dart @@ -199,7 +199,7 @@ class _MainState extends State with SingleTickerProviderStateMixin { ) : _searchTextField(), backgroundColor: Colors.black, - actions: [ + actions: widget.player == null ? [ !_searchBoolean ? IconButton( onPressed: () { @@ -244,7 +244,7 @@ class _MainState extends State with SingleTickerProviderStateMixin { Navigator.pushNamed(context, value); }, ), - ], + ] : null, ), body: SafeArea( child: FutureBuilder>( @@ -320,8 +320,24 @@ class _MainState extends State with SingleTickerProviderStateMixin { ), ); } else if (snapshot.hasError) { + String errText = ""; + switch (snapshot.error.runtimeType){ + case TetrioPlayerNotExist: + errText = t.errors.noSuchUser; + break; + case ConnectionIssue: + var err = snapshot.error as ConnectionIssue; + errText = t.errors.connection(code: err.code, message: err.message); + break; + case SocketException: // cant catch + var err = snapshot.error as SocketException; + errText = t.errors.socketException(host: err.address!.host, message: err.osError!.message); + break; + default: + errText = snapshot.error.toString(); + } return Center( - child: Text('${snapshot.error}', + child: Text(errText, style: const TextStyle( fontFamily: "Eurostile Round Extended", fontSize: 42), @@ -403,11 +419,9 @@ class _NavDrawerState extends State { return NestedScrollView( headerSliverBuilder: (context, value) { return [ - const SliverToBoxAdapter( + SliverToBoxAdapter( child: DrawerHeader( - child: Text( - 'Players you track', - style: TextStyle(color: Colors.white, fontSize: 25), + child: Text(t.playersYouTrack, style: const TextStyle(color: Colors.white, fontSize: 25), ))), SliverToBoxAdapter( child: ListTile( @@ -433,7 +447,8 @@ class _NavDrawerState extends State { ); }, ), - ) + ), + const SliverToBoxAdapter(child: Divider()) ]; }, body: ListView.builder( diff --git a/lib/widgets/user_thingy.dart b/lib/widgets/user_thingy.dart index 4a15259..24fa3cf 100644 --- a/lib/widgets/user_thingy.dart +++ b/lib/widgets/user_thingy.dart @@ -226,7 +226,7 @@ class UserThingy extends StatelessWidget { children: [ Expanded( child: Text( - "${player.country != null ? "${player.country?.toUpperCase()} • " : ""}${t.playerRole[player.role]}${t.playerRoleAccount}${player.registrationTime == null ? t.wasFromBeginning : '${t.created} ${dateFormat.format(player.registrationTime!)}'}${player.botmaster != null ? " ${t.botCreatedBy} ${player.botmaster}" : ""} • ${player.supporterTier == 0 ? t.notSupporter : t.supporter(tier: player.supporterTier)}", + "${player.country != null ? "${t.countries[player.country]} • " : ""}${t.playerRole[player.role]}${t.playerRoleAccount}${player.registrationTime == null ? t.wasFromBeginning : '${t.created} ${dateFormat.format(player.registrationTime!)}'}${player.botmaster != null ? " ${t.botCreatedBy} ${player.botmaster}" : ""} • ${player.supporterTier == 0 ? t.notSupporter : t.supporter(tier: player.supporterTier)}", textAlign: TextAlign.center, style: const TextStyle( fontFamily: "Eurostile Round", diff --git a/res/i18n/strings.i18n.json b/res/i18n/strings.i18n.json index 4875318..1d04599 100644 --- a/res/i18n/strings.i18n.json +++ b/res/i18n/strings.i18n.json @@ -44,6 +44,7 @@ "decaying": "Decaying", "gamesUntilRanked": "${left} games until being ranked", "nerdStats": "Nerd Stats", + "playersYouTrack": "Players you track", "statCellNum":{ "xpLevel": "XP Level", "hoursPlayed": "Hours\nPlayed", @@ -75,7 +76,8 @@ "sysop": "System operator", "admin": "Admin", "mod": "Moderator", - "halfmod": "Community moderator" + "halfmod": "Community moderator", + "anon": "Anonymous" }, "numOfGameActions":{ "pc": "All Clears", @@ -85,5 +87,295 @@ }, "popupActions":{ "ok": "OK" + }, + "errors":{ + "connection": "Some issue with connection: ${code} ${message}", + "noSuchUser": "No such user", + "socketException": "Can't connect with ${host}: ${message}" + }, + "countries(map)": { + "AF": "Afghanistan", + "AX": "\u00c5land Islands", + "AL": "Albania", + "DZ": "Algeria", + "AS": "American Samoa", + "AD": "Andorra", + "AO": "Angola", + "AI": "Anguilla", + "AQ": "Antarctica", + "AG": "Antigua and Barbuda", + "AR": "Argentina", + "AM": "Armenia", + "AW": "Aruba", + "AU": "Australia", + "AT": "Austria", + "AZ": "Azerbaijan", + + "BS": "Bahamas", + "BH": "Bahrain", + "BD": "Bangladesh", + "BB": "Barbados", + "BY": "Belarus", + "BE": "Belgium", + "BZ": "Belize", + "BJ": "Benin", + "BM": "Bermuda", + "BT": "Bhutan", + "BO": "Bolivia, Plurinational State of", + "BA": "Bosnia and Herzegovina", + "BW": "Botswana", + "BV": "Bouvet Island", + "BR": "Brazil", + "IO": "British Indian Ocean Territory", + "BN": "Brunei Darussalam", + "BG": "Bulgaria", + "BF": "Burkina Faso", + "BI": "Burundi", + + "KH": "Cambodia", + "CM": "Cameroon", + "CA": "Canada", + "CV": "Cape Verde", + "BQ": "Caribbean Netherlands", + "KY": "Cayman Islands", + "CF": "Central African Republic", + "TD": "Chad", + "CL": "Chile", + "CN": "China", + "CX": "Christmas Island", + "CC": "Cocos (Keeling) Islands", + "CO": "Colombia", + "KM": "Comoros", + "CG": "Congo", + "CD": "Congo, the Democratic Republic of the", + "CK": "Cook Islands", + "CR": "Costa Rica", + "CI": "C\u00f4te d'Ivoire", + "HR": "Croatia", + "CU": "Cuba", + "CW": "Cura\u00e7ao", + "CY": "Cyprus", + "CZ": "Czech Republic", + + "DK": "Denmark", + "DJ": "Djibouti", + "DM": "Dominica", + "DO": "Dominican Republic", + + "EC": "Ecuador", + "EG": "Egypt", + "SV": "El Salvador", + "GB-ENG": "England", + "GQ": "Equatorial Guinea", + "ER": "Eritrea", + "EE": "Estonia", + "ET": "Ethiopia", + "EU": "Europe", + + "FK": "Falkland Islands (Malvinas)", + "FO": "Faroe Islands", + "FJ": "Fiji", + "FI": "Finland", + "FR": "France", + "GF": "French Guiana", + "PF": "French Polynesia", + "TF": "French Southern Territories", + + "GA": "Gabon", + "GM": "Gambia", + "GE": "Georgia", + "DE": "Germany", + "GH": "Ghana", + "GI": "Gibraltar", + "GR": "Greece", + "GL": "Greenland", + "GD": "Grenada", + "GP": "Guadeloupe", + "GU": "Guam", + "GT": "Guatemala", + "GG": "Guernsey", + "GN": "Guinea", + "GW": "Guinea-Bissau", + "GY": "Guyana", + + "HT": "Haiti", + "HM": "Heard Island and McDonald Islands", + "VA": "Holy See (Vatican City State)", + "HN": "Honduras", + "HK": "Hong Kong", + "HU": "Hungary", + + "IS": "Iceland", + "IN": "India", + "ID": "Indonesia", + "IR": "Iran, Islamic Republic of", + "IQ": "Iraq", + "IE": "Ireland", + "IM": "Isle of Man", + "IL": "Israel", + "IT": "Italy", + + "JM": "Jamaica", + "JP": "Japan", + "JE": "Jersey", + "JO": "Jordan", + + "KZ": "Kazakhstan", + "KE": "Kenya", + "KI": "Kiribati", + "KP": "Korea, Democratic People's Republic of", + "KR": "Korea, Republic of", + "XK": "Kosovo", + "KW": "Kuwait", + "KG": "Kyrgyzstan", + + "LA": "Lao People's Democratic Republic", + "LV": "Latvia", + "LB": "Lebanon", + "LS": "Lesotho", + "LR": "Liberia", + "LY": "Libya", + "LI": "Liechtenstein", + "LT": "Lithuania", + "LU": "Luxembourg", + + "MO": "Macao", + "MK": "Macedonia, the former Yugoslav Republic of", + "MG": "Madagascar", + "MW": "Malawi", + "MY": "Malaysia", + "MV": "Maldives", + "ML": "Mali", + "MT": "Malta", + "MH": "Marshall Islands", + "MQ": "Martinique", + "MR": "Mauritania", + "MU": "Mauritius", + "YT": "Mayotte", + "MX": "Mexico", + "FM": "Micronesia, Federated States of", + "MD": "Moldova, Republic of", + "MC": "Monaco", + "ME": "Montenegro", + "MA": "Morocco", + "MN": "Mongolia", + "MS": "Montserrat", + "MZ": "Mozambique", + "MM": "Myanmar", + + "NA": "Namibia", + "NR": "Nauru", + "NP": "Nepal", + "NL": "Netherlands", + "AN": "Netherlands Antilles", + "NC": "New Caledonia", + "NZ": "New Zealand", + "NI": "Nicaragua", + "NE": "Niger", + "NG": "Nigeria", + "NU": "Niue", + "NF": "Norfolk Island", + "GB-NIR": "Northern Ireland", + "MP": "Northern Mariana Islands", + "NO": "Norway", + + "OM": "Oman", + + "PK": "Pakistan", + "PW": "Palau", + "PS": "Palestine", + "PA": "Panama", + "PG": "Papua New Guinea", + "PY": "Paraguay", + "PE": "Peru", + "PH": "Philippines", + "PN": "Pitcairn", + "PL": "Poland", + "PT": "Portugal", + "PR": "Puerto Rico", + + "QA": "Qatar", + + "RE": "Réunion", + "RO": "Romania", + "RU": "Russian Federation", + "RW": "Rwanda", + + "BL": "Saint Barthélemy", + "SH": "Saint Helena, Ascension and Tristan da Cunha", + "KN": "Saint Kitts and Nevis", + "LC": "Saint Lucia", + "MF": "Saint Martin", + "PM": "Saint Pierre and Miquelon", + "VC": "Saint Vincent and the Grenadines", + "WS": "Samoa", + "SM": "San Marino", + "ST": "Sao Tome and Principe", + "SA": "Saudi Arabia", + "GB-SCT": "Scotland", + "SN": "Senegal", + "RS": "Serbia", + "SC": "Seychelles", + "SL": "Sierra Leone", + "SG": "Singapore", + "SX": "Sint Maarten (Dutch part)", + "SK": "Slovakia", + "SI": "Slovenia", + "SB": "Solomon Islands", + "SO": "Somalia", + "ZA": "South Africa", + "GS": "South Georgia and the South Sandwich Islands", + "SS": "South Sudan", + "ES": "Spain", + "LK": "Sri Lanka", + "SD": "Sudan", + "SR": "Suriname", + "SJ": "Svalbard and Jan Mayen Islands", + "SZ": "Swaziland", + "SE": "Sweden", + "CH": "Switzerland", + "SY": "Syrian Arab Republic", + + "TW": "Taiwan", + "TJ": "Tajikistan", + "TZ": "Tanzania, United Republic of", + "TH": "Thailand", + "TL": "Timor-Leste", + "TG": "Togo", + "TK": "Tokelau", + "TO": "Tonga", + "TT": "Trinidad and Tobago", + "TN": "Tunisia", + "TR": "Turkey", + "TM": "Turkmenistan", + "TC": "Turks and Caicos Islands", + "TV": "Tuvalu", + + "UG": "Uganda", + "UA": "Ukraine", + "AE": "United Arab Emirates", + "GB": "United Kingdom", + "US": "United States", + "UY": "Uruguay", + "UM": "US Minor Outlying Islands", + "UZ": "Uzbekistan", + + "VU": "Vanuatu", + "VE": "Venezuela, Bolivarian Republic of", + "VN": "Vietnam", + "VG": "Virgin Islands, British", + "VI": "Virgin Islands, U.S.", + + "GB-WLS": "Wales", + "WF": "Wallis and Futuna Islands", + "EH": "Western Sahara", + + "YE": "Yemen", + + "ZM": "Zambia", + "ZW": "Zimbabwe", + + "XX": "Unknown", + "XM": "The Moon" } } \ No newline at end of file diff --git a/res/i18n/strings_ru.i18n.json b/res/i18n/strings_ru.i18n.json index 9061626..63103a5 100644 --- a/res/i18n/strings_ru.i18n.json +++ b/res/i18n/strings_ru.i18n.json @@ -44,6 +44,7 @@ "decaying": "Загнивает", "gamesUntilRanked": "${left} матчей до получения рейтинга", "nerdStats": "Для задротов", + "playersYouTrack": "Отслеживаемые игроки", "statCellNum": { "xpLevel": "Уровень\nопыта", "hoursPlayed": "Часов\nСыграно", @@ -75,7 +76,8 @@ "sysop": "Системный оператор", "admin": "Администратор", "mod": "Модератор", - "halfmod": "Модератор сообщества" + "halfmod": "Модератор сообщества", + "anon": "Аноним" }, "numOfGameActions":{ "pc": "Все чисто", @@ -85,5 +87,295 @@ }, "popupActions":{ "ok": "OK" + }, + "errors":{ + "connection": "Проблема с подключением: ${code} ${message}", + "noSuchUser": "Нет такого пользователя", + "socketException": "Невозможно подключиться к ${host}: ${message}" + }, + "countries(map)": { + "AF": "Афганистан", + "AX": "Аландские острова", + "AL": "Албания", + "DZ": "Алжир", + "AS": "Американское Самоа", + "AD": "Андорра", + "AO": "Ангола", + "AI": "Ангилья", + "AQ": "Антарктида", + "AG": "Антигуа и Барбуда", + "AR": "Аргентина", + "AM": "Армения", + "AW": "Аруба", + "AU": "Австралия", + "AT": "Австрия", + "AZ": "Азербайджан", + + "BS": "Багамские острова", + "BH": "Бахрейн", + "BD": "Бангладеш", + "BB": "Барбадос", + "BY": "Беларусь", + "BE": "Бельгия", + "BZ": "Белиз", + "BJ": "Бенин", + "BM": "Бермуды", + "BT": "Бутан", + "BO": "Боливия, Многонациональное Государство", + "BA": "Босния и Герцеговина", + "BW": "Ботсвана", + "BV": "Остров Буве", + "BR": "Бразилия", + "IO": "Британская территория в Индийском океане", + "BN": "Бруней-Даруссалам", + "BG": "Болгария", + "BF": "Буркина-Фасо", + "BI": "Бурунди", + + "KH": "Камбоджа", + "CM": "Камерун", + "CA": "Канада", + "CV": "Кабо-Верде", + "BQ": "Карибские Нидерланды", + "KY": "Каймановы острова", + "CF": "Центральноафриканская Республика", + "TD": "Чад", + "CL": "Чили", + "CN": "Китай", + "CX": "Остров Рождества", + "CC": "Кокосовые острова", + "CO": "Колумбия", + "KM": "Коморские острова", + "CG": "Конго", + "CD": "Конго, Демократическая Республика", + "CK": "Острова Кука", + "CR": "Коста-Рика", + "CI": "Берег Слоновой Кости", + "HR": "Хорватия", + "CU": "Куба", + "CW": "Кюрасао", + "CY": "Кипр", + "CZ": "Чешская Республика", + + "DK": "Дания", + "DJ": "Джибути", + "DM": "Доминика", + "DO": "Доминиканская Республика", + + "EC": "Эквадор", + "EG": "Египет", + "SV": "Сальвадор", + "GB-ENG": "Англия", + "GQ": "Экваториальная Гвинея", + "ER": "Эритрея", + "EE": "Эстония", + "ET": "Эфиопия", + "EU": "Европа", + + "FK": "Фолклендские (Мальвинские) острова", + "FO": "Фарерские острова", + "FJ": "Фиджи", + "FI": "Финляндия", + "FR": "Франция", + "GF": "Французская Гвиана", + "PF": "Французская Полинезия", + "TF": "Южные территории Франции", + + "GA": "Габон", + "GM": "Гамбия", + "GE": "Грузия", + "DE": "Германия", + "GH": "Гана", + "GI": "Гибралтар", + "GR": "Греция", + "GL": "Гренландия", + "GD": "Гренада", + "GP": "Гваделупа", + "GU": "Гуам", + "GT": "Гватемала", + "GG": "Гернси", + "GN": "Гвинея", + "GW": "Гвинея-Бисау", + "GY": "Гайана", + + "HT": "Гаити", + "HM": "Остров Херд и острова Макдональд", + "VA": "Святой Престол (государство-городок Ватикан)", + "HN": "Гондурас", + "HK": "Гонконг", + "HU": "Венгрия", + + "IS": "Исландия", + "IN": "Индия", + "ID": "Индонезия", + "IR": "Иран, Исламская Республика", + "IQ": "Ирак", + "IE": "Ирландия", + "IM": "Остров Мэн", + "IL": "Израиль", + "IT": "Италия", + + "JM": "Ямайка", + "JP": "Япония", + "JE": "Джерси", + "JO": "Иордания", + + "KZ": "Казахстан", + "KE": "Кения", + "KI": "Кирибати", + "KP": "Корея, Народно-Демократическая Республика", + "KR": "Корея, Республика", + "XK": "Косово", + "KW": "Кувейт", + "KG": "Кыргызстан", + + "LA": "Лаосская Народно-Демократическая Республика", + "LV": "Латвия", + "LB": "Ливан", + "LS": "Лесото", + "LR": "Либерия", + "LY": "Ливия", + "LI": "Лихтенштейн", + "LT": "Литва", + "LU": "Люксембург", + + "MO": "Макао", + "MK": "Македония, бывшая югославская республика", + "MG": "Мадагаскар", + "MW": "Малави", + "MY": "Малайзия", + "MV": "Мальдивы", + "ML": "Мали", + "MT": "Мальта", + "MH": "Маршалловы острова", + "MQ": "Мартиника", + "MR": "Мавритания", + "MU": "Маврикий", + "YT": "Майотта", + "MX": "Мексика", + "FM": "Микронезия, Федеративные Штаты", + "MD": "Молдова, Республика", + "MC": "Монако", + "ME": "Черногория", + "MA": "Марокко", + "MN": "Монголия", + "MS": "Монтсеррат", + "MZ": "Мозамбик", + "MM": "Мьянма", + + "NA": "Намибия", + "NR": "Науру", + "NP": "Непал", + "NL": "Нидерланды", + "AN": "Нидерландские Антильские острова", + "NC": "Новая Каледония", + "NZ": "Новая Зеландия", + "NI": "Никарагуа", + "NE": "Нигер", + "NG": "Нигерия", + "NU": "Ниуэ", + "NF": "Остров Норфолк", + "GB-NIR": "Северная Ирландия", + "MP": "Северные Марианские острова", + "NO": "Норвегия", + + "OM": "Оман", + + "PK": "Пакистан", + "PW": "Палау", + "PS": "Палестина", + "PA": "Панама", + "PG": "Папуа-Новая Гвинея", + "PY": "Парагвай", + "PE": "Перу", + "PH": "Филиппины", + "PN": "Питкэрн", + "PL": "Польша", + "PT": "Португалия", + "PR": "Пуэрто-Рико", + + "QA": "Катар", + + "RE": "Реюньон", + "RO": "Румыния", + "RU": "Российская Федерация", + "RW": "Руанда", + + "BL": "Сен-Бартелеми", + "SH": "Острова Святой Елены, Вознесения и Тристан-да-Кунья", + "KN": "Сент-Китс и Невис", + "LC": "Сент-Люсия", + "MF": "Сен-Мартен", + "PM": "Сен-Пьер и Микелон", + "VC": "Сент-Винсент и Гренадины", + "WS": "Самоа", + "SM": "Сан-Марино", + "ST": "Сан-Томе и Принсипи", + "SA": "Саудовская Аравия", + "GB-SCT": "Шотландия", + "SN": "Сенегал", + "RS": "Сербия", + "SC": "Сейшельские острова", + "SL": "Сьерра-Леоне", + "SG": "Сингапур", + "SX": "Синт-Мартен (голландская часть)", + "SK": "Словакия", + "SI": "Словения", + "SB": "Соломоновы острова", + "SO": "Сомали", + "ZA": "ЮАР", + "GS": "Южная Георгия и Южные Сандвичевы острова", + "SS": "Южный Судан", + "ES": "Испания", + "LK": "Шри-Ланка", + "SD": "Судан", + "SR": "Суринам", + "SJ": "Острова Шпицберген и Ян-Майен", + "SZ": "Свазиленд", + "SE": "Швеция", + "CH": "Швейцария", + "SY": "Сирийская Арабская Республика", + + "TW": "Тайвань", + "TJ": "Таджикистан", + "TZ": "Танзания, Объединенная Республика", + "TH": "Таиланд", + "TL": "Тимор-Лешти", + "TG": "Того", + "TK": "Токелау", + "TO": "Tonga", + "TT": "Тринидад и Тобаго", + "TN": "Тунис", + "TR": "Турция", + "TM": "Туркменистан", + "TC": "Острова Теркс и Кайкос", + "ТВ": "Тувалу", + + "UG": "Уганда", + "UA": "Украина", + "AE": "Объединенные Арабские Эмираты", + "GB": "Великобритания", + "US": "Соединенные Штаты", + "UY": "Уругвай", + "UM": "Малые периферийные острова США", + "UZ": "Узбекистан", + + "VU": "Вануату", + "VE": "Венесуэла, Боливарианская Республика", + "VN": "Вьетнам", + "VG": "Виргинские острова, Британские", + "VI": "Виргинские острова, США", + + "GB-WLS": "Уэльс", + "WF": "Острова Уоллис и Футуна", + "EH": "Западная Сахара", + + "YE": "Йемен", + + "ZM": "Замбия", + "ZW": "Зимбабве", + + "XX": "Неизвестно", + "XM": "Луна" } } \ No newline at end of file