Aucune description

i18n_provider.dart 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. import 'package:photo/src/entity/options.dart';
  2. import 'package:photo/src/provider/selected_provider.dart';
  3. abstract class I18nProvider {
  4. const I18nProvider._();
  5. String getTitleText(Options options);
  6. String getSureText(Options options, SelectedProvider selectedProvider);
  7. String getPreviewText(Options options, SelectedProvider selectedProvider);
  8. String getSelectedOptionsText(Options options);
  9. String getMaxTipText(Options options);
  10. I18NPermissionProvider getNotPermissionText(Options options);
  11. static const I18nProvider chinese = _CNProvider();
  12. static const I18nProvider english = _ENProvider();
  13. }
  14. class _CNProvider extends I18nProvider {
  15. const _CNProvider() : super._();
  16. @override
  17. String getTitleText(Options options) {
  18. return "图片选择";
  19. }
  20. @override
  21. String getPreviewText(Options options, SelectedProvider selectedProvider) {
  22. return "预览(${selectedProvider.selectedCount})";
  23. }
  24. @override
  25. String getSureText(Options options, SelectedProvider selectedProvider) {
  26. return "确定(${selectedProvider.selectedCount}/${options.maxSelected})";
  27. }
  28. @override
  29. String getSelectedOptionsText(Options options) {
  30. return "选择";
  31. }
  32. @override
  33. String getMaxTipText(Options options) {
  34. return "您已经选择了${options.maxSelected}张图片";
  35. }
  36. @override
  37. I18NPermissionProvider getNotPermissionText(Options options) {
  38. return I18NPermissionProvider(
  39. cancelText: "取消", sureText: "去开启", titleText: "没有访问相册的权限");
  40. }
  41. }
  42. class _ENProvider extends I18nProvider {
  43. const _ENProvider() : super._();
  44. @override
  45. String getTitleText(Options options) {
  46. return "image picker";
  47. }
  48. @override
  49. String getPreviewText(Options options, SelectedProvider selectedProvider) {
  50. return "preview(${selectedProvider.selectedCount})";
  51. }
  52. @override
  53. String getSureText(Options options, SelectedProvider selectedProvider) {
  54. return "sure(${selectedProvider.selectedCount}/${options.maxSelected})";
  55. }
  56. @override
  57. String getSelectedOptionsText(Options options) {
  58. return "selected";
  59. }
  60. @override
  61. String getMaxTipText(Options options) {
  62. return "select ${options.maxSelected} pictures at most";
  63. }
  64. @override
  65. I18NPermissionProvider getNotPermissionText(Options options) {
  66. return I18NPermissionProvider(
  67. cancelText: "cancel",
  68. sureText: "allow",
  69. titleText: "No permission to access gallery");
  70. }
  71. }
  72. abstract class I18NCustomProvider implements I18nProvider {
  73. final String maxTipText;
  74. final String previewText;
  75. final String selectedOptionsText;
  76. final String sureText;
  77. final String titleText;
  78. final I18NPermissionProvider notPermissionText;
  79. I18NCustomProvider(
  80. this.maxTipText,
  81. this.previewText,
  82. this.selectedOptionsText,
  83. this.sureText,
  84. this.titleText,
  85. this.notPermissionText);
  86. @override
  87. String getMaxTipText(Options options) {
  88. return maxTipText;
  89. }
  90. @override
  91. String getSelectedOptionsText(Options options) {
  92. return selectedOptionsText;
  93. }
  94. @override
  95. String getTitleText(Options options) {
  96. return titleText;
  97. }
  98. @override
  99. I18NPermissionProvider getNotPermissionText(Options options) {
  100. return notPermissionText;
  101. }
  102. }
  103. class I18NPermissionProvider {
  104. final String titleText;
  105. final String sureText;
  106. final String cancelText;
  107. const I18NPermissionProvider(
  108. {this.titleText, this.sureText, this.cancelText});
  109. }