Flutter 全球材料局部化和颤振局部化的意义是什么?

Flutter 全球材料局部化和颤振局部化的意义是什么?,flutter,Flutter,缔约国声明如下: 要添加对其他语言的支持,应用程序必须指定其他MaterialApp属性,并包含一个名为Flatter_localizations的单独包 但是,我不明白flatter_本地化的意义是什么,如果我想添加对其他语言的支持,为什么我必须[…]将其包括在我的应用程序中 如果我看一看,这就是Flatter_本地化显然与Widget和Cupertino版本一起添加的内容,我只能找到一堆看似随机的字符串,我从未见过这些字符串被翻译成一堆语言。 我从未在我的颤振应用程序中见过这些字符串 如果我

缔约国声明如下:

要添加对其他语言的支持,应用程序必须指定其他MaterialApp属性,并包含一个名为Flatter_localizations的单独包

但是,我不明白flatter_本地化的意义是什么,如果我想添加对其他语言的支持,为什么我必须[…]将其包括在我的应用程序中

如果我看一看,这就是Flatter_本地化显然与Widget和Cupertino版本一起添加的内容,我只能找到一堆看似随机的字符串,我从未见过这些字符串被翻译成一堆语言。 我从未在我的颤振应用程序中见过这些字符串

如果我想国际化我的应用程序,我真的需要包括flatter_本地化吗?例如,默认情况下,这些字符串是否在任何地方使用?

实际上没有

这取决于您想要如何实现国际化

您可以通过以下方式获取当前本地数据: ///因为颤振问题 /// https://github.com/flutter/flutter/issues/38323 ///所以返回'locals[1]`而不是'window.locale'; var locals=window.locales; var local=locals.length>1?locals[1]:window.locale; 当前颤振定位的好处 我认为这个库的好处是它还可以处理

相反 如果只需要处理字符串的翻译,则无需处理文本方向LTRLEFT到右侧或rtlright到左侧:

您可以通过上面返回的值来处理字符串:

abstract class Strings {
  String hello;
  factory Strings() // => instance;
  {
    var locals = window.locales;
    var local = (locals.length > 1) ? locals[1] : window.locale;
    if (local != null) {
      // log('Strings.load(${local.languageCode})');

      if (local.languageCode == 'zh') {
        return _StringsZH.instance;
      }
    }
    return _StringsEN.instance;
  }
}

class _StringsEN implements Strings {
  String hello = 'Hello 2019';
  _StringsEN._();
  static _StringsEN instance = _StringsEN._();
}
class _StringsZH implements Strings {
  String hello = '你好 2019';
  _StringsZH._();
  static _StringsZH instance = _StringsZH._();
}
像这样使用它

你好,;