[英]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.