簡體   English   中英

Flutter 本地化與 json 文件中的動態字符串

[英]Flutter localization with dynamic strings in json files

Flutter 本地化:我們是否可以使用 json 語言文件而不是 using.arb 文件直接替換字符串中的一些正則表達式模式以獲得動態字符串,以避免使用.arb 的這么多開銷? 這種直接替換和使用而不是 arb & Intl 庫的方法有什么限制嗎?

"gd_morning": "Good Morning {name}",

AppLocalizations.of(context)
                .get('gd_morning')
                .replaceAll('{name}', 'My Name'),

是的,這是可能的。 試試這個。
這假設您的 json 內容類似於"gd_morning": "Good Morning {0}"例如

String translate(String key, {List<dynamic> args}) {
  if (null == _translatedStrings[key]) return "${locale.languageCode}[$key]";
  _translatedKey = _translatedStrings[key];
  if (null == args || args.isEmpty) return _translatedKey;
  else {
    for(int i = 0; i < args.length; ++i) _translatedKey = _translatedKey.replaceAll("{$i}", args[i]);
    return _translatedKey;
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM