亲爱的Stackoverflow社区,
我想在我的应用程序中获得语言环境的价值。我正在使用共享首选项,并且想在另一页中使用区域设置语言值,但是我找不到调用该值的方法:
这是我的主页main.dart,带有:
class TranslatePreferences implements ITranslatePreferences
{
static const String _selectedLocaleKey = 'selected_locale';
@override
Future<Locale> getPreferredLocale() async
{
final preferences = await SharedPreferences.getInstance();
if(!preferences.containsKey(_selectedLocaleKey)) return null;
var locale = preferences.getString(_selectedLocaleKey);
return localeFromString(locale);
}
@override
Future savePreferredLocale(Locale locale) async
{
final preferences = await SharedPreferences.getInstance();
await preferences.setString(_selectedLocaleKey, localeToString(locale));
}
}
如果我很好理解,我必须在其他页面中使用getPreferredLocale(),但是即使导入了main.dart,我也可以在lang.dart页面中获取getPreferredLocale():
class lang{
string lang=TranslatePreferences.getPreferredLocale();
print(lang);
}
感谢您的帮助。
在TranslatePreferences
文件底部(在类之外)添加:
TranslatePreferences translatePreferences = TranslatePreferences();
然后在lang
类中可以使用它:
string lang=translatePreferences.getPreferredLocale();