Deliver web apps with confidence 🚀
Find a file
Paul Gschwendtner b280b97d5a refactor(common): include locale extra data in closure locale file (#46167)
The recent update to CLDR 41 highlighted (internally) that some time
formats have changed to rely on locale-specific day periods. In
particular the `zh_TW` (or canonical: `zh_Hant`) has changed some
time formats/patterns from the universal `AM/PM` symbols (`a`) to `B`.

The `b`/`B` symbols rely on locale-specific day period rules. This data
is only extracted from CLDR into the so-called extra locale data that
Angular provides.

To fix this, and to be able to reverse the internal workaround that
doesn't allow us to use the actual CLDR 41 data here, we always provide
the locale extra data when conditonally loading CLDR data based on
`goog.LOCALE`.

This will result in additional payload cost that locale-specific JS
bundles have to pay, but the only alternative would be to break
Angular's `b`/`B` symbol support in favor of falling back to `AM/PM`
rules (similar to how Closure Libray itself does it).

For our external users (something I want to note here), they will be
able to load the extra data easily (like it was possible before).
Angular has some good erroring if the extra data is required. Most of
our users will always use the global locale files anyway (the Angular
CLI always uses them). These come with the extra data by default.

Resources:

- 0d538327d1
- 0d538327d1/common/main/zh_Hant.xml
- 6a4353cb40/packages/common/src/i18n/format_date.ts (L609-L639)
- https://cldr.unicode.org/translation/date-time/date-time-symbols
- 4be7cdce82/packages/angular_devkit/build_angular/src/utils/i18n-options.ts (L23)

PR Close #46167
2022-06-07 10:14:14 -07:00
.circleci build: update saucelabs key (#46089) 2022-05-21 20:21:41 +00:00
.devcontainer ci: update default circle ci image to cimg/node:14.17.6 (#43810) 2021-10-12 17:43:15 +00:00
.github ci: github robot should consider closure-locale.ts file as g3-synced file (#46177) 2022-05-31 12:00:16 -07:00
.husky build: remove unnecessary husky gitignore file (#42870) 2021-07-19 17:31:55 -07:00
.ng-dev build: updates to account for github primary branch rename 2022-04-28 11:17:01 -06:00
.vscode docs: added commas to sentences in .vscode/README.md (#43684) 2021-10-21 18:39:58 +00:00
.yarn build: update to yarn v1.22.17 (#44150) 2021-11-15 11:19:05 -08:00
aio docs: mark version 13 as LTS in releases guide (#46268) 2022-06-06 11:48:05 -07:00
devtools feat(devtools): Create browser specific styles for chrome and firefox (#46037) 2022-05-23 14:00:10 -07:00
docs docs: move all bazel testing info to a single location (#46084) 2022-05-23 13:59:05 -07:00
goldens feat(upgrade): more closely align UpgradeModule#bootstrap() with angular.bootstrap() (#46214) 2022-06-03 10:16:05 -07:00
integration test: drop no longer needed postinstall step from integration test apps (#46182) 2022-05-31 12:06:16 -07:00
modules feat(forms): Implement strict types for the Angular Forms package. (#43834) 2022-04-12 17:37:04 +00:00
packages refactor(common): include locale extra data in closure locale file (#46167) 2022-06-07 10:14:14 -07:00
scripts build: fix unbound variable error in build artifact script (#46076) 2022-05-23 13:26:32 -07:00
third_party feat(devtools): support icons in offline mode (#45430) (#45743) 2022-05-12 09:17:05 -07:00
tools build: disable bazel nodejs linker to improve stability on windows (#45872) 2022-05-04 16:20:57 -07:00
.bazelignore refactor(devtools): bring the angular devtools directory into the root bazel workspace 2022-01-26 16:35:31 -05:00
.bazelrc refactor: setup bazel integration test with new integration rule (#44238) 2021-12-08 13:42:41 -05:00
.bazelversion build: update to bazel v5 for new runfiles API used in dev-infra (#45407) 2022-03-21 16:55:36 -07:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.gitattributes build: remove ts-api-guardian from repository (#42735) 2021-07-26 12:02:14 -07:00
.gitignore ci: fix stamping for builds performed in CI (#45147) 2022-02-25 19:14:05 +00:00
.gitmessage build: clean up references to old master branch (#45856) 2022-05-04 16:23:33 -07:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.npmrc build: rely on engines to prevent using npm for dependency install (#41477) 2021-04-07 12:05:01 -07:00
.nvmrc build: update repository to node@16 locally (#44211) 2021-11-24 18:55:33 +00:00
.prettierrc ci: use prettier to format yml files (#42136) 2021-05-19 11:20:20 -07:00
.pullapprove.yml docs: removed outdated migration documentation (#46257) 2022-06-06 11:42:51 -07:00
.yarnrc build: update to yarn v1.22.17 (#44150) 2021-11-15 11:19:05 -08:00
browser-providers.conf.js ci: enable Android 12 for tests on CI (#45926) 2022-05-09 11:26:10 -07:00
BUILD.bazel build: disable bazel nodejs linker to improve stability on windows (#45872) 2022-05-04 16:20:57 -07:00
CHANGELOG.md docs: fix duplicate in CHANGELOG (#46267) 2022-06-06 10:18:32 -07:00
CHANGELOG_ARCHIVE.md docs: move old changelog entries to a separate file (#45638) 2022-04-14 15:01:21 -07:00
CODE_OF_CONDUCT.md docs: add Discord as an official communication channel (#39149) 2020-10-14 10:23:15 -07:00
CONTRIBUTING.md build: clean up references to old master branch (#45856) 2022-05-04 16:23:33 -07:00
gulpfile.js build: convert CLDR locale extraction from Gulp to Bazel tool (#42230) 2021-07-16 12:44:59 -07:00
karma-js.conf.js build: bundle spec files for saucelabs legacy job (#44281) 2021-11-30 11:56:04 -05:00
LICENSE build: bump license year (#44590) 2022-01-04 12:05:25 -08:00
package.json fix(bazel): update API extractor version (#46259) 2022-06-06 10:16:04 -07:00
README.md build: clean up references to old master branch (#45856) 2022-05-04 16:23:33 -07:00
renovate.json build: updates to account for github primary branch rename 2022-04-28 11:17:01 -06:00
test-events.js build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
tsconfig-tslint.json refactor(devtools): run ng-dev format on angular devtools files 2022-01-26 16:35:30 -05:00
tslint.json refactor(devtools): bring the angular devtools directory into the root bazel workspace 2022-01-26 16:35:31 -05:00
WORKSPACE build: update all non-major dependencies (#45967) 2022-05-20 14:18:09 -07:00
yarn.lock build: lock file maintenance (#46270) 2022-06-06 11:46:27 -07:00
yarn.lock.readme.md build: clean up references to old master branch (#45856) 2022-05-04 16:23:33 -07:00

Angular - The modern web developer's platform.

angular-logo
Angular is a development platform for building mobile and desktop web applications
using Typescript/JavaScript and other languages.

www.angular.io

Contributing Guidelines · Submit an Issue · Blog

CI status   Angular on npm   Discord conversation


Documentation

Get started with Angular, learn the fundamentals and explore advanced topics on our documentation website.

Advanced

Development Setup

Prerequisites

Setting Up a Project

Install the Angular CLI globally:

npm install -g @angular/cli

Create workspace:

ng new [PROJECT NAME]

Run the application:

cd [PROJECT NAME]
ng serve

Angular is cross-platform, fast, scalable, has incredible tooling, and is loved by millions.

Quickstart

Get started in 5 minutes.

Ecosystem

angular ecosystem logos

Changelog

Learn about the latest improvements.

Upgrading

Check out our upgrade guide to find out the best way to upgrade your project.

Contributing

Contributing Guidelines

Read through our contributing guidelines to learn about our submission process, coding rules and more.

Want to Help?

Want to report a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues labeled as help wanted or good first issue.

Code of Conduct

Help us keep Angular open and inclusive. Please read and follow our Code of Conduct.

Community

Join the conversation and help the community.

Love Angular badge

Love Angular? Give our repo a star ⬆️.