jonataslaw / get_cli

Official Getx CLI
Apache License 2.0
601 stars 178 forks source link

📝 [Update] Use dots when flattening JSON to a single level and separating keys in `generate locales` #254

Open knottx opened 5 months ago

knottx commented 5 months ago
  1. Use dots when flattening JSON to a single level and separating keys in generate locales
  2. Support JSON key contain dots

This format makes it easier to represent nested structures in a flat key-value pair format.

For example

input: en_US.json

{
  "buttons": {
    "login": "Login",
    "sign_in": "Sign-in",
    "logout": "Logout",
    "sign_in_fb": "Sign-in with Facebook",
    "sign_in_google": "Sign-in with Google",
    "sign_in_apple": "Sign-in with Apple"
  }
}

output:

abstract class AppTranslation {

  static Map<String, Map<String, String>> translations = {
    'en_US' : Locales.en_US,
  };

}
abstract class LocaleKeys {
  static const buttons_login = 'buttons.login';
  static const buttons_sign_in = 'buttons.sign_in';
  static const buttons_logout = 'buttons.logout';
  static const buttons_sign_in_fb = 'buttons.sign_in_fb';
  static const buttons_sign_in_google = 'buttons.sign_in_google';
  static const buttons_sign_in_apple = 'buttons.sign_in_apple';
}

abstract class Locales {
  static const en_US = {
   'buttons.login': 'Login',
   'buttons.sign_in': 'Sign-in',
   'buttons.logout': 'Logout',
   'buttons.sign_in_fb': 'Sign-in with Facebook',
   'buttons.sign_in_google': 'Sign-in with Google',
   'buttons.sign_in_apple': 'Sign-in with Apple',
  };
}
knottx commented 5 months ago

@jonataslaw @CpdnCristiano hope you are both well.