获取 flutter 中所有可用语言的列表

llp*_*kio 0 locale dart flutter

我需要 DropdownButton 中的所有可用语言(带有变体,例如“英语(英国)”),我在 flutter SDK 或 dart 内置程序中找不到,所以我结束了这个网站lang_list.dart,并创建了一个包含以下内容的文件

const LANGLIST = ["Afrikaans","Afrikaans (South Africa)","Arabic","Arabic (U.A.E.)","Arabic (Bahrain)","Arabic (Algeria)","Arabic (Egypt)","Arabic (Iraq)","Arabic (Jordan)","Arabic (Kuwait)","Arabic (Lebanon)","Arabic (Libya)","Arabic (Morocco)","Arabic (Oman)","Arabic (Qatar)","Arabic (Saudi Arabia)","Arabic (Syria)","Arabic (Tunisia)","Arabic (Yemen)","Azeri (Latin)","Azeri (Latin) (Azerbaijan)","Azeri (Cyrillic) (Azerbaijan)","Belarusian","Belarusian (Belarus)","Bulgarian","Bulgarian (Bulgaria)","Bosnian (Bosnia and Herzegovina)","Catalan","Catalan (Spain)","Czech","Czech (Czech Republic)","Welsh","Welsh (United Kingdom)","Danish","Danish (Denmark)","German","German (Austria)","German (Switzerland)","German (Germany)","German (Liechtenstein)","German (Luxembourg)","Divehi","Divehi (Maldives)","Greek","Greek (Greece)","English","English (Australia)","English (Belize)","English (Canada)","English (Caribbean)","English (United Kingdom)","English (Ireland)","English (Jamaica)","English (New Zealand)","English (Republic of the Philippines)","English (Trinidad and Tobago)","English (United States)","English (South Africa)","English (Zimbabwe)","Esperanto","Spanish","Spanish (Argentina)","Spanish (Bolivia)","Spanish (Chile)","Spanish (Colombia)","Spanish (Costa Rica)","Spanish (Dominican Republic)","Spanish (Ecuador)","Spanish (Castilian)","Spanish (Spain)","Spanish (Guatemala)","Spanish (Honduras)","Spanish (Mexico)","Spanish (Nicaragua)","Spanish (Panama)","Spanish (Peru)","Spanish (Puerto Rico)","Spanish (Paraguay)","Spanish (El Salvador)","Spanish (Uruguay)","Spanish (Venezuela)","Estonian","Estonian (Estonia)","Basque","Basque (Spain)","Farsi","Farsi (Iran)","Finnish","Finnish (Finland)","Faroese","Faroese (Faroe Islands)","French","French (Belgium)","French (Canada)","French (Switzerland)","French (France)","French (Luxembourg)","French (Principality of Monaco)","Galician","Galician (Spain)","Gujarati","Gujarati (India)","Hebrew","Hebrew (Israel)","Hindi","Hindi (India)","Croatian","Croatian (Bosnia and Herzegovina)","Croatian (Croatia)","Hungarian","Hungarian (Hungary)","Armenian","Armenian (Armenia)","Indonesian","Indonesian (Indonesia)","Icelandic","Icelandic (Iceland)","Italian","Italian (Switzerland)","Italian (Italy)","Japanese","Japanese (Japan)","Georgian","Georgian (Georgia)","Kazakh","Kazakh (Kazakhstan)","Kannada","Kannada (India)","Korean","Korean (Korea)","Konkani","Konkani (India)","Kyrgyz","Kyrgyz (Kyrgyzstan)","Lithuanian","Lithuanian (Lithuania)","Latvian","Latvian (Latvia)","Maori","Maori (New Zealand)","FYRO Macedonian","FYRO Macedonian (Former Yugoslav Republic of Macedonia)","Mongolian","Mongolian (Mongolia)","Marathi","Marathi (India)","Malay","Malay (Brunei Darussalam)","Malay (Malaysia)","Maltese","Maltese (Malta)","Norwegian (Bokm?l)","Norwegian (Bokm?l) (Norway)","Dutch","Dutch (Belgium)","Dutch (Netherlands)","Norwegian (Nynorsk) (Norway)","Northern Sotho","Northern Sotho (South Africa)","Punjabi","Punjabi (India)","Polish","Polish (Poland)","Pashto","Pashto (Afghanistan)","Portuguese","Portuguese (Brazil)","Portuguese (Portugal)","Quechua","Quechua (Bolivia)","Quechua (Ecuador)","Quechua (Peru)","Romanian","Romanian (Romania)","Russian","Russian (Russia)","Sanskrit","Sanskrit (India)","Sami (Northern)","Sami (Northern) (Finland)","Sami (Skolt) (Finland)","Sami (Inari) (Finland)","Sami (Northern) (Norway)","Sami (Lule) (Norway)","Sami (Southern) (Norway)","Sami (Northern) (Sweden)","Sami (Lule) (Sweden)","Sami (Southern) (Sweden)","Slovak","Slovak (Slovakia)","Slovenian","Slovenian (Slovenia)","Albanian","Albanian (Albania)","Serbian (Latin) (Bosnia and Herzegovina)","Serbian (Cyrillic) (Bosnia and Herzegovina)","Serbian (Latin) (Serbia and Montenegro)","Serbian (Cyrillic) (Serbia and Montenegro)","Swedish","Swedish (Finland)","Swedish (Sweden)","Swahili","Swahili (Kenya)","Syriac","Syriac (Syria)","Tamil","Tamil (India)","Telugu","Telugu (India)","Thai","Thai (Thailand)","Tagalog","Tagalog (Philippines)","Tswana","Tswana (South Africa)","Turkish","Turkish (Turkey)","Tatar","Tatar (Russia)","Tsonga","Ukrainian","Ukrainian (Ukraine)","Urdu","Urdu (Islamic Republic of Pakistan)","Uzbek (Latin)","Uzbek (Latin) (Uzbekistan)","Uzbek (Cyrillic) (Uzbekistan)","Vietnamese","Vietnamese (Viet Nam)","Xhosa","Xhosa (South Africa)","Chinese","Chinese (S)","Chinese (Hong Kong)","Chinese (Macau)","Chinese (Singapore)","Chinese (T)","Zulu","Zulu (South Africa)"];
Run Code Online (Sandbox Code Playgroud)

这样我就可以导入其他文件并使用此列表。

这个实现可以吗?flutter 有没有一种方法可以做同样的事情?

Hos*_*ian 10

您可以检索已在 中定义的所有supportedLocales MateralApp

context.findAncestorWidgetOfExactType<MaterialApp>()?.supportedLocales
Run Code Online (Sandbox Code Playgroud)