我有一个带有Firestore的Flutter应用程序作为后端,用于存储该应用程序中显示的动态数据。如flutter_localizations
所述,我正在使用here库添加对多种语言的本地化支持。
我的服务器数据是从Firestore加载的,并保存在sqlite数据库中。数据被加载到类对象并显示在Flutter小部件中。
如何重新构建类模型,数据库和逻辑,以根据应用语言环境显示正确的字符串?
到目前为止我想出的是:
Firestore:
- songs (collection)
-- QWSAWERFCUT (id)
-- title: Smells Like Teen Spirit
-- title_hi: स्मेल्स लाइक टीन स्पिरिट
-- title_mr: स्मेल्स लाइक टीन स्पिरिट
-- ....
Sqflite数据库:
db.execute(
"CREATE TABLE $activityTable("
"$colId TEXT PRIMARY KEY , "
"$colTitle TEXT, "
"$colTitle_hi TEXT, "
"$colTitle_mr TEXT, "
....
)
飞镖类:
class Activity {
String id;
String title;
String title_hi;
String title_mr;
...
// Function to get locale-specific data for each field
String getTitle(Locale locale){
if(locale==Locale('hi')) {
return title_hi;
}
else if(locale==Locale('mr')) {
return title_mr;
}
else{
return title;
}
}
}
我是否需要将多种语言的每个字段添加到我的Firestore,数据库,类对象和每个字段的特殊功能中,以获得特定于语言环境的数据,或者是否有更有效的方法?
向每个表添加一列,以标识用于每个行条目的本地语言。通过API调用从客户端设备请求数据时,请传递所需的本地名称,例如:en。
注意:采用一个本地语言,说'en'作为默认本地语言,以便可以将其用作后备本地语言。