質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

0回答

733閲覧

textfieldに入力された文字を翻訳したい

j06110611

総合スコア54

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2021/11/21 03:09

前提・やりたいこと

textfieldに入力された文字の翻訳がしたい。textfieldに入力された文字の取得はもうできてます。

試したこと

flutter_translateを使おうとしてます。
上記のgithub見様見真似でConfigurationまで書いてみました。
Examplesも見たのですが何が何だかよくわからなくて・・・

わからないこと

ja.jsonとかen_US.jsonに何か書かなくていいのか、何を書くのか。
エラーもググったけど原因と解決法がつかめなかったので教えていただきたいです。
また、もし翻訳するによりよい方法があるならそれを教えてくれると嬉しいです。

エラー

[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: FormatException: Unexpected end of input (at character 1)

main.dart

Dart

1//ここから 2void main() async{ 3 var delegate = await LocalizationDelegate.create( 4 fallbackLocale: 'ja', 5 supportedLocales: ['ja','en_US']); 6 runApp(LocalizedApp(delegate, MyApp())); 7} 8 9class MyApp extends StatelessWidget { 10 11 Widget build(BuildContext context) { 12 var localizationDelegate = LocalizedApp.of(context).delegate; 13 14 return LocalizationProvider( 15 state: LocalizationProvider.of(context).state, 16 child: MaterialApp( 17 localizationsDelegates: [ 18 GlobalMaterialLocalizations.delegate, 19 GlobalWidgetsLocalizations.delegate, 20 localizationDelegate 21 ], 22 supportedLocales: localizationDelegate.supportedLocales, 23 locale: localizationDelegate.currentLocale, 24 theme: ThemeData(primarySwatch: Colors.blue), 25 home: HomePage(), 26 ), 27 ); 28 } 29} 30 31//ここまで 32 33class HomePage extends StatefulWidget { 34 35 _HomePageState createState() => _HomePageState(); 36} 37 38class _HomePageState extends State<HomePage> { 39 String _diary = ''; 40 41 //テキストフィールド用の管理用コントローラーを作成 42 final myController = TextEditingController(); 43 44 //データ格納用リスト 45 List<String> items = []; 46 47 // テキストフィールドに入力されたアイテムをリストに追加(投稿ボタンが押されたときに呼び出す関数) 48 void _addItem(String inputtext) { 49 setState(() { 50 items.add(inputtext); 51 print(items); 52 }); 53 } 54 55 56 // widgetの破棄時にコントローラーも破棄する 57 void dispose(){ 58 myController.dispose(); 59 super.dispose(); 60 } 61 62 63 Widget build(BuildContext context) { 64 return Scaffold( 65 appBar: AppBar( 66 title: const Text('翻訳日記'), 67 ), 68 floatingActionButton: FloatingActionButton( 69 child: Icon(Icons.add), 70 onPressed: () async{ 71 //ダイアログ表示------------------------ 72 showDialog( 73 context: context, 74 barrierDismissible: false, //背景タップしたときにダイアログ閉じていいかどうか 75 builder: (context) { 76 return StatefulBuilder( 77 builder: (context, setState) { 78 return AlertDialog( 79 insetPadding: EdgeInsets.all(8), 80 title: Text('日記を入力'), 81 //content: Text('今日の日記'), 82 content: Container( 83 width: 400, 84 height: 125, 85 child: TextField( 86 onChanged: (value) { 87 setState(() { 88 _diary = value; 89 }); 90 }, 91 keyboardType: TextInputType.multiline, 92 maxLines: 3, 93 controller: myController, 94 decoration: InputDecoration( 95 hintText: '今日なにがあった?', 96 enabledBorder: OutlineInputBorder( 97 borderRadius: BorderRadius.all(Radius.circular(8.0)), 98 borderSide: BorderSide(color: Colors.green,width: 1), 99 ), 100 focusedBorder: OutlineInputBorder( 101 borderRadius: BorderRadius.all(Radius.circular(8.0)), 102 borderSide: BorderSide(color: Colors.green, width: 2), 103 ), 104 counterText: '${_diary.length.toString()} character(s)', 105 ), 106 autofocus: true, 107 ), 108 ), 109 actions: <Widget>[ 110 FlatButton( 111 child: Text('キャンセル'), 112 onPressed: () => Navigator.of(context).pop(0), 113 ), 114 FlatButton( 115 child: Text('追加'), 116 onPressed: (){ 117 _addItem(myController.text); 118 //テキストフィールドの内容をクリア 119 myController.clear(); 120 }, 121 ) 122 ], 123 ); 124 } 125 ); 126 } 127 ); 128 }, 129 ), 130 body: Container( 131 child: Column( 132 // mainAxisAlignment: MainAxisAlignment.center, 133 children: <Widget>[ 134 Expanded( 135 child: ListView.builder( 136 scrollDirection: Axis.vertical, 137 shrinkWrap: true, 138 itemCount: items.length, 139 itemBuilder: (BuildContext context, int index) { 140 final item = items[index]; 141 142 return new Card( 143 child: ListTile( 144 title: Text(item), 145 ), 146 ); 147 } 148 ), 149 ), 150 ], 151 ), 152 ), 153 ); 154 } 155}

pubspec.yaml

yaml

1dependencies: 2 flutter_translate: 3.0.1 3 flutter: 4 sdk: flutter 5 flutter_localizations: 6 sdk: flutter 7 8 # The following adds the Cupertino Icons font to your application. 9 # Use with the CupertinoIcons class for iOS style icons. 10 cupertino_icons: ^1.0.2 11 12dev_dependencies: 13 flutter_test: 14 sdk: flutter 15 16# For information on the generic Dart part of this file, see the 17# following page: https://dart.dev/tools/pub/pubspec 18 19# The following section is specific to Flutter. 20flutter: 21 22 23 # The following line ensures that the Material Icons font is 24 # included with your application, so that you can use the icons in 25 # the material Icons class. 26 uses-material-design: true 27 assets: 28 - assets/i18n/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問