问题标签 [dart-intl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
54 浏览

dart - 如何获得本地化的复数日期部分?

好奇我如何获得任何日期的本地化复数部分。

例如“十月、十一月”或“星期一、星期二”

0 投票
1 回答
329 浏览

dart - Dart intl 如何省略名称和参数

我试图省略将名称和参数传递到Intl.message. Intl文档表明,提供了一个转换器,可以自动为您插入这些参数。

所以我添加了以下内容pubspec.yaml

在我的localization.dart我有以下方法:

当我运行时flutter pub pub run intl_translation:extract_to_arb --output-dir=strings lib/localization.dart,出现以下错误:

我怎样才能启用那个变压器?

0 投票
3 回答
3415 浏览

flutter - 在 Flutter 中使用多个 LocalizationsDelegates

我正面临一个问题,我试图LocalizationsDelegatesMaterialApp.

我正在使用 Dartintl工具为我的标签提供翻译。当我有多个时LocalizationsDelegates,只有指定的第一个获得翻译的值。下一个委托的标签,获取Intl.message()函数中提供的默认值。

简短、独立、正确的例子

在 GitHub 上设置了一个最小项目作为此问题的示例。

代码片段

在 中MaterialApp,我定义了一堆localizationsDelegates,包括两个应用程序特定的:DogLocalizationsDelegateCatLocalizationsDelegate.

代表具有相同的样板代码,但提供不同的标签。这是 theDogLocalizations和它的DogLocalizationsDelegate样子。

它们是相同的CatLocalizations,但带有一个meowString getter。GitHub 项目中的完整示例。

用于生成翻译文件的命令

我正在使用多个提取和生成命令,而不是在一个命令中包含多个文件。这是因为我实际上遇到了一个库(有自己的标签)和该库的消费者(也有自己的标签)的问题。

  1. 提取猫和狗的标签

flutter pub run intl_translation:extract_to_arb --output-dir=lib/cat_labels/gen lib/cat_labels/CatLabels.dart

flutter pub run intl_translation:extract_to_arb --output-dir=lib/dog_labels/gen lib/dog_labels/DogLabels.dart

  1. 翻译生成intl_messages.arb的有两个语言文件

    • intl_en.arb
    • intl_nl.arb 然后将正确的翻译值添加到这些文件中。
  2. 从 ARB 生成 dart 文件

flutter pub run intl_translation:generate_from_arb --output-dir=lib/cat_labels lib/cat_labels/CatLabels.dart lib/cat_labels/gen/intl_*.arb

flutter pub run intl_translation:generate_from_arb --output-dir=lib/dog_labels lib/dog_labels/DogLabels.dart lib/dog_labels/gen/intl_*.arb

问题

在这个演示项目中,代表的顺序如下:

将为bark标签提供翻译,但不为meow标签提供翻译。

切换时:

将为meow标签提供翻译,但不为bark标签提供翻译。

为什么需要多个本地化代表

如果您想知道为什么:我在图书馆和该图书馆的消费者应用程序中使用标签。 重要的是要知道,因此(实际上)不可能在同一个生成器命令中指定两个本地化文件。

0 投票
1 回答
120 浏览

unit-testing - 有没有办法通过 NumberFormat 比较格式化值?

我正在使用intl package last version为货币格式创建单元测试0.16.1。我的格式化程序是:final currencyFormat = NumberFormat.simpleCurrency(locale: 'pt_BR');

我的预期结果是:var expected = r'R$ 1,00';. 1.0我以这种方式将我的格式化程序应用于值:var formatted = currencyFormat.format(1.0)导致R$ 1,00.

当我使用 测试两个值时expect(formatted, expected),它告诉我结果不一样。

好吧,我花了一些时间发现两个字符串的符文有一个字符差异。

预期符文:(82, 36, 32, 49, 44, 48, 48)

格式化符文:(82, 36, 160, 49, 44, 48, 48)

我的问题是:如果在格式化时使用不间断空格,当没有文档谈论它时如何避免这个错误?

0 投票
0 回答
43 浏览

dart - intl DateFormat 解析奇怪的行为

我在某些路由中工作的服务器返回一个带有一个额外数字的日期,这在我们的应用程序中引起了奇怪的行为。然后我将奇怪的行为隔离到以下代码:

产生输出:

为什么额外的数字会带来93 小时的差异?我不明白为什么。

我创建了一个 repl,因此您可以尝试:https ://repl.it/join/jfhehoqt-leonardosilva25

当我尝试快速解析相同的字符串时,它给出的结果与 dart 不同,两个字符串都给了我相同的日期 https://repl.it/join/ncjffdth-leonardosilva25

来自 repl 的原始 swift 代码供参考:

0 投票
1 回答
35 浏览

flutter - 尝试将 DateTime 更改为在 dart 中具有时区格式的字符串时出错

所以我使用国际包。这是我的代码

如您所见,我正在尝试使用"EEEE, d MMMM. HH:mm zzz"格式将 DateTime 作为字符串。所以我希望我会有这样的结果日期字符串:

塞宁,24 岁。西部时间 18:00。

但是每当我有zzz格式时我都会出错。如果我删除zzz它应该没问题。

我想我需要在上面的代码中添加一个 TimeZone ID。因为我在date_format_field.dart文件中有这个未实现的错误

但我不知道如何将 timezoneID 设置为我的代码。我的时区 ID 是“亚洲/雅加达”

如果您有不同的代码或根本不使用 intl 包,我可以。只要我可以指定时区和语言环境 ID

0 投票
1 回答
24 浏览

date - 如何在 DateFormat 中显示时代?

我不是在寻找强大的东西,因为日期格式DateFormat就足够了,但我需要在 Anno Domini 中添加A.DB.C喜欢日期。

现在我知道定制它甚至不是挑战,但我正在寻找使用官方 API 的最佳方法,以便它能够适应未来的变化。

0 投票
1 回答
40 浏览

flutter - Dart 日期格式不一致

我正在尝试解析看起来像这样的日期字符串Feb0920221500(月、月中的日、年、小时、分钟)。但是当我使用MMMddyyyyHmm模式时,我总是得到一个FormatException. 此外intl'sDateFormat无法解析它之前格式化的日期:

输出:

我究竟做错了什么?