diff --git a/assets/translations/en.json b/assets/translations/en.json index 126ee4a4f..a12353ee9 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -637,5 +637,142 @@ "froggy_insight_visibility_3": "Clear visibility… I can see all the way across the reeds", "froggy_insight_record_temps_1": "Whoa… might hit record heat. I’m diving deep until it’s over", "froggy_insight_record_temps_2": "Brr… maybe record cold. My toes are shaking just thinking about it", - "froggy_insight_record_temps_3": "Nothing record-breaking… just normal weather stuff" + "froggy_insight_record_temps_3": "Nothing record-breaking… just normal weather stuff", + "max_temp": "High", + "low_temp": "Low", + "forecast_only": "Forecast only", + "days": "days", + "where_to_use": "Where to use", + "best_for": "Best for", + "countries": "Countries", + "notes": "Notes", + "best_match_full_where_use": "Anywhere", + "best_match_full_best_for": "Users unsure what model to pick", + "best_match_full_notes": "Automatically selects the most appropriate model based on location and forecast range.", + "ECMWF_IFS_0.4°_full_where_use": "Global", + "ECMWF_IFS_0.4°_full_best_for": "Long-range, general use, travelers, aviation", + "ECMWF_IFS_0.4°_full_countries": "Fully global (no regional specialization; consistent performance worldwide)", + "ECMWF_IFS_0.4°_full_notes": "Very reliable but lower spatial resolution than the 0.25° version. Great fallback model.", + "ECMWF_IFS_0.25°_full_where_use": "Global (especially Europe, Africa, Middle East)", + "ECMWF_IFS_0.25°_full_best_for": "High-accuracy global forecasts (3–10 days out)", + "ECMWF_IFS_0.25°_full_countries": "Europe (top performer), global reliability", + "ECMWF_IFS_0.25°_full_notes": "Arguably the most accurate public global model. Used by many national agencies. Slower updates than GFS.", + "CMA_GRAPES_Global_full_where_use": "China, SE Asia, East Asia", + "CMA_GRAPES_Global_full_best_for": "Regional use in Asia-Pacific", + "CMA_GRAPES_Global_full_countries": "China, Taiwan, Vietnam, Korea", + "CMA_GRAPES_Global_full_notes": "Lower global reliability. Performs best around East Asia.", + "BOM_ACCESS_Global_full_where_use": "Australia, New Zealand, Pacific islands", + "BOM_ACCESS_Global_full_best_for": "Marine and continental Australia forecasts", + "BOM_ACCESS_Global_full_countries": "Australia, NZ, Papua New Guinea", + "BOM_ACCESS_Global_full_notes": "Tailored for Southern Hemisphere. High-quality over AU/Oceania.", + "MET_Norway_Nordic_full_where_use": "Scandinavia", + "MET_Norway_Nordic_full_best_for": "Local precision for Norway, Sweden, Finland", + "MET_Norway_Nordic_full_countries": "Norway (best), Sweden, Denmark", + "MET_Norway_Nordic_full_notes": "Uses MET Norway’s in-house regional models. Very accurate in Nordic terrain.", + "GFS_Seamless_full_where_use": "Global", + "GFS_Seamless_full_best_for": "Fast updates + reasonable accuracy", + "GFS_Seamless_full_countries": "US (especially), global", + "GFS_Seamless_full_notes": "Combines GFS high-res short-term with long-range. Good balance between speed and reliability.", + "GFS_Global_full_where_use": "Worldwide", + "GFS_Global_full_best_for": "Free access, rapid updates (4x/day)", + "GFS_Global_full_countries": "US (default), global fallback", + "GFS_Global_full_notes": "Slightly less accurate than ECMWF, but faster and more frequently updated.", + "GFS_HRRR_full_where_use": "United States only", + "GFS_HRRR__full_best_for": "Very short-term hyperlocal forecasting (0–18 hours)", + "GFS_HRRR__full_countries": "US only", + "GFS_HRRR__full_notes": "Super high-res (3km). Best for storms, hourly planning, airport ops.", + "high_resolution_rapid_refresh": "(High-Resolution Rapid Refresh)", + "global": "Global", + "GFS_GraphCast_full_best_for": "Smooth animations, AI enthusiasts", + "GFS_GraphCast_full_notes": "DeepMind’s AI forecast. Still experimental. Very good for visual consistency but not battle-tested yet.", + "JMA_Seamless_full_where_use": "Japan, East Asia", + "JMA_Seamless_full_best_for": "General public, broad use", + "JMA_Seamless_full_countries": "Japan, Korea, Taiwan, eastern China", + "JMA_Seamless_full_notes": "National model with decent resolution. Blends short and long range.", + "JMA_MSM_full_where_use": "Japan only", + "JMA_MSM_full_best_for": "Precise forecasts up to 36h", + "JMA_MSM_full_countries": "Japan", + "JMA_MSM_full_notes": "Very high resolution, excellent for metro areas like Tokyo or Osaka.", + "JMA_GSM_full_where_use": "Asia-Pacific", + "JMA_GSM_full_best_for": "Global coverage from Japan", + "JMA_GSM_full_countries": "Japan, Philippines, Taiwan", + "JMA_GSM_full_notes": "Not as sharp as ECMWF or GFS, but stable in East Asia.", + "ICON_Seamless_full_where_use": "Europe (broad), global", + "ICON_Seamless_full_best_for": "European-wide continuity", + "ICON_Seamless_full_countries": "Germany, France, Central Europe", + "ICON_Seamless_full_notes": "Transitions smoothly between resolutions. Good for large European areas.", + "ICON_Global_full_where_use": "Worldwide", + "ICON_Global_full_best_for": "Competitor to GFS/ECMWF globally", + "ICON_Global_full_countries": "Europe + Global", + "ICON_Global_full_notes": "Strong model globally. Among best for Germany and Central Europe.", + "ICON_EU_full_where_use": "Western and Central Europe", + "ICON_EU_full_best_for": "Medium-range precision in Europe", + "ICON_EU_full_countries": "France, Germany, Poland, Italy", + "ICON_EU_full_notes": "High-res model. Great for terrain-rich regions.", + "ICON_D2_full_where_use": "Germany only", + "ICON_D2_full_best_for": "Ultra-local forecasting up to 48h", + "ICON_D2_full_countries": "Germany", + "ICON_D2_full_notes": "Very detailed — cities, valleys, small regions.", + "GEM_Seamless_full_where_use": "North America", + "GEM_Seamless_full_best_for": "Mixed-range use for US & Canada", + "GEM_Seamless_full_countries": "Canada, US", + "GEM_Seamless_full_notes": "Blended with HRDPS and regional models. Good balance.", + "GEM_Global_full_where_use": "Northern Hemisphere", + "GEM_Global_full_best_for": "Canadian territory, arctic routes", + "GEM_Global_full_countries": "Canada, Greenland, Alaska", + "GEM_Global_full_notes": "Moderate global accuracy, optimized for polar areas.", + "GEM_Regional_full_where_use": "Canada (regional)", + "GEM_Regional_full_best_for": "Weather-sensitive sectors (aviation, snow, hydrology)", + "GEM_Regional_full_countries": "Canada", + "GEM_Regional_full_notes": "High-res version for populated areas like Toronto, Quebec, Vancouver.", + "GEM_HRDPS_Continental_full_where_use": "Canada + US border", + "GEM_HRDPS_Continental_full_best_for": "Short-range events (snowstorms, rainfall)", + "GEM_HRDPS_Continental_full_countries": "Canada, North US", + "GEM_HRDPS_Continental_full_notes": "Very high-res (2.5km). Focused on precision forecasting.", + "Météo_France_Seamless_full_where_use": "France and surroundings", + "Météo_France_Seamless_full_best_for": "General use in France and nearby countries", + "Météo_France_Seamless_full_countries": "France, Spain, Belgium", + "Météo_France_Seamless_full_notes": "Blended for smoother transitions. High confidence over France.", + "Météo_France_ARPEGE_World_full_where_use": "French overseas territories", + "Météo_France_ARPEGE_World_full_best_for": "French Guiana, La Réunion, Polynesia", + "Météo_France_ARPEGE_World_full_countries": "France + territories", + "Météo_France_ARPEGE_World_full_notes": "Medium-res global forecast", + "Météo_France_ARPEGE_Europe_full_where_use": "France, Western Europe", + "Météo_France_ARPEGE_Europe_full_best_for": "Continental Europe weather", + "Météo_France_ARPEGE_Europe_full_countries": "France, Belgium, Italy", + "Météo_France_ARPEGE_Europe_full_notes": "Higher resolution than global ARPEGE.", + "Météo_France_ARPEGE_France_HD_full_where_use": "France only", + "Météo_France_ARPEGE_France_HD_full_best_for": "Short-term, hyperlocal accuracy", + "Météo_France_ARPEGE_France_HD_full_countries": "France", + "Météo_France_ARPEGE_France_HD_full_notes": "Excellent detail — rain, fog, wind, storm.", + "ItaliaMeteo_ARPAE_ICON_2I_full_where_use": "Italy only", + "ItaliaMeteo_ARPAE_ICON_2I_full_best_for": "Short-term high-res forecasting", + "ItaliaMeteo_ARPAE_ICON_2I_full_countries": "Italy", + "ItaliaMeteo_ARPAE_ICON_2I_full_notes": "Based on ICON with ARPAE tuning. Strong for mountainous terrain.", + "UKMO_Seamless_full_where_use": "UK + international routes", + "UKMO_Seamless_full_best_for": "Combined global/local coverage", + "UKMO_Seamless_full_countries": "UK, global", + "UKMO_Seamless_full_notes": "Smooth model transitions. Good for flights, sea, and national forecasts.", + "UKMO_Global_10km_full_where_use": "Worldwide", + "UKMO_Global_10km_full_best_for": "Medium-range forecasts (3–7 days)", + "UKMO_Global_10km_full_countries": "UK, Commonwealth countries", + "UKMO_Global_10km_full_notes": "Strong global model. Good tropical performance.", + "UKMO_UK_2km_full_where_use": "UK only", + "UKMO_UK_2km_full_best_for": "Precise local UK weather", + "UKMO_UK_2km_full_countries": "England, Scotland, Wales, NI", + "UKMO_UK_2km_full_notes": "One of the best models for dense urban UK settings.", + "KNMI_Seamless_with_ECMWF_full_where_use": "Netherlands + Europe + global routes", + "KNMI_Seamless_with_ECMWF_full_best_for": "Smooth transition across forecast scales", + "KNMI_Seamless_with_ECMWF_full_countries": "Netherlands, broader Europe, global", + "KNMI_Seamless_with_ECMWF_full_notes": "Combines KNMI short-range and ECMWF global models. Useful for aviation, marine, and national-level planning.", + "with_ECMWF": "with ECMWF", + "KNMI_Harmonie_Arome_Europe_full_where_use": "Continental Europe", + "KNMI_Harmonie_Arome_Europe_full_best_for": "Mesoscale weather features (e.g. thunderstorms, wind gusts)", + "KNMI_Harmonie_Arome_Europe_full_countries": "European countries including Netherlands, Belgium, Germany, France", + "KNMI_Harmonie_Arome_Europe_full_notes": "Convection-permitting resolution. Very good for regional forecasting across European terrain.", + "KNMI_Harmonie_Arome_Netherlands_full_where_use": "Netherlands (urban and coastal areas)", + "KNMI_Harmonie_Arome_Netherlands_full_best_for": "High-resolution local forecasting (0–48 hours)", + "KNMI_Harmonie_Arome_Netherlands_full_countries": "Netherlands", + "KNMI_Harmonie_Arome_Netherlands_full_notes": "Ultra-fine resolution. Excellent for precipitation, wind, and local effects like sea breezes or fog.", + "no_data": "No data" } diff --git a/assets/translations/source.json b/assets/translations/source.json index c761db1fa..a12353ee9 100644 --- a/assets/translations/source.json +++ b/assets/translations/source.json @@ -639,5 +639,140 @@ "froggy_insight_record_temps_2": "Brr… maybe record cold. My toes are shaking just thinking about it", "froggy_insight_record_temps_3": "Nothing record-breaking… just normal weather stuff", "max_temp": "High", - "low_temp": "Low" + "low_temp": "Low", + "forecast_only": "Forecast only", + "days": "days", + "where_to_use": "Where to use", + "best_for": "Best for", + "countries": "Countries", + "notes": "Notes", + "best_match_full_where_use": "Anywhere", + "best_match_full_best_for": "Users unsure what model to pick", + "best_match_full_notes": "Automatically selects the most appropriate model based on location and forecast range.", + "ECMWF_IFS_0.4°_full_where_use": "Global", + "ECMWF_IFS_0.4°_full_best_for": "Long-range, general use, travelers, aviation", + "ECMWF_IFS_0.4°_full_countries": "Fully global (no regional specialization; consistent performance worldwide)", + "ECMWF_IFS_0.4°_full_notes": "Very reliable but lower spatial resolution than the 0.25° version. Great fallback model.", + "ECMWF_IFS_0.25°_full_where_use": "Global (especially Europe, Africa, Middle East)", + "ECMWF_IFS_0.25°_full_best_for": "High-accuracy global forecasts (3–10 days out)", + "ECMWF_IFS_0.25°_full_countries": "Europe (top performer), global reliability", + "ECMWF_IFS_0.25°_full_notes": "Arguably the most accurate public global model. Used by many national agencies. Slower updates than GFS.", + "CMA_GRAPES_Global_full_where_use": "China, SE Asia, East Asia", + "CMA_GRAPES_Global_full_best_for": "Regional use in Asia-Pacific", + "CMA_GRAPES_Global_full_countries": "China, Taiwan, Vietnam, Korea", + "CMA_GRAPES_Global_full_notes": "Lower global reliability. Performs best around East Asia.", + "BOM_ACCESS_Global_full_where_use": "Australia, New Zealand, Pacific islands", + "BOM_ACCESS_Global_full_best_for": "Marine and continental Australia forecasts", + "BOM_ACCESS_Global_full_countries": "Australia, NZ, Papua New Guinea", + "BOM_ACCESS_Global_full_notes": "Tailored for Southern Hemisphere. High-quality over AU/Oceania.", + "MET_Norway_Nordic_full_where_use": "Scandinavia", + "MET_Norway_Nordic_full_best_for": "Local precision for Norway, Sweden, Finland", + "MET_Norway_Nordic_full_countries": "Norway (best), Sweden, Denmark", + "MET_Norway_Nordic_full_notes": "Uses MET Norway’s in-house regional models. Very accurate in Nordic terrain.", + "GFS_Seamless_full_where_use": "Global", + "GFS_Seamless_full_best_for": "Fast updates + reasonable accuracy", + "GFS_Seamless_full_countries": "US (especially), global", + "GFS_Seamless_full_notes": "Combines GFS high-res short-term with long-range. Good balance between speed and reliability.", + "GFS_Global_full_where_use": "Worldwide", + "GFS_Global_full_best_for": "Free access, rapid updates (4x/day)", + "GFS_Global_full_countries": "US (default), global fallback", + "GFS_Global_full_notes": "Slightly less accurate than ECMWF, but faster and more frequently updated.", + "GFS_HRRR_full_where_use": "United States only", + "GFS_HRRR__full_best_for": "Very short-term hyperlocal forecasting (0–18 hours)", + "GFS_HRRR__full_countries": "US only", + "GFS_HRRR__full_notes": "Super high-res (3km). Best for storms, hourly planning, airport ops.", + "high_resolution_rapid_refresh": "(High-Resolution Rapid Refresh)", + "global": "Global", + "GFS_GraphCast_full_best_for": "Smooth animations, AI enthusiasts", + "GFS_GraphCast_full_notes": "DeepMind’s AI forecast. Still experimental. Very good for visual consistency but not battle-tested yet.", + "JMA_Seamless_full_where_use": "Japan, East Asia", + "JMA_Seamless_full_best_for": "General public, broad use", + "JMA_Seamless_full_countries": "Japan, Korea, Taiwan, eastern China", + "JMA_Seamless_full_notes": "National model with decent resolution. Blends short and long range.", + "JMA_MSM_full_where_use": "Japan only", + "JMA_MSM_full_best_for": "Precise forecasts up to 36h", + "JMA_MSM_full_countries": "Japan", + "JMA_MSM_full_notes": "Very high resolution, excellent for metro areas like Tokyo or Osaka.", + "JMA_GSM_full_where_use": "Asia-Pacific", + "JMA_GSM_full_best_for": "Global coverage from Japan", + "JMA_GSM_full_countries": "Japan, Philippines, Taiwan", + "JMA_GSM_full_notes": "Not as sharp as ECMWF or GFS, but stable in East Asia.", + "ICON_Seamless_full_where_use": "Europe (broad), global", + "ICON_Seamless_full_best_for": "European-wide continuity", + "ICON_Seamless_full_countries": "Germany, France, Central Europe", + "ICON_Seamless_full_notes": "Transitions smoothly between resolutions. Good for large European areas.", + "ICON_Global_full_where_use": "Worldwide", + "ICON_Global_full_best_for": "Competitor to GFS/ECMWF globally", + "ICON_Global_full_countries": "Europe + Global", + "ICON_Global_full_notes": "Strong model globally. Among best for Germany and Central Europe.", + "ICON_EU_full_where_use": "Western and Central Europe", + "ICON_EU_full_best_for": "Medium-range precision in Europe", + "ICON_EU_full_countries": "France, Germany, Poland, Italy", + "ICON_EU_full_notes": "High-res model. Great for terrain-rich regions.", + "ICON_D2_full_where_use": "Germany only", + "ICON_D2_full_best_for": "Ultra-local forecasting up to 48h", + "ICON_D2_full_countries": "Germany", + "ICON_D2_full_notes": "Very detailed — cities, valleys, small regions.", + "GEM_Seamless_full_where_use": "North America", + "GEM_Seamless_full_best_for": "Mixed-range use for US & Canada", + "GEM_Seamless_full_countries": "Canada, US", + "GEM_Seamless_full_notes": "Blended with HRDPS and regional models. Good balance.", + "GEM_Global_full_where_use": "Northern Hemisphere", + "GEM_Global_full_best_for": "Canadian territory, arctic routes", + "GEM_Global_full_countries": "Canada, Greenland, Alaska", + "GEM_Global_full_notes": "Moderate global accuracy, optimized for polar areas.", + "GEM_Regional_full_where_use": "Canada (regional)", + "GEM_Regional_full_best_for": "Weather-sensitive sectors (aviation, snow, hydrology)", + "GEM_Regional_full_countries": "Canada", + "GEM_Regional_full_notes": "High-res version for populated areas like Toronto, Quebec, Vancouver.", + "GEM_HRDPS_Continental_full_where_use": "Canada + US border", + "GEM_HRDPS_Continental_full_best_for": "Short-range events (snowstorms, rainfall)", + "GEM_HRDPS_Continental_full_countries": "Canada, North US", + "GEM_HRDPS_Continental_full_notes": "Very high-res (2.5km). Focused on precision forecasting.", + "Météo_France_Seamless_full_where_use": "France and surroundings", + "Météo_France_Seamless_full_best_for": "General use in France and nearby countries", + "Météo_France_Seamless_full_countries": "France, Spain, Belgium", + "Météo_France_Seamless_full_notes": "Blended for smoother transitions. High confidence over France.", + "Météo_France_ARPEGE_World_full_where_use": "French overseas territories", + "Météo_France_ARPEGE_World_full_best_for": "French Guiana, La Réunion, Polynesia", + "Météo_France_ARPEGE_World_full_countries": "France + territories", + "Météo_France_ARPEGE_World_full_notes": "Medium-res global forecast", + "Météo_France_ARPEGE_Europe_full_where_use": "France, Western Europe", + "Météo_France_ARPEGE_Europe_full_best_for": "Continental Europe weather", + "Météo_France_ARPEGE_Europe_full_countries": "France, Belgium, Italy", + "Météo_France_ARPEGE_Europe_full_notes": "Higher resolution than global ARPEGE.", + "Météo_France_ARPEGE_France_HD_full_where_use": "France only", + "Météo_France_ARPEGE_France_HD_full_best_for": "Short-term, hyperlocal accuracy", + "Météo_France_ARPEGE_France_HD_full_countries": "France", + "Météo_France_ARPEGE_France_HD_full_notes": "Excellent detail — rain, fog, wind, storm.", + "ItaliaMeteo_ARPAE_ICON_2I_full_where_use": "Italy only", + "ItaliaMeteo_ARPAE_ICON_2I_full_best_for": "Short-term high-res forecasting", + "ItaliaMeteo_ARPAE_ICON_2I_full_countries": "Italy", + "ItaliaMeteo_ARPAE_ICON_2I_full_notes": "Based on ICON with ARPAE tuning. Strong for mountainous terrain.", + "UKMO_Seamless_full_where_use": "UK + international routes", + "UKMO_Seamless_full_best_for": "Combined global/local coverage", + "UKMO_Seamless_full_countries": "UK, global", + "UKMO_Seamless_full_notes": "Smooth model transitions. Good for flights, sea, and national forecasts.", + "UKMO_Global_10km_full_where_use": "Worldwide", + "UKMO_Global_10km_full_best_for": "Medium-range forecasts (3–7 days)", + "UKMO_Global_10km_full_countries": "UK, Commonwealth countries", + "UKMO_Global_10km_full_notes": "Strong global model. Good tropical performance.", + "UKMO_UK_2km_full_where_use": "UK only", + "UKMO_UK_2km_full_best_for": "Precise local UK weather", + "UKMO_UK_2km_full_countries": "England, Scotland, Wales, NI", + "UKMO_UK_2km_full_notes": "One of the best models for dense urban UK settings.", + "KNMI_Seamless_with_ECMWF_full_where_use": "Netherlands + Europe + global routes", + "KNMI_Seamless_with_ECMWF_full_best_for": "Smooth transition across forecast scales", + "KNMI_Seamless_with_ECMWF_full_countries": "Netherlands, broader Europe, global", + "KNMI_Seamless_with_ECMWF_full_notes": "Combines KNMI short-range and ECMWF global models. Useful for aviation, marine, and national-level planning.", + "with_ECMWF": "with ECMWF", + "KNMI_Harmonie_Arome_Europe_full_where_use": "Continental Europe", + "KNMI_Harmonie_Arome_Europe_full_best_for": "Mesoscale weather features (e.g. thunderstorms, wind gusts)", + "KNMI_Harmonie_Arome_Europe_full_countries": "European countries including Netherlands, Belgium, Germany, France", + "KNMI_Harmonie_Arome_Europe_full_notes": "Convection-permitting resolution. Very good for regional forecasting across European terrain.", + "KNMI_Harmonie_Arome_Netherlands_full_where_use": "Netherlands (urban and coastal areas)", + "KNMI_Harmonie_Arome_Netherlands_full_best_for": "High-resolution local forecasting (0–48 hours)", + "KNMI_Harmonie_Arome_Netherlands_full_countries": "Netherlands", + "KNMI_Harmonie_Arome_Netherlands_full_notes": "Ultra-fine resolution. Excellent for precipitation, wind, and local effects like sea breezes or fog.", + "no_data": "No data" } diff --git a/lib/controllers/froggy_img.dart b/lib/controllers/froggy_img.dart index 381ca6b1c..241037d2d 100644 --- a/lib/controllers/froggy_img.dart +++ b/lib/controllers/froggy_img.dart @@ -1,3 +1,4 @@ +import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import '../notifiers/unit_settings_notifier.dart'; import 'package:provider/provider.dart'; @@ -12,17 +13,19 @@ class WeatherFrogIconWidget extends StatelessWidget { if (iconUrl == null) { return const Text(""); } - + final isShowFrog = context.read().showFrog; - return isShowFrog ? iconUrl!.startsWith('http') - ? Image.network( - iconUrl!, - loadingBuilder: (context, child, loadingProgress) { - if (loadingProgress == null) return child; - return const Text("Loading..."); - }, - ) - : Image.asset(iconUrl!) : SizedBox.shrink() ; + return isShowFrog + ? iconUrl!.startsWith('http') + ? Image.network( + iconUrl!, + loadingBuilder: (context, child, loadingProgress) { + if (loadingProgress == null) return child; + return Text("loading_text".tr()); + }, + ) + : Image.asset(iconUrl!) + : SizedBox.shrink(); } -} \ No newline at end of file +} diff --git a/lib/screens/about_page.dart b/lib/screens/about_page.dart index 34846e132..002170cb2 100644 --- a/lib/screens/about_page.dart +++ b/lib/screens/about_page.dart @@ -307,8 +307,8 @@ class _AboutPageState extends State { radius: 23, child: Icon(Symbols.favorite), ), - title: Text("Contributors"), - subtitle: Text("Translators"), + title: Text("contributors".tr()), + subtitle: Text("translators".tr()), onTap: () { TranslatorsDialog.show( context, @@ -973,7 +973,7 @@ class TranslatorsDialog { width: double.infinity, child: FilledButton( onPressed: () => Navigator.pop(context), - child: const Text('Close'), + child: Text('close'.tr()), ), ), SizedBox(height: MediaQuery.of(context).padding.bottom + 10),