Jesway / flutter_translate

Flutter Translate is a fully featured localization / internationalization (i18n) library for Flutter.
MIT License
401 stars 118 forks source link

Custom locale Malay #81

Closed mohd-aidi closed 2 years ago

mohd-aidi commented 2 years ago

Hi, i am trying to add new locale Malay. When selecting english it works but when select malay the error appears as below.

E/flutter (21751): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: FormatException: Unexpected character (at line 16, character 5) E/flutter (21751): }, E/flutter (21751): ^ E/flutter (21751): E/flutter (21751): #0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1405:5) E/flutter (21751): #1 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:929:13) E/flutter (21751): #2 _parseJson (dart:convert-patch/convert_patch.dart:40:10) E/flutter (21751): #3 JsonDecoder.convert (dart:convert/json.dart:506:36) E/flutter (21751): #4 JsonCodec.decode (dart:convert/json.dart:157:41) E/flutter (21751): #5 LocaleService.getLocaleContent (package:flutter_translate/src/services/locale_service.dart:50:17) E/flutter (21751): <asynchronous suspension> E/flutter (21751): #6 LocalizationDelegate.changeLocale (package:flutter_translate/src/delegates/localization_delegate.dart:35:9) E/flutter (21751): <asynchronous suspension> E/flutter (21751): #7 changeLocale (package:flutter_translate/src/utils/utils.dart:36:5) E/flutter (21751): <asynchronous suspension> E/flutter (21751):

this the code that i use `import 'package:flutter_translate/flutter_translate.dart'; import 'package:mbpj_irest/constants.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart';

class SettingLanguageSelection extends StatefulWidget { const SettingLanguageSelection({key}) : super(key: key);

@override _SettingLanguageSelectionState createState() => _SettingLanguageSelectionState(); }

class _SettingLanguageSelectionState extends State { @override Widget build(BuildContext context) { Size size = MediaQuery.of(context).size; final languages = { 'en', 'my' }; return Scaffold( appBar: buildAppBar(), body: ListView( children: languages.map((data) { return InkWell( onTap: (){ print(data); changeLocale(context, data.toString()); Navigator.pop(context); }, child: Card( elevation: 4, child: Padding( padding: const EdgeInsets.all(16.0), child: Text(translate('language.name.${data}'), style: TextStyle(fontSize: 22.0),), ), ), );

    }).toList(),
  ),
);

}

AppBar buildAppBar() { return AppBar( title: Text(translate('button.change_language')), backgroundColor: kPrimaryColor, elevation: 0,

);

} }`

bratan commented 2 years ago

There is probably a syntax error in your json file. Make sure the json syntax is correct for your localization files https://jsonlint.com/

mohd-aidi commented 2 years ago

my mistake, my.json have unwanted comma. this behavior not appeared in error stack message.

mohd-aidi commented 2 years ago

There is probably a syntax error in your json file. Make sure the json syntax is correct for your localization files https://jsonlint.com/

yes it is! sorry for newbie mistake.