Language update.

This commit is contained in:
stonegate 2020-07-31 01:16:14 +08:00
parent b510472443
commit 5eca11937a
6 changed files with 142 additions and 93 deletions

View File

@ -43,7 +43,9 @@ Support languages
* ![English]
* ![Chinese Simplified]
* ![Franch]
* ![Franch]
Translator: ppp
Please [Email](mailto:<tsacdop.app@gmail.com>) me you'd like to contribute to support more languages!
@ -97,7 +99,7 @@ src
├──settings
├──setting.dart [Setting Page]
STATES
STATE
src
├──state
├──audio_state.dart [Audio State]

BIN
assets/mx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -278,6 +278,12 @@
"@play": {},
"playback": "Playback control",
"@playback": {},
"playerHeightMed": "Medium",
"@playerHeightMed": {},
"playerHeightShort": "Short",
"@playerHeightShort": {},
"playerHeightTall": "Tall",
"@playerHeightTall": {},
"playing": "Playing",
"@playing": {},
"plugins": "Plugins",
@ -443,11 +449,15 @@
"@settingsNetworkCellularDes": {},
"settingsPlayDes": "Playlist and player",
"@settingsPlayDes": {},
"settingsPlayerHeight": "Player height",
"@settingsPlayerHeight": {},
"settingsPlayerHeightDes": "Change player widget height as you like",
"@settingsPlayerHeightDes": {},
"settingsPopupMenu": "Episodes popup menu",
"@settingsPopupMenu": {},
"settingsPopupMenuDes": "Change the popup menu of episode",
"@settingsPopupMenuDes": {},
"settingsPrefrence": "Prefrence",
"settingsPrefrence": "Preference",
"@settingsPrefrence": {},
"settingsRealDark": "Real dark",
"@settingsRealDark": {},

View File

@ -278,6 +278,12 @@
"@play": {},
"playback": "Commandes du lecteur",
"@playback": {},
"playerHeightMed": "Medium",
"@playerHeightMed": {},
"playerHeightShort": "Short",
"@playerHeightShort": {},
"playerHeightTall": "Tall",
"@playerHeightTall": {},
"playing": "En cours",
"@playing": {},
"plugins": "Plugins",
@ -443,6 +449,10 @@
"@settingsNetworkCellularDes": {},
"settingsPlayDes": "Playlist et lecteur",
"@settingsPlayDes": {},
"settingsPlayerHeight": "Player height",
"@settingsPlayerHeight": {},
"settingsPlayerHeightDes": "Change player widget height as you like",
"@settingsPlayerHeightDes": {},
"settingsPopupMenu": "Menu popup des épisodes",
"@settingsPopupMenu": {},
"settingsPopupMenuDes": "Configuration du menu popup",

View File

@ -278,6 +278,12 @@
"@play": {},
"playback": "播放控制",
"@playback": {},
"playerHeightMed": "中",
"@playerHeightMed": {},
"playerHeightShort": "低",
"@playerHeightShort": {},
"playerHeightTall": "高",
"@playerHeightTall": {},
"playing": "正在播放",
"@playing": {},
"plugins": "插件",
@ -443,6 +449,10 @@
"@settingsNetworkCellularDes": {},
"settingsPlayDes": "播放列表和播放器",
"@settingsPlayDes": {},
"settingsPlayerHeight": "播放器高度",
"@settingsPlayerHeight": {},
"settingsPlayerHeightDes": "您可以修改播放器高度",
"@settingsPlayerHeightDes": {},
"settingsPopupMenu": "节目弹出菜单",
"@settingsPopupMenu": {},
"settingsPopupMenuDes": "修改节目弹出菜单",

View File

@ -33,97 +33,114 @@ class _LanguagesSettingState extends State<LanguagesSetting> {
Theme.of(context).accentColorBrightness,
),
child: Scaffold(
appBar: AppBar(
title: Text(s.settingsLanguages),
elevation: 0,
backgroundColor: Theme.of(context).primaryColor,
appBar: AppBar(
title: Text(s.settingsLanguages),
elevation: 0,
backgroundColor: Theme.of(context).primaryColor,
),
body: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Column(
children: [
ListTile(
title: Text(s.systemDefault),
onTap: () async {
await S.load(Locale(Intl.systemLocale));
setState(() {});
},
contentPadding: const EdgeInsets.only(left: 75, right: 20),
trailing: Radio<Locale>(
value: Locale(Intl.systemLocale),
groupValue: Locale(Intl.getCurrentLocale()),
onChanged: (locale) async {
await S.load(locale);
setState(() {});
}),
),
Divider(height: 2),
ListTile(
title: Text('English'),
onTap: () async {
await S.load(Locale('en'));
setState(() {});
},
contentPadding: const EdgeInsets.only(left: 75, right: 20),
trailing: Radio<Locale>(
value: Locale('en'),
groupValue: Locale(Intl.getCurrentLocale()),
onChanged: (locale) async {
await S.load(locale);
setState(() {});
}),
),
Divider(height: 2),
ListTile(
title: Text('简体中文'),
onTap: () async {
await S.load(Locale('zh_Hans'));
setState(() {});
},
contentPadding: const EdgeInsets.only(left: 75, right: 20),
trailing: Radio<Locale>(
value: Locale('zh_Hans'),
groupValue: Locale(Intl.getCurrentLocale()),
onChanged: (locale) async {
await S.load(locale);
setState(() {});
}),
),
Divider(height: 2),
ListTile(
title: Text('LE françAIS'),
onTap: () async {
await S.load(Locale('fr'));
setState(() {});
},
contentPadding: const EdgeInsets.only(left: 75, right: 20),
trailing: Radio<Locale>(
value: Locale('fr'),
groupValue: Locale(Intl.getCurrentLocale()),
onChanged: (locale) async {
await S.load(locale);
setState(() {});
}),
),
Divider(height: 2),
//ListTile(
// title: Text('Español'),
// onTap: () async {
// await S.load(Locale('es'));
// setState(() {});
// },
// contentPadding: const EdgeInsets.only(left: 75, right: 20),
// trailing: Radio<Locale>(
// value: Locale('es'),
// groupValue: Locale(Intl.getCurrentLocale()),
// onChanged: (locale) async {
// await S.load(locale);
// setState(() {});
// }),
//),
//Divider(height: 2),
ListTile(
onTap: () => _launchUrl(
'mailto:<tsacdop.app@gmail.com>?subject=Tsacdop localization project'),
contentPadding: const EdgeInsets.only(left: 75, right: 20),
title: Align(
alignment: Alignment.centerLeft,
child: Image(
image: Theme.of(context).brightness == Brightness.light
? AssetImage('assets/localizely_logo.png')
: AssetImage('assets/localizely_logo_light.png'),
height: 20),
),
subtitle: Text(
"If you'd like to contribute to localization project, please contact me."),
),
],
),
body: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Column(
children: [
ListTile(
title: Text(s.systemDefault),
onTap: () async {
await S.load(Locale(Intl.systemLocale));
setState(() {});
},
contentPadding: const EdgeInsets.only(left: 75, right: 20),
trailing: Radio<Locale>(
value: Locale(Intl.systemLocale),
groupValue: Locale(Intl.getCurrentLocale()),
onChanged: (locale) async {
await S.load(locale);
setState(() {});
}),
),
Divider(height: 2),
ListTile(
title: Text('English'),
onTap: () async {
await S.load(Locale('en'));
setState(() {});
},
contentPadding: const EdgeInsets.only(left: 75, right: 20),
trailing: Radio<Locale>(
value: Locale('en'),
groupValue: Locale(Intl.getCurrentLocale()),
onChanged: (locale) async {
await S.load(locale);
setState(() {});
}),
),
Divider(height: 2),
ListTile(
title: Text('简体中文'),
onTap: () async {
await S.load(Locale('zh_Hans'));
setState(() {});
},
contentPadding: const EdgeInsets.only(left: 75, right: 20),
trailing: Radio<Locale>(
value: Locale('zh_Hans'),
groupValue: Locale(Intl.getCurrentLocale()),
onChanged: (locale) async {
await S.load(locale);
setState(() {});
}),
),
Divider(height: 2),
ListTile(
title: Text('LE françAIS'),
onTap: () async {
await S.load(Locale('fr'));
setState(() {});
},
contentPadding: const EdgeInsets.only(left: 75, right: 20),
trailing: Radio<Locale>(
value: Locale('fr'),
groupValue: Locale(Intl.getCurrentLocale()),
onChanged: (locale) async {
await S.load(locale);
setState(() {});
}),
),
Divider(height: 2),
ListTile(
onTap: () => _launchUrl(
'mailto:<tsacdop.app@gmail.com>?subject=Tsacdop localization project'),
contentPadding: const EdgeInsets.only(left: 75, right: 20),
title: Align(
alignment: Alignment.centerLeft,
child: Image(
image: Theme.of(context).brightness ==
Brightness.light
? AssetImage('assets/localizely_logo.png')
: AssetImage('assets/localizely_logo_light.png'),
height: 20),
),
subtitle: Text(
"If you'd like to contribute to localization project, please contact me."),
),
],
))),
),
),
);
}
}