Commit Graph

28 Commits

Author SHA1 Message Date
Tae Hyung Kim
ff838bca89
Add locale-specific DateTime formatting syntax (#129573)
Based on the [message format
syntax](https://unicode-org.github.io/icu/userguide/format_parse/messages/#examples)
for
[ICU4J](https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/MessageFormat.html).
This adds new syntax to the current Flutter messageFormat parser which
should allow developers to add locale-specific date formatting.

## Usage example
```
  "datetimeTest": "Today is {today, date, ::yMd}",
  "@datetimeTest": {
    "placeholders": {
      "today": {
        "description": "The date placeholder",
        "type": "DateTime"
      }
    }
  }
```
compiles to
```
  String datetimeTest(DateTime today) {
    String _temp0 = intl.DateFormat.yMd(localeName).format(today);
    return 'Today is $_temp0';
  }
```

Fixes https://github.com/flutter/flutter/issues/127304.
2023-06-29 09:23:34 -07:00
Tae Hyung Kim
cef4c2aac8
ICU Message Syntax Parser (#112390)
* init

* code generation

* improve syntax error, add tests

* add tests and fix bugs

* code generation fix

* fix all tests :)

* fix bug

* init

* fix all code gen issues

* FIXED ALL TESTS :D

* add license

* remove trailing spaces

* remove print

* tests fix

* specify type annotation

* fix test

* lint

* fix todos

* fix subclass issues

* final fix; flutter gallery runs

* escaping for later pr

* fix comment

* address PR comments

* more

* more descriptive errors

* last fixes
2022-11-05 10:26:46 -07:00
Jonah Williams
9f28b83c19
[flutter_tools] migrate some integration tests to null safety (#103560) 2022-05-13 09:39:10 -07:00
Tarekk Mohamed Abdalla
fae84f6714
[gen_l10n] Add support for adding placeholders inside select (#92753) 2021-11-22 20:08:03 -08:00
Ahmed Ashour
f568d929db
[gen_l10n] Support plurals and selects inside string (#86167) 2021-07-21 12:41:06 -07:00
Hattomo (TomohiroHattori)
08a70e7ac8
Enable avoid_escaping_inner_quotes lint (#81153) 2021-05-19 09:54:02 -07:00
Shi-Hao Hong
16913b07e8
Relands "[gen-l10n] Fixes named and positional parameter issue with NumberFormat when type is specified" (#75346)
*  Added a new template for [NumberFo
rmat] with positional parameter(s)

* 🔨 Renamed [numberFormatTemplate] to [numberFormatNamedTemplate]

* [gen-l10n] Fixed generation error for namedParameters and optionalParameters

* [gen-l10n] Fixed string value generation for optional parameter

* [gen-l10n-test] Added new tests for `decimalPattern`, `percentPattern`, `scientificPattern` and formats with optional parameters.

* 🔨 Removed trailing whitespaces

* 🔨 replaced [_generateStringParameterValue] with [generateString]

* 🔨 Specified variable types in NumberFormat templates.

*  Added a new template for [NumberFo
rmat] with positional parameter(s)

* 🔨 Renamed [numberFormatTemplate] to [numberFormatNamedTemplate]

* [gen-l10n] Fixed generation error for namedParameters and optionalParameters

* [gen-l10n] Fixed string value generation for optional parameter

* [gen-l10n-test] Added new tests for `decimalPattern`, `percentPattern`, `scientificPattern` and formats with optional parameters.

* 🔨 Removed trailing whitespaces

* 🔨 replaced [_generateStringParameterValue] with [generateString]

* 🔨 Specified variable types in NumberFormat templates.

* [gen-l10n]  added test for parameter having special characters in string value.

* Accidental tab added to integration test

Co-authored-by: arish <arishsultan104@gmail.com>
2021-02-04 03:31:22 +08:00
Shi-Hao Hong
c12b53e073
Revert "[gen-l10n] Fixes named and positional parameter issue with NumberFormat when type is specified (#75209)" (#75306)
This reverts commit 917577b808.
2021-02-03 10:32:01 +08:00
Shi-Hao Hong
917577b808
[gen-l10n] Fixes named and positional parameter issue with NumberFormat when type is specified (#75209) 2021-02-02 17:06:05 -08:00
Jonah Williams
74bd7b6f6d
[flutter_tools] opt all flutter tool libraries and tests out of null safety. (#74832)
* opt out the flutter tool

* oops EOF

* fix import

* Update tool_backend.dart

* Update daemon_client.dart

* fix more
2021-01-27 15:17:53 -08:00
Shi-Hao Hong
4996f60b20
[gen_l10n] Fix unintended use of raw string in generateString (#69382)
* Fix failing tests from introducing raw string generation in gen_l10n tool
2020-10-31 19:24:53 +08:00
Shi-Hao Hong
7b0f38b117
Remove intl_translation from tool integration test (#69155) 2020-10-29 14:05:39 -07:00
Jonah Williams
6b444c4dd7
[flutter_tools] standardize patterns for integration.shard (#64980)
Integration tests must only go through the real file system/process manager/platform. The global indirection makes this code harder to understand than if it directly referred to the concrete instances that are being used.

Update the integration shard to use a const instance of a LocalFIleSystem, LocalProcessManager, and LocalPlatform. Remove global usage and apply testWithoutContext.
2020-09-08 15:56:00 -07:00
Jason Simmons
b3f0f092ec
Disable the deferred loading variant of gen_l10n_test (#61912) 2020-07-21 02:18:29 -07:00
Jonah Williams
70b889a9a3
[flutter_tools] reland: integrate l10n tool into hot reload/restart/build (#57510)
Reland: #56167
2020-05-18 12:47:18 -07:00
Jonah Williams
d70d0913b2
Revert "[flutter_tools] integrate l10n tool into build/run (#56167)" (#56800)
This reverts commit f865ac7e25.
2020-05-09 17:50:46 -07:00
Jonah Williams
f865ac7e25
[flutter_tools] integrate l10n tool into build/run (#56167)
* [flutter_tools] integration l10n tool

* add runtime skip to build system

* Update build_system.dart

* add links to issues, comments

* Update packages/flutter_tools/test/general.shard/build_system/build_system_test.dart

Co-authored-by: Shi-Hao Hong <shihaohong@google.com>

* Update packages/flutter_tools/lib/src/build_system/targets/localizations.dart

Co-authored-by: Shi-Hao Hong <shihaohong@google.com>

* Update localizations.dart

* switch to gen_l10n localizations

* fix tests

Co-authored-by: Shi-Hao Hong <shihaohong@google.com>
2020-05-08 12:06:15 -07:00
Shi-Hao Hong
c16c3b0443
[gen_l10n] Expand integration tests (#54314) 2020-04-10 10:25:03 -07:00
Per Classon
4451ffca23
Add option for deferred loading to gen_l10n (#53824) 2020-04-09 03:57:01 -07:00
Shi-Hao Hong
5d63637e43
[gen_l10n] Fallback feature for untranslated messages (#53374)
* Generate methods using template resources if they do not exist in other locales

* Added a flag to either output of messages that have not been translated with detail into a file, or display a summary on the terminal.

* Add integration test for fallback message usage
2020-04-08 18:55:50 -07:00
Per Classon
e8d2907595
[gen_l10n] Handle single, double quotes, and dollar signs in strings (#54185) 2020-04-07 12:21:02 -07:00
Shi-Hao Hong
4e811d2819
[gen_l10n] Fix plural parsing for translated messages (#53954) 2020-04-03 15:46:01 -07:00
Shi-Hao Hong
6837b0e353
[gen_l10n] Add scriptCode handling (#53868)
* [gen_l10n] Add scriptCode handling
2020-04-03 09:46:01 -07:00
Shi-Hao Hong
19e7db585d
[gen_l10n] Escape special JSON characters in generateString utility function (#53605) 2020-04-01 11:16:01 -07:00
Shi-Hao Hong
183da8f837
[gen_l10n] Fix suppportedLocales list (#52448)
* Fix suppportedLocales list

* Refactor integration tests for gen_l10n tool to catch exceptions
2020-03-12 12:58:13 -07:00
Flutter GitHub Bot
9c5009b251
[gen_l10n] Escape quote characters in ARB files (#51952) 2020-03-04 20:41:03 -08:00
Hans Muller
9b3754d56f
Extend the gen_l10n integration test (#51375) 2020-02-24 16:42:30 -08:00
Hans Muller
3f2c6ea724
Integration test for the gen_l10n tool (#49586) 2020-01-29 12:45:03 -08:00