mirror of
https://github.com/stonega/tsacdop
synced 2025-03-10 00:00:07 +01:00
Language update.
This commit is contained in:
parent
b510472443
commit
5eca11937a
@ -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
BIN
assets/mx.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.9 KiB |
@ -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": {},
|
||||
|
@ -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",
|
||||
|
@ -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": "修改节目弹出菜单",
|
||||
|
@ -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."),
|
||||
),
|
||||
],
|
||||
))),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user