diff --git a/analysis_options.yaml b/analysis_options.yaml index 5651aa3..e6d04eb 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -22,8 +22,8 @@ linter: # `// ignore_for_file: name_of_lint` syntax on the line or in the file # producing the lint. rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + prefer_single_quotes: true + always_use_package_imports: true analyzer: exclude: diff --git a/lib/models/auth.dart b/lib/models/auth.dart index fef6a0f..1874eb0 100644 --- a/lib/models/auth.dart +++ b/lib/models/auth.dart @@ -18,10 +18,10 @@ import 'package:uni_links/uni_links.dart'; import 'package:universal_io/io.dart'; import 'package:url_launcher/url_launcher.dart'; -import '../utils/utils.dart'; -import 'account.dart'; -import 'gitlab.dart'; -import 'gogs.dart'; +import 'package:git_touch/utils/utils.dart'; +import 'package:git_touch/models/account.dart'; +import 'package:git_touch/models/gitlab.dart'; +import 'package:git_touch/models/gogs.dart'; const clientId = 'df930d7d2e219f26142a'; diff --git a/lib/models/notification.dart b/lib/models/notification.dart index 93988d7..4d92df1 100644 --- a/lib/models/notification.dart +++ b/lib/models/notification.dart @@ -2,7 +2,7 @@ import 'package:flutter/widgets.dart'; import 'package:git_touch/models/github.dart'; import 'package:tuple/tuple.dart'; -import '../utils/utils.dart'; +import 'package:git_touch/utils/utils.dart'; class NotificationGroup { String? fullName; diff --git a/lib/scaffolds/long_list.dart b/lib/scaffolds/long_list.dart index 2fc639e..02cb425 100644 --- a/lib/scaffolds/long_list.dart +++ b/lib/scaffolds/long_list.dart @@ -3,9 +3,9 @@ import 'package:git_touch/models/theme.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:provider/provider.dart'; -import '../widgets/error_reload.dart'; -import '../widgets/link.dart'; -import '../widgets/loading.dart'; +import 'package:git_touch/widgets/error_reload.dart'; +import 'package:git_touch/widgets/link.dart'; +import 'package:git_touch/widgets/loading.dart'; class LongListPayload { T header; diff --git a/lib/screens/bb_commits.dart b/lib/screens/bb_commits.dart index 141ae9a..0a7dc57 100644 --- a/lib/screens/bb_commits.dart +++ b/lib/screens/bb_commits.dart @@ -3,7 +3,6 @@ import 'package:flutter_gen/gen_l10n/S.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/bitbucket.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/commit_item.dart'; import 'package:provider/provider.dart'; diff --git a/lib/screens/bb_explore.dart b/lib/screens/bb_explore.dart index fc466f3..627dc06 100644 --- a/lib/screens/bb_explore.dart +++ b/lib/screens/bb_explore.dart @@ -3,7 +3,6 @@ import 'package:flutter_gen/gen_l10n/S.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/bitbucket.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/repository_item.dart'; import 'package:provider/provider.dart'; diff --git a/lib/screens/bb_issue.dart b/lib/screens/bb_issue.dart index 6d78e35..18ef44f 100644 --- a/lib/screens/bb_issue.dart +++ b/lib/screens/bb_issue.dart @@ -23,7 +23,7 @@ class BbIssueScreen extends StatelessWidget { @override Widget build(BuildContext context) { return RefreshStatefulScaffold>>( - title: Text("Issue: #$number"), + title: Text('Issue: #$number'), fetch: () async { final auth = context.read(); final res = await Future.wait([ diff --git a/lib/screens/bb_issues.dart b/lib/screens/bb_issues.dart index 651fa36..4dab352 100644 --- a/lib/screens/bb_issues.dart +++ b/lib/screens/bb_issues.dart @@ -3,7 +3,6 @@ import 'package:flutter_gen/gen_l10n/S.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/bitbucket.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/action_entry.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/issue_item.dart'; diff --git a/lib/screens/bb_object.dart b/lib/screens/bb_object.dart index 2e40b9b..f727120 100644 --- a/lib/screens/bb_object.dart +++ b/lib/screens/bb_object.dart @@ -4,7 +4,6 @@ import 'package:flutter/widgets.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/bitbucket.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/action_entry.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/blob_view.dart'; diff --git a/lib/screens/bb_pulls.dart b/lib/screens/bb_pulls.dart index f266ab9..293d51c 100644 --- a/lib/screens/bb_pulls.dart +++ b/lib/screens/bb_pulls.dart @@ -3,7 +3,6 @@ import 'package:flutter_gen/gen_l10n/S.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/bitbucket.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/issue_item.dart'; import 'package:provider/provider.dart'; diff --git a/lib/screens/bb_teams.dart b/lib/screens/bb_teams.dart index 0a718aa..0f5976b 100644 --- a/lib/screens/bb_teams.dart +++ b/lib/screens/bb_teams.dart @@ -3,7 +3,6 @@ import 'package:flutter_gen/gen_l10n/S.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/bitbucket.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/user_item.dart'; import 'package:provider/provider.dart'; diff --git a/lib/screens/ge_commit.dart b/lib/screens/ge_commit.dart index 26bcf1d..fbace05 100644 --- a/lib/screens/ge_commit.dart +++ b/lib/screens/ge_commit.dart @@ -20,7 +20,7 @@ class GeCommitScreen extends StatelessWidget { Widget build(BuildContext context) { final theme = context.watch(); return RefreshStatefulScaffold( - title: Text("Commit: ${sha.substring(0, 7)}"), + title: Text('Commit: ${sha.substring(0, 7)}'), fetch: () async { final auth = context.read(); final items = await auth.fetchGitee('/repos/$owner/$name/commits/$sha'); diff --git a/lib/screens/ge_commits.dart b/lib/screens/ge_commits.dart index f186d80..cd5ad74 100644 --- a/lib/screens/ge_commits.dart +++ b/lib/screens/ge_commits.dart @@ -3,7 +3,6 @@ import 'package:flutter_gen/gen_l10n/S.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/gitee.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/commit_item.dart'; import 'package:provider/provider.dart'; diff --git a/lib/screens/ge_contributors.dart b/lib/screens/ge_contributors.dart index 20bc304..7e6252d 100644 --- a/lib/screens/ge_contributors.dart +++ b/lib/screens/ge_contributors.dart @@ -5,7 +5,6 @@ import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/gitee.dart'; import 'package:git_touch/models/theme.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:provider/provider.dart'; @@ -66,7 +65,7 @@ class GeContributorsScreen extends StatelessWidget { color: theme.palette.secondaryText, fontSize: 16, ), - child: Text("Contributions: ${v.contributions}"), + child: Text('Contributions: ${v.contributions}'), ), ], ), diff --git a/lib/screens/ge_files.dart b/lib/screens/ge_files.dart index 18bdb92..8e32cf4 100644 --- a/lib/screens/ge_files.dart +++ b/lib/screens/ge_files.dart @@ -4,7 +4,6 @@ import 'package:flutter_gen/gen_l10n/S.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/gitee.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/action_button.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/files_item.dart'; diff --git a/lib/screens/ge_issue.dart b/lib/screens/ge_issue.dart index 6554308..b797eab 100644 --- a/lib/screens/ge_issue.dart +++ b/lib/screens/ge_issue.dart @@ -55,7 +55,7 @@ class GeIssueScreen extends StatelessWidget { @override Widget build(BuildContext context) { return RefreshStatefulScaffold>>( - title: Text("Issue: #$number"), + title: Text('Issue: #$number'), fetch: () async { final auth = context.read(); final items = await Future.wait([ diff --git a/lib/screens/ge_issues.dart b/lib/screens/ge_issues.dart index 21ad7a6..efdf95e 100644 --- a/lib/screens/ge_issues.dart +++ b/lib/screens/ge_issues.dart @@ -2,7 +2,6 @@ import 'package:flutter/widgets.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/gitee.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/action_entry.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/hex_color_tag.dart'; diff --git a/lib/screens/ge_pull.dart b/lib/screens/ge_pull.dart index 242f846..d2f287b 100644 --- a/lib/screens/ge_pull.dart +++ b/lib/screens/ge_pull.dart @@ -57,7 +57,7 @@ class GePullScreen extends StatelessWidget { return RefreshStatefulScaffold< Tuple4, List, List>>( - title: Text("Pull Request: #$number"), + title: Text('Pull Request: #$number'), fetch: () async { final auth = context.read(); final items = await Future.wait([ diff --git a/lib/screens/ge_pulls.dart b/lib/screens/ge_pulls.dart index 44701b5..b564243 100644 --- a/lib/screens/ge_pulls.dart +++ b/lib/screens/ge_pulls.dart @@ -2,7 +2,6 @@ import 'package:flutter/widgets.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/gitee.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/hex_color_tag.dart'; import 'package:git_touch/widgets/issue_item.dart'; diff --git a/lib/screens/ge_repos.dart b/lib/screens/ge_repos.dart index 3355e3e..8048e5e 100644 --- a/lib/screens/ge_repos.dart +++ b/lib/screens/ge_repos.dart @@ -2,7 +2,6 @@ import 'package:flutter/widgets.dart'; import 'package:git_touch/models/auth.dart'; import 'package:git_touch/models/gitee.dart'; import 'package:git_touch/scaffolds/list_stateful.dart'; -import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/repository_item.dart'; import 'package:provider/provider.dart'; diff --git a/lib/screens/ge_users.dart b/lib/screens/ge_users.dart index 04e9220..ef5fa5c 100644 --- a/lib/screens/ge_users.dart +++ b/lib/screens/ge_users.dart @@ -15,7 +15,7 @@ class GeUsersScreen extends StatelessWidget { title = 'Followers'; const GeUsersScreen.following(String login) : api = '/users/$login/following', - title = "Following"; + title = 'Following'; // GeUsersScreen.member(String login) // : api = '/orgs/$login/members', // title = "Members"; diff --git a/lib/screens/gh_compare.dart b/lib/screens/gh_compare.dart index 683ad9e..75cc5c8 100644 --- a/lib/screens/gh_compare.dart +++ b/lib/screens/gh_compare.dart @@ -43,7 +43,7 @@ class GhComparisonScreen extends StatelessWidget { additions: vs.additions, deletions: vs.deletions, status: vs.status, - patch: vs.patch ?? "No text to be shown here", + patch: vs.patch ?? 'No text to be shown here', )) .toList(), ); diff --git a/lib/screens/gh_issue.dart b/lib/screens/gh_issue.dart index 4b64bb7..01ce9d0 100644 --- a/lib/screens/gh_issue.dart +++ b/lib/screens/gh_issue.dart @@ -14,8 +14,8 @@ import 'package:github/github.dart' as github; import 'package:primer/primer.dart'; import 'package:provider/provider.dart'; -import '../scaffolds/long_list.dart'; -import '../widgets/comment_item.dart'; +import 'package:git_touch/scaffolds/long_list.dart'; +import 'package:git_touch/widgets/comment_item.dart'; class GhIssueScreen extends StatelessWidget { final String owner; diff --git a/lib/screens/gh_notification.dart b/lib/screens/gh_notification.dart index 1be8b2c..6567949 100644 --- a/lib/screens/gh_notification.dart +++ b/lib/screens/gh_notification.dart @@ -10,10 +10,10 @@ import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:github/github.dart'; import 'package:provider/provider.dart'; -import '../utils/utils.dart'; -import '../widgets/empty.dart'; -import '../widgets/list_group.dart'; -import '../widgets/notification_item.dart'; +import 'package:git_touch/utils/utils.dart'; +import 'package:git_touch/widgets/empty.dart'; +import 'package:git_touch/widgets/list_group.dart'; +import 'package:git_touch/widgets/notification_item.dart'; class GhNotificationScreen extends StatefulWidget { @override diff --git a/lib/screens/gh_releases.dart b/lib/screens/gh_releases.dart index 0444ea0..d855baf 100644 --- a/lib/screens/gh_releases.dart +++ b/lib/screens/gh_releases.dart @@ -19,7 +19,7 @@ class GhReleasesScreen extends StatelessWidget { Widget build(BuildContext context) { return ListStatefulScaffold( - title: const AppBarTitle("Releases"), + title: const AppBarTitle('Releases'), fetch: (page) async { final req = GReleasesReq((b) => b ..vars.owner = owner diff --git a/lib/screens/go_users.dart b/lib/screens/go_users.dart index a3f23f6..2011845 100644 --- a/lib/screens/go_users.dart +++ b/lib/screens/go_users.dart @@ -15,7 +15,7 @@ class GoUsersScreen extends StatelessWidget { title = 'Followers'; const GoUsersScreen.following(String login) : api = '/users/$login/following', - title = "Following"; + title = 'Following'; @override Widget build(BuildContext context) { diff --git a/lib/screens/gt_issue.dart b/lib/screens/gt_issue.dart index 546f751..d464e36 100644 --- a/lib/screens/gt_issue.dart +++ b/lib/screens/gt_issue.dart @@ -55,7 +55,7 @@ class GtIssueScreen extends StatelessWidget { @override Widget build(BuildContext context) { return RefreshStatefulScaffold>>( - title: Text("Issue: #$number"), + title: Text('Issue: #$number'), fetch: () async { final auth = context.read(); final items = await Future.wait([ diff --git a/lib/screens/gt_users.dart b/lib/screens/gt_users.dart index 3dc072b..658844d 100644 --- a/lib/screens/gt_users.dart +++ b/lib/screens/gt_users.dart @@ -16,10 +16,10 @@ class GtUsersScreen extends StatelessWidget { title = 'Followers'; const GtUsersScreen.following(String login) : api = '/users/$login/following', - title = "Following"; + title = 'Following'; const GtUsersScreen.member(String login) : api = '/orgs/$login/members', - title = "Members"; + title = 'Members'; const GtUsersScreen.stargazers(String owner, String repo) : api = '/repos/$owner/$repo/stargazers', title = 'Stargazers'; diff --git a/lib/screens/login.dart b/lib/screens/login.dart index 00843f0..410474e 100644 --- a/lib/screens/login.dart +++ b/lib/screens/login.dart @@ -11,9 +11,9 @@ import 'package:git_touch/widgets/app_bar_title.dart'; import 'package:git_touch/widgets/text_field.dart'; import 'package:provider/provider.dart'; -import '../widgets/avatar.dart'; -import '../widgets/link.dart'; -import '../widgets/loading.dart'; +import 'package:git_touch/widgets/avatar.dart'; +import 'package:git_touch/widgets/link.dart'; +import 'package:git_touch/widgets/loading.dart'; class LoginScreen extends StatefulWidget { @override diff --git a/lib/utils/date_time_serializer.dart b/lib/utils/date_time_serializer.dart index 1a8ef51..a69da4c 100644 --- a/lib/utils/date_time_serializer.dart +++ b/lib/utils/date_time_serializer.dart @@ -24,5 +24,5 @@ class DateTimeSerializer implements PrimitiveSerializer { Iterable get types => [DateTime]; @override - String get wireName => "DateTime"; + String get wireName => 'DateTime'; } diff --git a/lib/utils/locale.dart b/lib/utils/locale.dart index faf3dc8..197760f 100644 --- a/lib/utils/locale.dart +++ b/lib/utils/locale.dart @@ -2,597 +2,597 @@ /// /// script: `replace(/(.*?);(.*?);.*/g, '"$1":"$2",')` const localeNameMap = { - "aa": "Afar", - "ab": "Abkhazian", - "ace": "Acehnese", - "ach": "Acholi", - "ada": "Adangme", - "ady": "Adyghe", - "ae": "Avestan", - "af": "Afrikaans", - "afh": "Afrihili", - "aii": "Assyrian Neo-Aramaic", - "ain": "Ainu (Japan)", - "ak": "Akan", - "akk": "Akkadian", - "ale": "Aleut", - "alt": "Altai (Southern)", - "am": "Amharic", - "an": "Aragonese", - "ang": "English (Old)", - "anp": "Angika", - "ar": "Arabic", - "ar_BH": "Arabic (Bahrain)", - "ar_DZ": "Arabic (Algeria)", - "ar_EG": "Arabic (Egypt)", - "ar_KW": "Arabic (Kuwait)", - "ar_LY": "Arabic (Libya)", - "ar_MA": "Arabic (Morocco)", - "ar_SA": "Arabic (Saudi Arabia)", - "ar_XB": "Arabic (XB pseudolocale)", - "ar_YE": "Arabic (Yemen)", - "arc": "Aramaic", - "arn": "Mapudungun", - "arp": "Arapaho", - "ars": "Arabic (Najdi)", - "arw": "Arawak", - "as": "Assamese", - "asa": "Asu", - "ast": "Asturian", - "av": "Avaric", - "awa": "Awadhi", - "ay": "Aymará", - "ayc": "Aymara (Southern)", - "az": "Azerbaijani", - "azb": "Azerbaijani, South", - "ba": "Bashkir", - "bal": "Baluchi", - "ban": "Balinese", - "bar": "Bavarian", - "bas": "Basa (Cameroon)", - "be": "Belarusian", - "be_Latn": "Belarusian (latin)", - "bej": "Beja", - "bem": "Bemba", - "ber": "Berber", - "bez": "Bena", - "bg": "Bulgarian", - "bh": "Bihari", - "bho": "Bhojpuri", - "bi": "Bislama", - "bik": "Bikol", - "bin": "Bini", - "bla": "Siksika", - "bm": "Bambara", - "bn": "Bengali", - "bn_BD": "Bengali (Bangladesh)", - "bn_IN": "Bengali (India)", - "bnt": "Bantu (Other)", - "bo": "Tibetan", - "br": "Breton", - "bra": "Braj", - "brx": "Bodo", - "bs": "Bosnian", - "bs_Cyrl": "Bosnian (cyrillic)", - "bs_Latn": "Bosnian (latin)", - "bua": "Buriat", - "bug": "Buginese", - "byn": "Bilen", - "ca": "Catalan", - "ca@valencia": "Valencian", - "cad": "Caddo", - "cak": "Kaqchikel", - "car": "Galibi Carib", - "ce": "Chechen", - "ceb": "Cebuano", - "cgg": "Chiga", - "ch": "Chamorro", - "chb": "Chibcha", - "chg": "Chagatai", - "chk": "Chuukese", - "chm": "Mari", - "chn": "Chinook jargon", - "cho": "Choctaw", - "chp": "Chipewyan", - "chr": "Cherokee", - "chy": "Cheyenne", - "ckb": "Kurdish (Central)", - "ckb_IQ": "Kurdish (Central, Iraq)", - "ckb_IR": "Kurdish (Central, Iran)", - "co": "Corsican", - "cop": "Coptic", - "cpe": "Creoles and pidgins (English based)", - "cpf": "Creoles and pidgins (French-based)", - "cpp": "Creoles and pidgins (Portuguese-based)", - "cr": "Cree", - "crh": "Crimean Tatar", - "crp": "Creoles and pidgins", - "cs": "Czech", - "csb": "Kashubian", - "cu": "Slavonic (Old Church)", - "cv": "Chuvash", - "cy": "Welsh", - "da": "Danish", - "dak": "Dakota", - "dar": "Dargwa", - "de": "German", - "de@formal": "German (formal)", - "de@informal": "German (informal)", - "de_1901": "German (old spelling)", - "de_AT": "German (Austria)", - "de_CH": "German (Switzerland)", - "de_LU": "German (Luxembourg)", - "del": "Delaware", - "den": "Slave (Athapascan)", - "dgo": "Dogri", - "dgr": "Dogrib", - "din": "Dinka", - "doi": "Dogri", - "dsb": "Lower Sorbian", - "dua": "Duala", - "dum": "Dutch (Middle)", - "dv": "Dhivehi", - "dyu": "Dyula", - "dz": "Dzongkha", - "ee": "Ewe", - "efi": "Efik", - "egy": "Egyptian (Ancient)", - "eka": "Ekajuk", - "el": "Greek", - "elx": "Elamite", - "en": "English", - "en_AU": "English (Australia)", - "en_CA": "English (Canada)", - "en_GB": "English (United Kingdom)", - "en_IE": "English (Ireland)", - "en_IN": "English (India)", - "en_NZ": "English (New Zealand)", - "en_PH": "English (Philippines)", - "en_US": "English (United States)", - "en_XA": "English (XA pseudolocale)", - "en_ZA": "English (South Africa)", - "en_devel": "English (Developer)", - "enm": "English (Middle)", - "eo": "Esperanto", - "es": "Spanish", - "es_419": "Spanish (Latin America)", - "es_AR": "Spanish (Argentina)", - "es_BO": "Spanish (Bolivia)", - "es_CL": "Spanish (Chile)", - "es_CO": "Spanish (Colombia)", - "es_CR": "Spanish (Costa Rica)", - "es_DO": "Spanish (Dominican Republic)", - "es_EC": "Spanish (Ecuador)", - "es_MX": "Spanish (Mexico)", - "es_NI": "Spanish (Nicaragua)", - "es_PA": "Spanish (Panama)", - "es_PE": "Spanish (Peru)", - "es_PR": "Spanish (Puerto Rico)", - "es_SV": "Spanish (El Salvador)", - "es_US": "Spanish (American)", - "es_UY": "Spanish (Uruguay)", - "es_VE": "Spanish (Venezuela)", - "et": "Estonian", - "eu": "Basque", - "ewo": "Ewondo", - "ext": "Extremaduran", - "fa": "Persian", - "fa_AF": "Dari", - "fan": "Fang (Equatorial Guinea)", - "fat": "Fanti", - "ff": "Fulah", - "fi": "Finnish", - "fil": "Filipino", - "fj": "Fijian", - "fo": "Faroese", - "fon": "Fon", - "fr": "French", - "fr@formal": "French (formal)", - "fr@informal": "French (informal)", - "fr_AG": "French (Antigua and Barbuda)", - "fr_BE": "French (Belgium)", - "fr_CA": "French (Canada)", - "fr_CH": "French (Switzerland)", - "fr_LU": "French (Luxembourg)", - "fr_SN": "French (Senegal)", - "frm": "French (Middle)", - "fro": "French (Old)", - "frp": "Franco-Provençal", - "frr": "Frisian (Northern)", - "frs": "Frisian (Eastern)", - "fur": "Friulian", - "fy": "Frisian", - "ga": "Irish", - "gaa": "Ga", - "gay": "Gayo", - "gba": "Gbaya (Central African Republic)", - "gbm": "Garhwali", - "gd": "Gaelic", - "gez": "Ge'ez", - "gil": "Gilbertese", - "gl": "Galician", - "glk": "Gilaki", - "gmh": "High German (Middle)", - "gn": "Guarani", - "goh": "High German (Old)", - "gon": "Gondi", - "gor": "Gorontalo", - "got": "Gothic", - "grb": "Grebo", - "grc": "Greek (Ancient)", - "gsw": "Alemannic", - "gu": "Gujarati", - "gu_IN": "Gujarati (India)", - "gug": "Guaraní (Paraguayan)", - "gun": "Guaraní (Mbyá)", - "guw": "Gun", - "gv": "Manx", - "gwi": "Gwichʼin", - "ha": "Hausa", - "hai": "Haida", - "haw": "Hawaiian", - "he": "Hebrew", - "he_IL": "Hebrew (Israel)", - "hi": "Hindi", - "hi_Latn": "Hindi (latin)", - "hil": "Hiligaynon", - "hit": "Hittite", - "hmn": "Hmong", - "hne": "Chhattisgarhi", - "ho": "Hiri Motu", - "hr": "Croatian", - "hrx": "Hunsrik", - "hsb": "Upper Sorbian", - "ht": "Haitian", - "hu": "Hungarian", - "hup": "Hupa", - "hus": "Huastec", - "hy": "Armenian", - "hz": "Herero", - "ia": "Interlingua", - "iba": "Iban", - "id": "Indonesian", - "ie": "Occidental", - "ig": "Igbo", - "ii": "Nuosu", - "ik": "Inupiaq", - "ilo": "Iloko", - "inh": "Ingush", - "io": "Ido", - "is": "Icelandic", - "it": "Italian", - "it_CH": "Italian (Switzerland)", - "iu": "Inuktitut", - "ja": "Japanese", - "ja_KS": "Japanese (Kansai)", - "jam": "Jamaican Patois", - "jbo": "Lojban", - "jgo": "Ngomba", - "jmc": "Machame", - "jpr": "Judeo-Persian", - "jrb": "Judeo-Arabic", - "jv": "Javanese", - "ka": "Georgian", - "kaa": "Kara-Kalpak", - "kab": "Kabyle", - "kac": "Kachin", - "kaj": "Jju", - "kam": "Kamba (Kenya)", - "kaw": "Kawi", - "kbd": "Kabardian", - "kcg": "Tyap", - "kde": "Makonde", - "kea": "Kabuverdianu", - "kg": "Kongo", - "kha": "Khasi", - "kho": "Khotanese", - "ki": "Gikuyu", - "kj": "Kwanyama", - "kk": "Kazakh", - "kk_Latn": "Kazakh (latin)", - "kkj": "Kako", - "kl": "Greenlandic", - "km": "Khmer (Central)", - "kmb": "Kimbundu", - "kmr": "Kurdish (Northern)", - "kmr_Latn": "Kurdish (Northern, latin)", - "kn": "Kannada", - "ko": "Korean", - "kok": "Konkani", - "kos": "Kosraean", - "kpe": "Kpelle", - "kr": "Kanuri", - "krc": "Karachay-Balkar", - "krl": "Karelian", - "kru": "Kurukh", - "ks": "Kashmiri", - "ksb": "Shambala", - "ksh": "Colognian", - "ku": "Kurdish", - "kum": "Kumyk", - "kut": "Kutenai", - "kv": "Komi", - "kw": "Cornish", - "ky": "Kyrgyz", - "la": "Latin", - "lad": "Ladino", - "lag": "Langi", - "lah": "Lahnda", - "lam": "Lamba", - "lb": "Luxembourgish", - "lez": "Lezghian", - "lg": "Luganda", - "li": "Limburgish", - "lki": "Laki", - "lkt": "Lakota", - "ln": "Lingala", - "lo": "Lao", - "lol": "Mongo", - "loz": "Lozi", - "lt": "Lithuanian", - "ltg": "Latgalian", - "lu": "Luba-Katanga", - "lua": "Luba-Lulua", - "lui": "Luiseno", - "lun": "Lunda", - "luo": "Luo (Kenya and Tanzania)", - "lus": "Lushai", - "lv": "Latvian", - "mad": "Madurese", - "mag": "Magahi", - "mai": "Maithili", - "mak": "Makasar", - "man": "Mandingo", - "mas": "Masai", - "mdf": "Moksha", - "mdr": "Mandar", - "me": "Montenegrin", - "men": "Mende (Sierra Leone)", - "mfe": "Morisyen", - "mg": "Malagasy", - "mga": "Irish (Middle)", - "mgo": "Metaʼ", - "mh": "Marshallese", - "mhr": "Meadow Mari", - "mi": "Maori", - "mia": "Miami", - "mic": "Mi'kmaq", - "min": "Minangkabau", - "mjw": "Karbi", - "mk": "Macedonian", - "ml": "Malayalam", - "mn": "Mongolian", - "mnc": "Manchu", - "mni": "Manipuri", - "mnk": "Mandinka", - "moh": "Mohawk", - "mos": "Mossi", - "mr": "Marathi", - "ms": "Malay", - "ms_Arab": "Malay (Jawi)", - "mt": "Maltese", - "mus": "Creek", - "mwl": "Mirandese", - "mwr": "Marwari", - "my": "Burmese", - "myv": "Erzya", - "na": "Nauru", - "nah": "Nahuatl", - "nan": "Chinese (Min Nan)", - "nap": "Neapolitan", - "naq": "Nama", - "nb_NO": "Norwegian Bokmål", - "nd": "Ndebele (Northern)", - "nds": "German (Low)", - "ne": "Nepali", - "new": "Newari", - "ng": "Ndonga", - "nia": "Nias", - "niu": "Niuean", - "nl": "Dutch", - "nl_BE": "Dutch (Belgium)", - "nn": "Norwegian Nynorsk", - "nnh": "Ngiemboon", - "nog": "Nogai", - "non": "Norse (Old)", - "nqo": "N’Ko", - "nr": "Ndebele (Southern)", - "nso": "Pedi", - "nv": "Navaho", - "nwc": "Newari (Classical)", - "ny": "Nyanja", - "nym": "Nyamwezi", - "nyn": "Nyankole", - "nyo": "Nyoro", - "nzi": "Nzima", - "oc": "Occitan", - "oj": "Ojibwe", - "om": "Oromo", - "or": "Odia", - "os": "Ossetian", - "osa": "Osage", - "ota": "Turkish (Ottoman)", - "otk": "Kokturk", - "pa": "Punjabi", - "pag": "Pangasinan", - "pal": "Pahlavi", - "pam": "Pampanga", - "pap": "Papiamento", - "pau": "Palauan", - "peo": "Persian (Old)", - "phn": "Phoenician", - "pi": "Pali", - "pl": "Polish", - "pms": "Piemontese", - "pon": "Pohnpeian", - "pr": "Pirate", - "prg": "Prussian", - "pro": "Provençal (Old)", - "ps": "Pashto", - "pt": "Portuguese", - "pt_AO": "Portuguese (Angola)", - "pt_BR": "Portuguese (Brazil)", - "pt_PT": "Portuguese (Portugal)", - "qu": "Quechua", - "quc": "K'iche'", - "raj": "Rajasthani", - "rap": "Rapanui", - "rar": "Rarotongan", - "rcf": "Réunion Creole", - "rm": "Romansh", - "rn": "Rundi", - "ro": "Romanian", - "ro_MD": "Moldavian", - "rof": "Rombo", - "rom": "Romany", - "ru": "Russian", - "ru_UA": "Russian (Ukraine)", - "rue": "Rusyn", - "rup": "Macedo-Romanian", - "rw": "Kinyarwanda", - "rwk": "Rwa", - "sa": "Sanskrit", - "sad": "Sandawe", - "sah": "Yakut", - "sai": "South American Indian (Other)", - "sam": "Samaritan Aramaic", - "saq": "Samburu", - "sas": "Sasak", - "sat": "Santali", - "sc": "Sardinian", - "scn": "Sicilian", - "sco": "Scots", - "sd": "Sindhi", - "sdh": "Kurdish (Southern)", - "se": "Sami (Northern)", - "seh": "Sena", - "sel": "Selkup", - "ses": "Koyraboro Senni", - "sg": "Sango", - "sga": "Irish (Old)", - "sgn": "Sign Languages", - "shi": "Tachelhit", - "shn": "Shan", - "si": "Sinhala", - "sid": "Sidamo", - "sk": "Slovak", - "sl": "Slovenian", - "sm": "Samoan", - "sma": "Sami (Southern)", - "smi": "Sami", - "smj": "Sami (Lule)", - "sml": "Sama (Central)", - "smn": "Sami (Inari)", - "sms": "Sami (Skolt)", - "sn": "Shona", - "snk": "Soninke", - "so": "Somali", - "sog": "Sogdian", - "son": "Songhai", - "sq": "Albanian", - "sr": "Serbian", - "sr@ijekavian": "Serbian (Ijekavian)", - "sr@ijekavian_Latn": "Serbian (Ijekavian, latin)", - "sr_Cyrl": "Serbian (cyrillic)", - "sr_Latn": "Serbian (latin)", - "srn": "Sranan Tongo", - "srr": "Serer", - "ss": "Swati", - "ssy": "Saho", - "st": "Sotho (Southern)", - "su": "Sundanese", - "suk": "Sukuma", - "sus": "Susu", - "sux": "Sumerian", - "sv": "Swedish", - "sw": "Swahili", - "sw_CD": "Swahili (Congo)", - "sw_TZ": "Swahili (Tanzania)", - "syc": "Syriac (Classical)", - "syr": "Syriac", - "szl": "Silesian", - "ta": "Tamil", - "ta_LK": "Tamil (Sri Lanka)", - "te": "Telugu", - "tem": "Timne", - "teo": "Teso", - "ter": "Tereno", - "tet": "Tetum", - "tg": "Tajik", - "th": "Thai", - "ti": "Tigrinya", - "tig": "Tigre", - "tiv": "Tiv", - "tk": "Turkmen", - "tkl": "Tokelau", - "tl": "Tagalog", - "tlh-qaak": "Klingon (pIqaD)", - "tlh": "Klingon", - "tli": "Tlingit", - "tmh": "Tamashek", - "tn": "Tswana", - "to": "Tongan", - "tog": "Tonga (Nyasa)", - "tpi": "Tok Pisin", - "tr": "Turkish", - "trv": "Taroko", - "ts": "Tsonga", - "tsi": "Tsimshian", - "tsj": "Tshangla", - "tt": "Tatar", - "tt@iqtelif": "Tatar (IQTElif)", - "tum": "Tumbuka", - "tvl": "Tuvalu", - "tw": "Twi", - "ty": "Tahitian", - "tyv": "Tuvinian", - "tzj": "Tz'utujil", - "tzm": "Tamazight (Central Atlas)", - "udm": "Udmurt", - "ug": "Uyghur", - "uga": "Ugaritic", - "uk": "Ukrainian", - "umb": "Umbundu", - "und": "Undetermined", - "ur": "Urdu", - "ur_IN": "Urdu (India)", - "ur_PK": "Urdu (Pakistan)", - "uz": "Uzbek", - "uz_Latn": "Uzbek (latin)", - "vai": "Vai", - "ve": "Venda", - "vec": "Venetian", - "vi": "Vietnamese", - "vls": "Flemish (West)", - "vo": "Volapük", - "vot": "Votic", - "vun": "Vunjo", - "wa": "Walloon", - "wae": "German (Walser)", - "wal": "Wolaytta", - "war": "Waray (Philippines)", - "was": "Washo", - "wen": "Sorbian", - "wo": "Wolof", - "xal": "Kalmyk", - "xh": "Xhosa", - "xog": "Soga", - "yao": "Yao", - "yap": "Yapese", - "yi": "Yiddish", - "yo": "Yoruba", - "yue": "Yue", - "za": "Zhuang", - "zap": "Zapotec", - "zbl": "Blissymbols", - "zen": "Zenaga", - "zgh": "Tamazight (Standard Moroccan)", - "zh_Hans": "Chinese (Simplified)", - "zh_Hans_SG": "Chinese (Simplified, Singapore)", - "zh_Hant": "Chinese (Traditional)", - "zh_Hant_HK": "Chinese (Traditional, Hong Kong)", - "zh_Latn": "Chinese (Pinyin)", - "zu": "Zulu", - "zun": "Zuni", - "zza": "Zaza", + 'aa': 'Afar', + 'ab': 'Abkhazian', + 'ace': 'Acehnese', + 'ach': 'Acholi', + 'ada': 'Adangme', + 'ady': 'Adyghe', + 'ae': 'Avestan', + 'af': 'Afrikaans', + 'afh': 'Afrihili', + 'aii': 'Assyrian Neo-Aramaic', + 'ain': 'Ainu (Japan)', + 'ak': 'Akan', + 'akk': 'Akkadian', + 'ale': 'Aleut', + 'alt': 'Altai (Southern)', + 'am': 'Amharic', + 'an': 'Aragonese', + 'ang': 'English (Old)', + 'anp': 'Angika', + 'ar': 'Arabic', + 'ar_BH': 'Arabic (Bahrain)', + 'ar_DZ': 'Arabic (Algeria)', + 'ar_EG': 'Arabic (Egypt)', + 'ar_KW': 'Arabic (Kuwait)', + 'ar_LY': 'Arabic (Libya)', + 'ar_MA': 'Arabic (Morocco)', + 'ar_SA': 'Arabic (Saudi Arabia)', + 'ar_XB': 'Arabic (XB pseudolocale)', + 'ar_YE': 'Arabic (Yemen)', + 'arc': 'Aramaic', + 'arn': 'Mapudungun', + 'arp': 'Arapaho', + 'ars': 'Arabic (Najdi)', + 'arw': 'Arawak', + 'as': 'Assamese', + 'asa': 'Asu', + 'ast': 'Asturian', + 'av': 'Avaric', + 'awa': 'Awadhi', + 'ay': 'Aymará', + 'ayc': 'Aymara (Southern)', + 'az': 'Azerbaijani', + 'azb': 'Azerbaijani, South', + 'ba': 'Bashkir', + 'bal': 'Baluchi', + 'ban': 'Balinese', + 'bar': 'Bavarian', + 'bas': 'Basa (Cameroon)', + 'be': 'Belarusian', + 'be_Latn': 'Belarusian (latin)', + 'bej': 'Beja', + 'bem': 'Bemba', + 'ber': 'Berber', + 'bez': 'Bena', + 'bg': 'Bulgarian', + 'bh': 'Bihari', + 'bho': 'Bhojpuri', + 'bi': 'Bislama', + 'bik': 'Bikol', + 'bin': 'Bini', + 'bla': 'Siksika', + 'bm': 'Bambara', + 'bn': 'Bengali', + 'bn_BD': 'Bengali (Bangladesh)', + 'bn_IN': 'Bengali (India)', + 'bnt': 'Bantu (Other)', + 'bo': 'Tibetan', + 'br': 'Breton', + 'bra': 'Braj', + 'brx': 'Bodo', + 'bs': 'Bosnian', + 'bs_Cyrl': 'Bosnian (cyrillic)', + 'bs_Latn': 'Bosnian (latin)', + 'bua': 'Buriat', + 'bug': 'Buginese', + 'byn': 'Bilen', + 'ca': 'Catalan', + 'ca@valencia': 'Valencian', + 'cad': 'Caddo', + 'cak': 'Kaqchikel', + 'car': 'Galibi Carib', + 'ce': 'Chechen', + 'ceb': 'Cebuano', + 'cgg': 'Chiga', + 'ch': 'Chamorro', + 'chb': 'Chibcha', + 'chg': 'Chagatai', + 'chk': 'Chuukese', + 'chm': 'Mari', + 'chn': 'Chinook jargon', + 'cho': 'Choctaw', + 'chp': 'Chipewyan', + 'chr': 'Cherokee', + 'chy': 'Cheyenne', + 'ckb': 'Kurdish (Central)', + 'ckb_IQ': 'Kurdish (Central, Iraq)', + 'ckb_IR': 'Kurdish (Central, Iran)', + 'co': 'Corsican', + 'cop': 'Coptic', + 'cpe': 'Creoles and pidgins (English based)', + 'cpf': 'Creoles and pidgins (French-based)', + 'cpp': 'Creoles and pidgins (Portuguese-based)', + 'cr': 'Cree', + 'crh': 'Crimean Tatar', + 'crp': 'Creoles and pidgins', + 'cs': 'Czech', + 'csb': 'Kashubian', + 'cu': 'Slavonic (Old Church)', + 'cv': 'Chuvash', + 'cy': 'Welsh', + 'da': 'Danish', + 'dak': 'Dakota', + 'dar': 'Dargwa', + 'de': 'German', + 'de@formal': 'German (formal)', + 'de@informal': 'German (informal)', + 'de_1901': 'German (old spelling)', + 'de_AT': 'German (Austria)', + 'de_CH': 'German (Switzerland)', + 'de_LU': 'German (Luxembourg)', + 'del': 'Delaware', + 'den': 'Slave (Athapascan)', + 'dgo': 'Dogri', + 'dgr': 'Dogrib', + 'din': 'Dinka', + 'doi': 'Dogri', + 'dsb': 'Lower Sorbian', + 'dua': 'Duala', + 'dum': 'Dutch (Middle)', + 'dv': 'Dhivehi', + 'dyu': 'Dyula', + 'dz': 'Dzongkha', + 'ee': 'Ewe', + 'efi': 'Efik', + 'egy': 'Egyptian (Ancient)', + 'eka': 'Ekajuk', + 'el': 'Greek', + 'elx': 'Elamite', + 'en': 'English', + 'en_AU': 'English (Australia)', + 'en_CA': 'English (Canada)', + 'en_GB': 'English (United Kingdom)', + 'en_IE': 'English (Ireland)', + 'en_IN': 'English (India)', + 'en_NZ': 'English (New Zealand)', + 'en_PH': 'English (Philippines)', + 'en_US': 'English (United States)', + 'en_XA': 'English (XA pseudolocale)', + 'en_ZA': 'English (South Africa)', + 'en_devel': 'English (Developer)', + 'enm': 'English (Middle)', + 'eo': 'Esperanto', + 'es': 'Spanish', + 'es_419': 'Spanish (Latin America)', + 'es_AR': 'Spanish (Argentina)', + 'es_BO': 'Spanish (Bolivia)', + 'es_CL': 'Spanish (Chile)', + 'es_CO': 'Spanish (Colombia)', + 'es_CR': 'Spanish (Costa Rica)', + 'es_DO': 'Spanish (Dominican Republic)', + 'es_EC': 'Spanish (Ecuador)', + 'es_MX': 'Spanish (Mexico)', + 'es_NI': 'Spanish (Nicaragua)', + 'es_PA': 'Spanish (Panama)', + 'es_PE': 'Spanish (Peru)', + 'es_PR': 'Spanish (Puerto Rico)', + 'es_SV': 'Spanish (El Salvador)', + 'es_US': 'Spanish (American)', + 'es_UY': 'Spanish (Uruguay)', + 'es_VE': 'Spanish (Venezuela)', + 'et': 'Estonian', + 'eu': 'Basque', + 'ewo': 'Ewondo', + 'ext': 'Extremaduran', + 'fa': 'Persian', + 'fa_AF': 'Dari', + 'fan': 'Fang (Equatorial Guinea)', + 'fat': 'Fanti', + 'ff': 'Fulah', + 'fi': 'Finnish', + 'fil': 'Filipino', + 'fj': 'Fijian', + 'fo': 'Faroese', + 'fon': 'Fon', + 'fr': 'French', + 'fr@formal': 'French (formal)', + 'fr@informal': 'French (informal)', + 'fr_AG': 'French (Antigua and Barbuda)', + 'fr_BE': 'French (Belgium)', + 'fr_CA': 'French (Canada)', + 'fr_CH': 'French (Switzerland)', + 'fr_LU': 'French (Luxembourg)', + 'fr_SN': 'French (Senegal)', + 'frm': 'French (Middle)', + 'fro': 'French (Old)', + 'frp': 'Franco-Provençal', + 'frr': 'Frisian (Northern)', + 'frs': 'Frisian (Eastern)', + 'fur': 'Friulian', + 'fy': 'Frisian', + 'ga': 'Irish', + 'gaa': 'Ga', + 'gay': 'Gayo', + 'gba': 'Gbaya (Central African Republic)', + 'gbm': 'Garhwali', + 'gd': 'Gaelic', + 'gez': "Ge'ez", + 'gil': 'Gilbertese', + 'gl': 'Galician', + 'glk': 'Gilaki', + 'gmh': 'High German (Middle)', + 'gn': 'Guarani', + 'goh': 'High German (Old)', + 'gon': 'Gondi', + 'gor': 'Gorontalo', + 'got': 'Gothic', + 'grb': 'Grebo', + 'grc': 'Greek (Ancient)', + 'gsw': 'Alemannic', + 'gu': 'Gujarati', + 'gu_IN': 'Gujarati (India)', + 'gug': 'Guaraní (Paraguayan)', + 'gun': 'Guaraní (Mbyá)', + 'guw': 'Gun', + 'gv': 'Manx', + 'gwi': 'Gwichʼin', + 'ha': 'Hausa', + 'hai': 'Haida', + 'haw': 'Hawaiian', + 'he': 'Hebrew', + 'he_IL': 'Hebrew (Israel)', + 'hi': 'Hindi', + 'hi_Latn': 'Hindi (latin)', + 'hil': 'Hiligaynon', + 'hit': 'Hittite', + 'hmn': 'Hmong', + 'hne': 'Chhattisgarhi', + 'ho': 'Hiri Motu', + 'hr': 'Croatian', + 'hrx': 'Hunsrik', + 'hsb': 'Upper Sorbian', + 'ht': 'Haitian', + 'hu': 'Hungarian', + 'hup': 'Hupa', + 'hus': 'Huastec', + 'hy': 'Armenian', + 'hz': 'Herero', + 'ia': 'Interlingua', + 'iba': 'Iban', + 'id': 'Indonesian', + 'ie': 'Occidental', + 'ig': 'Igbo', + 'ii': 'Nuosu', + 'ik': 'Inupiaq', + 'ilo': 'Iloko', + 'inh': 'Ingush', + 'io': 'Ido', + 'is': 'Icelandic', + 'it': 'Italian', + 'it_CH': 'Italian (Switzerland)', + 'iu': 'Inuktitut', + 'ja': 'Japanese', + 'ja_KS': 'Japanese (Kansai)', + 'jam': 'Jamaican Patois', + 'jbo': 'Lojban', + 'jgo': 'Ngomba', + 'jmc': 'Machame', + 'jpr': 'Judeo-Persian', + 'jrb': 'Judeo-Arabic', + 'jv': 'Javanese', + 'ka': 'Georgian', + 'kaa': 'Kara-Kalpak', + 'kab': 'Kabyle', + 'kac': 'Kachin', + 'kaj': 'Jju', + 'kam': 'Kamba (Kenya)', + 'kaw': 'Kawi', + 'kbd': 'Kabardian', + 'kcg': 'Tyap', + 'kde': 'Makonde', + 'kea': 'Kabuverdianu', + 'kg': 'Kongo', + 'kha': 'Khasi', + 'kho': 'Khotanese', + 'ki': 'Gikuyu', + 'kj': 'Kwanyama', + 'kk': 'Kazakh', + 'kk_Latn': 'Kazakh (latin)', + 'kkj': 'Kako', + 'kl': 'Greenlandic', + 'km': 'Khmer (Central)', + 'kmb': 'Kimbundu', + 'kmr': 'Kurdish (Northern)', + 'kmr_Latn': 'Kurdish (Northern, latin)', + 'kn': 'Kannada', + 'ko': 'Korean', + 'kok': 'Konkani', + 'kos': 'Kosraean', + 'kpe': 'Kpelle', + 'kr': 'Kanuri', + 'krc': 'Karachay-Balkar', + 'krl': 'Karelian', + 'kru': 'Kurukh', + 'ks': 'Kashmiri', + 'ksb': 'Shambala', + 'ksh': 'Colognian', + 'ku': 'Kurdish', + 'kum': 'Kumyk', + 'kut': 'Kutenai', + 'kv': 'Komi', + 'kw': 'Cornish', + 'ky': 'Kyrgyz', + 'la': 'Latin', + 'lad': 'Ladino', + 'lag': 'Langi', + 'lah': 'Lahnda', + 'lam': 'Lamba', + 'lb': 'Luxembourgish', + 'lez': 'Lezghian', + 'lg': 'Luganda', + 'li': 'Limburgish', + 'lki': 'Laki', + 'lkt': 'Lakota', + 'ln': 'Lingala', + 'lo': 'Lao', + 'lol': 'Mongo', + 'loz': 'Lozi', + 'lt': 'Lithuanian', + 'ltg': 'Latgalian', + 'lu': 'Luba-Katanga', + 'lua': 'Luba-Lulua', + 'lui': 'Luiseno', + 'lun': 'Lunda', + 'luo': 'Luo (Kenya and Tanzania)', + 'lus': 'Lushai', + 'lv': 'Latvian', + 'mad': 'Madurese', + 'mag': 'Magahi', + 'mai': 'Maithili', + 'mak': 'Makasar', + 'man': 'Mandingo', + 'mas': 'Masai', + 'mdf': 'Moksha', + 'mdr': 'Mandar', + 'me': 'Montenegrin', + 'men': 'Mende (Sierra Leone)', + 'mfe': 'Morisyen', + 'mg': 'Malagasy', + 'mga': 'Irish (Middle)', + 'mgo': 'Metaʼ', + 'mh': 'Marshallese', + 'mhr': 'Meadow Mari', + 'mi': 'Maori', + 'mia': 'Miami', + 'mic': "Mi'kmaq", + 'min': 'Minangkabau', + 'mjw': 'Karbi', + 'mk': 'Macedonian', + 'ml': 'Malayalam', + 'mn': 'Mongolian', + 'mnc': 'Manchu', + 'mni': 'Manipuri', + 'mnk': 'Mandinka', + 'moh': 'Mohawk', + 'mos': 'Mossi', + 'mr': 'Marathi', + 'ms': 'Malay', + 'ms_Arab': 'Malay (Jawi)', + 'mt': 'Maltese', + 'mus': 'Creek', + 'mwl': 'Mirandese', + 'mwr': 'Marwari', + 'my': 'Burmese', + 'myv': 'Erzya', + 'na': 'Nauru', + 'nah': 'Nahuatl', + 'nan': 'Chinese (Min Nan)', + 'nap': 'Neapolitan', + 'naq': 'Nama', + 'nb_NO': 'Norwegian Bokmål', + 'nd': 'Ndebele (Northern)', + 'nds': 'German (Low)', + 'ne': 'Nepali', + 'new': 'Newari', + 'ng': 'Ndonga', + 'nia': 'Nias', + 'niu': 'Niuean', + 'nl': 'Dutch', + 'nl_BE': 'Dutch (Belgium)', + 'nn': 'Norwegian Nynorsk', + 'nnh': 'Ngiemboon', + 'nog': 'Nogai', + 'non': 'Norse (Old)', + 'nqo': 'N’Ko', + 'nr': 'Ndebele (Southern)', + 'nso': 'Pedi', + 'nv': 'Navaho', + 'nwc': 'Newari (Classical)', + 'ny': 'Nyanja', + 'nym': 'Nyamwezi', + 'nyn': 'Nyankole', + 'nyo': 'Nyoro', + 'nzi': 'Nzima', + 'oc': 'Occitan', + 'oj': 'Ojibwe', + 'om': 'Oromo', + 'or': 'Odia', + 'os': 'Ossetian', + 'osa': 'Osage', + 'ota': 'Turkish (Ottoman)', + 'otk': 'Kokturk', + 'pa': 'Punjabi', + 'pag': 'Pangasinan', + 'pal': 'Pahlavi', + 'pam': 'Pampanga', + 'pap': 'Papiamento', + 'pau': 'Palauan', + 'peo': 'Persian (Old)', + 'phn': 'Phoenician', + 'pi': 'Pali', + 'pl': 'Polish', + 'pms': 'Piemontese', + 'pon': 'Pohnpeian', + 'pr': 'Pirate', + 'prg': 'Prussian', + 'pro': 'Provençal (Old)', + 'ps': 'Pashto', + 'pt': 'Portuguese', + 'pt_AO': 'Portuguese (Angola)', + 'pt_BR': 'Portuguese (Brazil)', + 'pt_PT': 'Portuguese (Portugal)', + 'qu': 'Quechua', + 'quc': "K'iche'", + 'raj': 'Rajasthani', + 'rap': 'Rapanui', + 'rar': 'Rarotongan', + 'rcf': 'Réunion Creole', + 'rm': 'Romansh', + 'rn': 'Rundi', + 'ro': 'Romanian', + 'ro_MD': 'Moldavian', + 'rof': 'Rombo', + 'rom': 'Romany', + 'ru': 'Russian', + 'ru_UA': 'Russian (Ukraine)', + 'rue': 'Rusyn', + 'rup': 'Macedo-Romanian', + 'rw': 'Kinyarwanda', + 'rwk': 'Rwa', + 'sa': 'Sanskrit', + 'sad': 'Sandawe', + 'sah': 'Yakut', + 'sai': 'South American Indian (Other)', + 'sam': 'Samaritan Aramaic', + 'saq': 'Samburu', + 'sas': 'Sasak', + 'sat': 'Santali', + 'sc': 'Sardinian', + 'scn': 'Sicilian', + 'sco': 'Scots', + 'sd': 'Sindhi', + 'sdh': 'Kurdish (Southern)', + 'se': 'Sami (Northern)', + 'seh': 'Sena', + 'sel': 'Selkup', + 'ses': 'Koyraboro Senni', + 'sg': 'Sango', + 'sga': 'Irish (Old)', + 'sgn': 'Sign Languages', + 'shi': 'Tachelhit', + 'shn': 'Shan', + 'si': 'Sinhala', + 'sid': 'Sidamo', + 'sk': 'Slovak', + 'sl': 'Slovenian', + 'sm': 'Samoan', + 'sma': 'Sami (Southern)', + 'smi': 'Sami', + 'smj': 'Sami (Lule)', + 'sml': 'Sama (Central)', + 'smn': 'Sami (Inari)', + 'sms': 'Sami (Skolt)', + 'sn': 'Shona', + 'snk': 'Soninke', + 'so': 'Somali', + 'sog': 'Sogdian', + 'son': 'Songhai', + 'sq': 'Albanian', + 'sr': 'Serbian', + 'sr@ijekavian': 'Serbian (Ijekavian)', + 'sr@ijekavian_Latn': 'Serbian (Ijekavian, latin)', + 'sr_Cyrl': 'Serbian (cyrillic)', + 'sr_Latn': 'Serbian (latin)', + 'srn': 'Sranan Tongo', + 'srr': 'Serer', + 'ss': 'Swati', + 'ssy': 'Saho', + 'st': 'Sotho (Southern)', + 'su': 'Sundanese', + 'suk': 'Sukuma', + 'sus': 'Susu', + 'sux': 'Sumerian', + 'sv': 'Swedish', + 'sw': 'Swahili', + 'sw_CD': 'Swahili (Congo)', + 'sw_TZ': 'Swahili (Tanzania)', + 'syc': 'Syriac (Classical)', + 'syr': 'Syriac', + 'szl': 'Silesian', + 'ta': 'Tamil', + 'ta_LK': 'Tamil (Sri Lanka)', + 'te': 'Telugu', + 'tem': 'Timne', + 'teo': 'Teso', + 'ter': 'Tereno', + 'tet': 'Tetum', + 'tg': 'Tajik', + 'th': 'Thai', + 'ti': 'Tigrinya', + 'tig': 'Tigre', + 'tiv': 'Tiv', + 'tk': 'Turkmen', + 'tkl': 'Tokelau', + 'tl': 'Tagalog', + 'tlh-qaak': 'Klingon (pIqaD)', + 'tlh': 'Klingon', + 'tli': 'Tlingit', + 'tmh': 'Tamashek', + 'tn': 'Tswana', + 'to': 'Tongan', + 'tog': 'Tonga (Nyasa)', + 'tpi': 'Tok Pisin', + 'tr': 'Turkish', + 'trv': 'Taroko', + 'ts': 'Tsonga', + 'tsi': 'Tsimshian', + 'tsj': 'Tshangla', + 'tt': 'Tatar', + 'tt@iqtelif': 'Tatar (IQTElif)', + 'tum': 'Tumbuka', + 'tvl': 'Tuvalu', + 'tw': 'Twi', + 'ty': 'Tahitian', + 'tyv': 'Tuvinian', + 'tzj': "Tz'utujil", + 'tzm': 'Tamazight (Central Atlas)', + 'udm': 'Udmurt', + 'ug': 'Uyghur', + 'uga': 'Ugaritic', + 'uk': 'Ukrainian', + 'umb': 'Umbundu', + 'und': 'Undetermined', + 'ur': 'Urdu', + 'ur_IN': 'Urdu (India)', + 'ur_PK': 'Urdu (Pakistan)', + 'uz': 'Uzbek', + 'uz_Latn': 'Uzbek (latin)', + 'vai': 'Vai', + 've': 'Venda', + 'vec': 'Venetian', + 'vi': 'Vietnamese', + 'vls': 'Flemish (West)', + 'vo': 'Volapük', + 'vot': 'Votic', + 'vun': 'Vunjo', + 'wa': 'Walloon', + 'wae': 'German (Walser)', + 'wal': 'Wolaytta', + 'war': 'Waray (Philippines)', + 'was': 'Washo', + 'wen': 'Sorbian', + 'wo': 'Wolof', + 'xal': 'Kalmyk', + 'xh': 'Xhosa', + 'xog': 'Soga', + 'yao': 'Yao', + 'yap': 'Yapese', + 'yi': 'Yiddish', + 'yo': 'Yoruba', + 'yue': 'Yue', + 'za': 'Zhuang', + 'zap': 'Zapotec', + 'zbl': 'Blissymbols', + 'zen': 'Zenaga', + 'zgh': 'Tamazight (Standard Moroccan)', + 'zh_Hans': 'Chinese (Simplified)', + 'zh_Hans_SG': 'Chinese (Simplified, Singapore)', + 'zh_Hant': 'Chinese (Traditional)', + 'zh_Hant_HK': 'Chinese (Traditional, Hong Kong)', + 'zh_Latn': 'Chinese (Pinyin)', + 'zu': 'Zulu', + 'zun': 'Zuni', + 'zza': 'Zaza', }; diff --git a/lib/widgets/blob_view.dart b/lib/widgets/blob_view.dart index d108333..46856c2 100644 --- a/lib/widgets/blob_view.dart +++ b/lib/widgets/blob_view.dart @@ -1,7 +1,6 @@ import 'dart:convert'; import 'package:flutter/cupertino.dart'; -import 'package:flutter/widgets.dart'; import 'package:flutter_highlight/flutter_highlight.dart'; import 'package:flutter_highlight/theme_map.dart'; import 'package:git_touch/models/code.dart'; diff --git a/lib/widgets/comment_item.dart b/lib/widgets/comment_item.dart index 1dbf233..237360c 100644 --- a/lib/widgets/comment_item.dart +++ b/lib/widgets/comment_item.dart @@ -9,10 +9,10 @@ import 'package:primer/primer.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; -import '../utils/utils.dart'; -import 'avatar.dart'; -import 'link.dart'; -import 'user_name.dart'; +import 'package:git_touch/utils/utils.dart'; +import 'package:git_touch/widgets/avatar.dart'; +import 'package:git_touch/widgets/link.dart'; +import 'package:git_touch/widgets/user_name.dart'; class EmojiPayload { GReactionContent key; diff --git a/lib/widgets/contributor_item.dart b/lib/widgets/contributor_item.dart index 4d4f302..626a931 100644 --- a/lib/widgets/contributor_item.dart +++ b/lib/widgets/contributor_item.dart @@ -53,7 +53,7 @@ class ContributorItem extends StatelessWidget { color: theme.palette.secondaryText, fontSize: 16, ), - child: Text("Commits: $commits"), + child: Text('Commits: $commits'), ), ], ), diff --git a/lib/widgets/entry_item.dart b/lib/widgets/entry_item.dart index a7974d8..3b62fa1 100644 --- a/lib/widgets/entry_item.dart +++ b/lib/widgets/entry_item.dart @@ -2,7 +2,7 @@ import 'package:flutter/cupertino.dart'; import 'package:git_touch/models/theme.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:provider/provider.dart'; -import 'link.dart'; +import 'package:git_touch/widgets/link.dart'; class EntryItem extends StatelessWidget { final int? count; diff --git a/lib/widgets/event_item.dart b/lib/widgets/event_item.dart index 4b3537f..483f5ad 100644 --- a/lib/widgets/event_item.dart +++ b/lib/widgets/event_item.dart @@ -8,9 +8,9 @@ import 'package:git_touch/widgets/issue_icon.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; -import '../utils/utils.dart'; -import '../widgets/link.dart'; -import 'avatar.dart'; +import 'package:git_touch/utils/utils.dart'; +import 'package:git_touch/widgets/link.dart'; +import 'package:git_touch/widgets/avatar.dart'; class EventItem extends StatelessWidget { final GithubEvent e; @@ -309,7 +309,7 @@ class EventItem extends StatelessWidget { ]); case 'CheckSuiteEvent': // Needs checks permission - String conclusion = ""; + String conclusion = ''; switch (e.payload!.checkSuite!.conclusion) { case 'success': case 'failure': @@ -388,22 +388,22 @@ class EventItem extends StatelessWidget { ], ); case 'GollumEvent': - String pageNamesCreated = ""; - String pageNamesEdited = ""; + String pageNamesCreated = ''; + String pageNamesEdited = ''; for (GithubPagesItem page in e.payload!.pages!) { - if (page.action == "edited") { - pageNamesEdited += ", ${page.pageName!}"; + if (page.action == 'edited') { + pageNamesEdited += ', ${page.pageName!}'; } else { - pageNamesCreated += ", ${page.pageName!}"; + pageNamesCreated += ', ${page.pageName!}'; } } if (pageNamesCreated.isNotEmpty) { pageNamesCreated = - " ${AppLocalizations.of(context)!.createdPages(pageNamesCreated)}"; + ' ${AppLocalizations.of(context)!.createdPages(pageNamesCreated)}'; } if (pageNamesEdited.isNotEmpty) { pageNamesEdited = - " ${AppLocalizations.of(context)!.editedPages(pageNamesEdited)}"; + ' ${AppLocalizations.of(context)!.editedPages(pageNamesEdited)}'; } return _buildItem( @@ -427,22 +427,22 @@ class EventItem extends StatelessWidget { e.payload!.installation!.repositoriesAdded!; List repositoriesRemoved = e.payload!.installation!.repositoriesRemoved!; - String addedRepos = ""; - String removedRepos = ""; + String addedRepos = ''; + String removedRepos = ''; for (GithubNotificationItemRepo repo in repositoriesAdded) { - addedRepos += "${repo.fullName!}, "; + addedRepos += '${repo.fullName!}, '; } for (GithubNotificationItemRepo repo in repositoriesRemoved) { - removedRepos += "${repo.fullName!}, "; + removedRepos += '${repo.fullName!}, '; } - String finalListOfRepos = ""; - if (addedRepos != "") { + String finalListOfRepos = ''; + if (addedRepos != '') { finalListOfRepos += - "${AppLocalizations.of(context)!.wereAddedTo(addedRepos, e.payload!.installation!.id.toString())}\n "; + '${AppLocalizations.of(context)!.wereAddedTo(addedRepos, e.payload!.installation!.id.toString())}\n '; } - if (removedRepos != "") { + if (removedRepos != '') { finalListOfRepos += - "$removedRepos ${AppLocalizations.of(context)!.wereRemovedFrom(removedRepos, e.payload!.installation!.id.toString())}"; + '$removedRepos ${AppLocalizations.of(context)!.wereRemovedFrom(removedRepos, e.payload!.installation!.id.toString())}'; } return _buildItem( context: context, @@ -490,23 +490,23 @@ class EventItem extends StatelessWidget { final action = e.payload!.action; var messageToDisplay; switch (action) { - case "purchased": + case 'purchased': messageToDisplay = AppLocalizations.of(context)!.purchasedMarketplacePlan; break; - case "cancelled": + case 'cancelled': messageToDisplay = AppLocalizations.of(context)!.cancelledMarketplacePlan; break; - case "pending_change": + case 'pending_change': messageToDisplay = AppLocalizations.of(context)!.pendingMarketplacePlan; break; - case "pending_change_cancelled": + case 'pending_change_cancelled': messageToDisplay = AppLocalizations.of(context)!.pendingChangeCancelled; break; - case "changed": + case 'changed': messageToDisplay = AppLocalizations.of(context)!.changedMarketplacePlan; break; diff --git a/lib/widgets/html_view.dart b/lib/widgets/html_view.dart index 2428bfc..275bdb1 100644 --- a/lib/widgets/html_view.dart +++ b/lib/widgets/html_view.dart @@ -23,7 +23,7 @@ class _HtmlViewState extends State { updateHeight() async { final value = await controller - .runJavascriptReturningResult("document.documentElement.scrollHeight;"); + .runJavascriptReturningResult('document.documentElement.scrollHeight;'); // print(value); if (mounted) { setState(() { diff --git a/lib/widgets/issue_item.dart b/lib/widgets/issue_item.dart index 5388a24..f697e06 100644 --- a/lib/widgets/issue_item.dart +++ b/lib/widgets/issue_item.dart @@ -4,8 +4,8 @@ import 'package:git_touch/widgets/avatar.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; -import '../utils/utils.dart'; -import '../widgets/link.dart'; +import 'package:git_touch/utils/utils.dart'; +import 'package:git_touch/widgets/link.dart'; const issueGqlChunk = ''' url diff --git a/lib/widgets/list_group.dart b/lib/widgets/list_group.dart index 08dbc24..c3e977b 100644 --- a/lib/widgets/list_group.dart +++ b/lib/widgets/list_group.dart @@ -1,8 +1,8 @@ import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; -import '../models/theme.dart'; -import '../widgets/empty.dart'; +import 'package:git_touch/models/theme.dart'; +import 'package:git_touch/widgets/empty.dart'; class ListGroup extends StatelessWidget { final Widget title; diff --git a/lib/widgets/notification_item.dart b/lib/widgets/notification_item.dart index 842732f..bff1de0 100644 --- a/lib/widgets/notification_item.dart +++ b/lib/widgets/notification_item.dart @@ -6,7 +6,7 @@ import 'package:git_touch/widgets/issue_icon.dart'; import 'package:git_touch/widgets/link.dart'; import 'package:provider/provider.dart'; -import '../models/theme.dart'; +import 'package:git_touch/models/theme.dart'; class NotificationItem extends StatefulWidget { final GithubNotificationItem payload; diff --git a/lib/widgets/release_item.dart b/lib/widgets/release_item.dart index f9e76d5..609ffb1 100644 --- a/lib/widgets/release_item.dart +++ b/lib/widgets/release_item.dart @@ -62,7 +62,7 @@ class ReleaseItem extends StatelessWidget { fontSize: 16, ), child: Text( - "${login!} ${AppLocalizations.of(context)!.released} ${timeago.format(publishedAt!)}"), + '${login!} ${AppLocalizations.of(context)!.released} ${timeago.format(publishedAt!)}'), ), ], ), diff --git a/lib/widgets/timeline_item.dart b/lib/widgets/timeline_item.dart index 249f686..bd4e39d 100644 --- a/lib/widgets/timeline_item.dart +++ b/lib/widgets/timeline_item.dart @@ -8,8 +8,8 @@ import 'package:git_touch/models/theme.dart'; import 'package:git_touch/widgets/hex_color_tag.dart'; import 'package:provider/provider.dart'; -import '../utils/utils.dart'; -import 'comment_item.dart'; +import 'package:git_touch/utils/utils.dart'; +import 'package:git_touch/widgets/comment_item.dart'; TextSpan createUserSpan(BuildContext context, String? login) { return createLinkSpan(context, login, '/github/$login');