diff --git a/translate_app/l10n.yaml b/translate_app/l10n.yaml new file mode 100644 index 0000000..4e6692e --- /dev/null +++ b/translate_app/l10n.yaml @@ -0,0 +1,3 @@ +arb-dir: lib/l10n +template-arb-file: app_en.arb +output-localization-file: app_localizations.dart \ No newline at end of file diff --git a/translate_app/lib/l10n/app_en.arb b/translate_app/lib/l10n/app_en.arb new file mode 100644 index 0000000..671af1b --- /dev/null +++ b/translate_app/lib/l10n/app_en.arb @@ -0,0 +1,6 @@ +{ + "apTitle": "Translator", + "convertBtn": "Convert", + "boxTitle": "Enter the Text", + "result": "Result" +} \ No newline at end of file diff --git a/translate_app/lib/l10n/app_es.arb b/translate_app/lib/l10n/app_es.arb new file mode 100644 index 0000000..207f7c6 --- /dev/null +++ b/translate_app/lib/l10n/app_es.arb @@ -0,0 +1,6 @@ +{ + "apTitle": "traducir", + "convertBtn": "Convertir", + "boxTitle": "Ingrese el texto", + "result": "Resultado" +} \ No newline at end of file diff --git a/translate_app/lib/main.dart b/translate_app/lib/main.dart index 587068b..54af57c 100644 --- a/translate_app/lib/main.dart +++ b/translate_app/lib/main.dart @@ -2,6 +2,8 @@ import 'package:flutter/material.dart'; import 'package:translate_app/models/language.dart'; import 'package:translate_app/services/service.dart'; // import 'package:get/get.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; void main() { runApp(MyApp()); @@ -30,6 +32,16 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return const MaterialApp( debugShowCheckedModeBanner: false, + localizationsDelegates: [ + AppLocalizations.delegate, + GlobalMaterialLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + ], + supportedLocales: [ + Locale('en'), // English + Locale('es'), // Spanish + ], home: LanguageTranslator(), ); } @@ -55,7 +67,7 @@ class _LanguageTranslatorState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: const Text("Translator"), + title: Text(AppLocalizations.of(context)!.apTitle), centerTitle: true, elevation: 0, backgroundColor: const Color.fromARGB(255, 44, 37, 230), @@ -70,7 +82,7 @@ class _LanguageTranslatorState extends State { ), TextField( decoration: InputDecoration( - hintText: 'Enter the text', + hintText: AppLocalizations.of(context)!.boxTitle, border: OutlineInputBorder( borderRadius: BorderRadius.circular(5))), controller: _input, @@ -85,8 +97,8 @@ class _LanguageTranslatorState extends State { DecoratedBox( decoration: BoxDecoration( borderRadius: BorderRadius.circular(5), - border: - Border.all(color: const Color.fromARGB(136, 60, 60, 60))), + border: Border.all( + color: const Color.fromARGB(136, 60, 60, 60))), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4), @@ -135,8 +147,8 @@ class _LanguageTranslatorState extends State { MaterialStateProperty.all(Colors.white), ), child: isVisible - ? const Text( - "Convert", + ? Text( + AppLocalizations.of(context)!.convertBtn, style: TextStyle(fontSize: 20), ) : const CircularProgressIndicator( @@ -151,8 +163,8 @@ class _LanguageTranslatorState extends State { visible: result.isNotEmpty, child: Column( children: [ - const Text( - "Result", + Text( + AppLocalizations.of(context)!.result, style: TextStyle(fontSize: 20, color: Colors.green), ), const SizedBox( diff --git a/translate_app/pubspec.lock b/translate_app/pubspec.lock index 4917ea8..1ea27f2 100644 --- a/translate_app/pubspec.lock +++ b/translate_app/pubspec.lock @@ -37,10 +37,10 @@ packages: dependency: transitive description: name: collection - sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.2" + version: "1.18.0" cupertino_icons: dependency: "direct main" description: @@ -70,6 +70,11 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.3" + flutter_localizations: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" flutter_test: dependency: "direct dev" description: flutter @@ -91,6 +96,38 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" + intl: + dependency: "direct main" + description: + name: intl + sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + url: "https://pub.dev" + source: hosted + version: "0.18.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" lints: dependency: transitive description: @@ -103,34 +140,34 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.11.0" path: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" sky_engine: dependency: transitive description: flutter @@ -148,18 +185,18 @@ packages: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" string_scanner: dependency: transitive description: @@ -180,10 +217,10 @@ packages: dependency: transitive description: name: test_api - sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.6.1" typed_data: dependency: transitive description: @@ -200,13 +237,13 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" - web: + vm_service: dependency: transitive description: - name: web - sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + name: vm_service + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "0.1.4-beta" + version: "13.0.0" sdks: - dart: ">=3.1.0 <4.0.0" + dart: ">=3.2.0-0 <4.0.0" diff --git a/translate_app/pubspec.yaml b/translate_app/pubspec.yaml index b7b2329..b985e94 100644 --- a/translate_app/pubspec.yaml +++ b/translate_app/pubspec.yaml @@ -30,12 +30,15 @@ environment: dependencies: flutter: sdk: flutter - + # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.2 http: ^1.1.0 + flutter_localizations: + sdk: flutter + intl: any dev_dependencies: flutter_test: @@ -53,7 +56,7 @@ dev_dependencies: # The following section is specific to Flutter packages. flutter: - + generate: true # The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class.