Repository: kazupon/vue-i18n
Branch: v8.x
Commit: 76ab980d32a3
Files: 556
Total size: 5.2 MB
Directory structure:
gitextract_4s507kkn/
├── .babelrc
├── .dependabot/
│ └── config.yml
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .flowconfig
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug-report.yml
│ │ ├── config.yml
│ │ └── feature_request.yml
│ └── workflows/
│ ├── ci.yml
│ └── release.yml
├── .gitignore
├── .mergify.yml
├── .npmignore
├── BACKERS.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── SECURITY.md
├── assets/
│ └── README.md
├── config/
│ ├── .eslintrc.js
│ ├── banner.js
│ ├── build.js
│ ├── bundle.js
│ ├── entry.js
│ ├── karma-intl-plugin.js
│ ├── karma.base.conf.js
│ ├── karma.cover.conf.js
│ ├── karma.sauce.conf.js
│ ├── karma.unit.ci.conf.js
│ ├── karma.unit.conf.js
│ ├── nightwatch.conf.js
│ ├── version.js
│ └── webpack.dev.conf.js
├── decls/
│ ├── i18n.js
│ └── module.js
├── dist/
│ ├── README.md
│ ├── vue-i18n.common.js
│ ├── vue-i18n.esm.browser.js
│ ├── vue-i18n.esm.js
│ └── vue-i18n.js
├── docs/
│ ├── 404.html
│ ├── api/
│ │ └── index.html
│ ├── assets/
│ │ ├── css/
│ │ │ └── 0.styles.c299b601.css
│ │ └── js/
│ │ ├── 10.13689381.js
│ │ ├── 11.aa13f293.js
│ │ ├── 12.2b21ead8.js
│ │ ├── 13.b3706367.js
│ │ ├── 14.1819508a.js
│ │ ├── 15.12152ec7.js
│ │ ├── 16.c251473e.js
│ │ ├── 17.311179bd.js
│ │ ├── 18.a9d0f1d4.js
│ │ ├── 19.d0288f09.js
│ │ ├── 2.aa910774.js
│ │ ├── 20.9de38e10.js
│ │ ├── 21.65715f7c.js
│ │ ├── 22.7b59f449.js
│ │ ├── 23.11ece4c3.js
│ │ ├── 24.dffd1071.js
│ │ ├── 25.97b69148.js
│ │ ├── 26.616f0814.js
│ │ ├── 27.adf21b94.js
│ │ ├── 28.6bf6d42b.js
│ │ ├── 29.e8b42909.js
│ │ ├── 3.5e63523d.js
│ │ ├── 30.24889fb9.js
│ │ ├── 31.57bd94a5.js
│ │ ├── 32.14dc9bdc.js
│ │ ├── 33.4d59e7bf.js
│ │ ├── 34.adc9b2af.js
│ │ ├── 35.4e6e5ad7.js
│ │ ├── 36.7b1eb244.js
│ │ ├── 37.6584773d.js
│ │ ├── 38.7879de31.js
│ │ ├── 39.f7496f35.js
│ │ ├── 4.9735c0af.js
│ │ ├── 40.b5b5dc72.js
│ │ ├── 41.638a9c02.js
│ │ ├── 42.222a2780.js
│ │ ├── 43.b28cd4fc.js
│ │ ├── 44.67f64685.js
│ │ ├── 45.550cbef0.js
│ │ ├── 46.5ab1c570.js
│ │ ├── 47.d7b6ca42.js
│ │ ├── 48.185bface.js
│ │ ├── 49.1570bc72.js
│ │ ├── 5.0b14e886.js
│ │ ├── 50.0e187269.js
│ │ ├── 51.c993f5c3.js
│ │ ├── 52.d66b2adb.js
│ │ ├── 53.21ae73c5.js
│ │ ├── 54.cd4c9ca8.js
│ │ ├── 55.caa71074.js
│ │ ├── 56.c8f906b3.js
│ │ ├── 57.388c89dc.js
│ │ ├── 58.ad6e14bc.js
│ │ ├── 59.3d64068b.js
│ │ ├── 6.b88753f1.js
│ │ ├── 60.12bfe8e9.js
│ │ ├── 61.446dac92.js
│ │ ├── 62.88ef088f.js
│ │ ├── 63.b6e0a846.js
│ │ ├── 64.f3210fad.js
│ │ ├── 65.afac79e3.js
│ │ ├── 66.d403fc3a.js
│ │ ├── 67.0bffd98a.js
│ │ ├── 7.eaeacaf7.js
│ │ ├── 8.344bd519.js
│ │ ├── 9.ec02aae8.js
│ │ └── app.5b04e7b0.js
│ ├── guide/
│ │ ├── component.html
│ │ ├── datetime.html
│ │ ├── directive.html
│ │ ├── fallback.html
│ │ ├── formatting.html
│ │ ├── hot-reload.html
│ │ ├── interpolation.html
│ │ ├── lazy-loading.html
│ │ ├── locale.html
│ │ ├── messages.html
│ │ ├── number.html
│ │ ├── pluralization.html
│ │ ├── sfc.html
│ │ └── tooling.html
│ ├── index.html
│ ├── installation.html
│ ├── introduction.html
│ ├── legacy/
│ │ ├── index.html
│ │ └── v5.html
│ ├── ru/
│ │ ├── api/
│ │ │ └── index.html
│ │ ├── guide/
│ │ │ ├── component.html
│ │ │ ├── datetime.html
│ │ │ ├── directive.html
│ │ │ ├── fallback.html
│ │ │ ├── formatting.html
│ │ │ ├── hot-reload.html
│ │ │ ├── interpolation.html
│ │ │ ├── lazy-loading.html
│ │ │ ├── locale.html
│ │ │ ├── messages.html
│ │ │ ├── number.html
│ │ │ ├── pluralization.html
│ │ │ ├── sfc.html
│ │ │ └── tooling.html
│ │ ├── index.html
│ │ ├── installation.html
│ │ ├── introduction.html
│ │ ├── legacy/
│ │ │ ├── index.html
│ │ │ └── v5.html
│ │ └── started.html
│ ├── started.html
│ └── zh/
│ ├── api/
│ │ └── index.html
│ ├── guide/
│ │ ├── component.html
│ │ ├── datetime.html
│ │ ├── directive.html
│ │ ├── fallback.html
│ │ ├── formatting.html
│ │ ├── hot-reload.html
│ │ ├── interpolation.html
│ │ ├── lazy-loading.html
│ │ ├── locale.html
│ │ ├── messages.html
│ │ ├── number.html
│ │ ├── pluralization.html
│ │ ├── sfc.html
│ │ └── tooling.html
│ ├── index.html
│ ├── installation.html
│ ├── introduction.html
│ ├── legacy/
│ │ ├── index.html
│ │ └── v5.html
│ └── started.html
├── examples/
│ ├── .eslintrc.js
│ ├── component/
│ │ └── index.html
│ ├── datetime/
│ │ └── index.html
│ ├── directive/
│ │ └── index.html
│ ├── es-modules/
│ │ └── index.html
│ ├── formatting/
│ │ ├── custom/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── babel.config.js
│ │ │ ├── package.json
│ │ │ ├── public/
│ │ │ │ └── index.html
│ │ │ └── src/
│ │ │ ├── App.vue
│ │ │ ├── formatter.js
│ │ │ ├── i18n.js
│ │ │ └── main.js
│ │ ├── escape-parameter-html/
│ │ │ └── index.html
│ │ ├── html/
│ │ │ └── index.html
│ │ ├── html-warning/
│ │ │ └── index.html
│ │ ├── list/
│ │ │ └── index.html
│ │ ├── named/
│ │ │ └── index.html
│ │ └── rails/
│ │ └── index.html
│ ├── hot/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── babel.config.js
│ │ ├── package.json
│ │ ├── public/
│ │ │ └── index.html
│ │ └── src/
│ │ ├── App.vue
│ │ ├── components/
│ │ │ └── HelloWorld.vue
│ │ ├── i18n.js
│ │ ├── locales/
│ │ │ ├── en.json
│ │ │ └── ja.json
│ │ └── main.js
│ ├── integration/
│ │ └── contentful/
│ │ ├── .contentful.sample.json
│ │ ├── .editorconfig
│ │ ├── .eslintrc.js
│ │ ├── .gitignore
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── WHATS-NEXT.md
│ │ ├── assets/
│ │ │ └── README.md
│ │ ├── bin/
│ │ │ └── download-content-model.js
│ │ ├── components/
│ │ │ ├── README.md
│ │ │ ├── article-preview.vue
│ │ │ ├── language-header.vue
│ │ │ └── navigation.vue
│ │ ├── docs/
│ │ │ └── GETTING-STARTED.md
│ │ ├── layouts/
│ │ │ ├── README.md
│ │ │ └── default.vue
│ │ ├── locales/
│ │ │ ├── en-US.json
│ │ │ └── ja.json
│ │ ├── middleware/
│ │ │ └── README.md
│ │ ├── nuxt.config.js
│ │ ├── package.json
│ │ ├── pages/
│ │ │ ├── README.md
│ │ │ ├── blog/
│ │ │ │ ├── _slug.vue
│ │ │ │ └── index.vue
│ │ │ ├── index.vue
│ │ │ └── tags/
│ │ │ └── _tag.vue
│ │ ├── plugins/
│ │ │ ├── README.md
│ │ │ ├── contentful.js
│ │ │ └── i18n.js
│ │ ├── static/
│ │ │ └── README.md
│ │ └── store/
│ │ └── README.md
│ ├── interpolation/
│ │ ├── places/
│ │ │ └── index.html
│ │ └── slots/
│ │ └── index.html
│ ├── module/
│ │ ├── nuxt/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── assets/
│ │ │ │ └── README.md
│ │ │ ├── components/
│ │ │ │ ├── Logo.vue
│ │ │ │ └── README.md
│ │ │ ├── layouts/
│ │ │ │ ├── README.md
│ │ │ │ └── default.vue
│ │ │ ├── locales/
│ │ │ │ ├── en.json
│ │ │ │ └── ja.json
│ │ │ ├── middleware/
│ │ │ │ └── README.md
│ │ │ ├── nuxt.config.js
│ │ │ ├── package.json
│ │ │ ├── pages/
│ │ │ │ ├── README.md
│ │ │ │ └── index.vue
│ │ │ ├── plugins/
│ │ │ │ └── README.md
│ │ │ ├── static/
│ │ │ │ └── README.md
│ │ │ └── store/
│ │ │ └── README.md
│ │ ├── rollup/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── dist/
│ │ │ │ └── index.html
│ │ │ ├── package.json
│ │ │ ├── rollup.config.js
│ │ │ └── src/
│ │ │ ├── App.vue
│ │ │ └── index.js
│ │ └── webpack/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── babel.config.js
│ │ ├── package.json
│ │ ├── public/
│ │ │ └── index.html
│ │ ├── src/
│ │ │ ├── App.vue
│ │ │ └── main.js
│ │ └── vue.config.js
│ ├── number/
│ │ └── index.html
│ ├── number-formatting/
│ │ └── index.html
│ ├── perf/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── compiler/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── babel.config.js
│ │ │ ├── package.json
│ │ │ ├── public/
│ │ │ │ └── index.html
│ │ │ ├── src/
│ │ │ │ ├── App.vue
│ │ │ │ └── main.js
│ │ │ └── vue.config.js
│ │ ├── directive/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── babel.config.js
│ │ │ ├── package.json
│ │ │ ├── public/
│ │ │ │ └── index.html
│ │ │ ├── src/
│ │ │ │ ├── App.vue
│ │ │ │ └── main.js
│ │ │ └── vue.config.js
│ │ ├── generate/
│ │ │ └── .gitkeep
│ │ ├── index.js
│ │ ├── method/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── babel.config.js
│ │ │ ├── package.json
│ │ │ ├── public/
│ │ │ │ └── index.html
│ │ │ ├── src/
│ │ │ │ ├── App.vue
│ │ │ │ └── main.js
│ │ │ └── vue.config.js
│ │ ├── package.json
│ │ └── plain/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── babel.config.js
│ │ ├── package.json
│ │ ├── public/
│ │ │ └── index.html
│ │ ├── src/
│ │ │ ├── App.vue
│ │ │ └── main.js
│ │ └── vue.config.js
│ ├── sfc/
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── babel.config.js
│ │ ├── package.json
│ │ ├── public/
│ │ │ └── index.html
│ │ ├── src/
│ │ │ ├── App.vue
│ │ │ └── main.js
│ │ └── vue.config.js
│ ├── ssr/
│ │ ├── hn2/
│ │ │ ├── .babelrc
│ │ │ ├── .gitignore
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── build/
│ │ │ │ ├── setup-dev-server.js
│ │ │ │ ├── vue-loader.config.js
│ │ │ │ ├── webpack.base.config.js
│ │ │ │ ├── webpack.client.config.js
│ │ │ │ └── webpack.server.config.js
│ │ │ ├── manifest.json
│ │ │ ├── package.json
│ │ │ ├── server.js
│ │ │ └── src/
│ │ │ ├── App.vue
│ │ │ ├── api/
│ │ │ │ ├── create-api-client.js
│ │ │ │ ├── create-api-server.js
│ │ │ │ └── index.js
│ │ │ ├── app.js
│ │ │ ├── components/
│ │ │ │ ├── Comment.vue
│ │ │ │ ├── Item.vue
│ │ │ │ ├── ProgressBar.vue
│ │ │ │ └── Spinner.vue
│ │ │ ├── entry-client.js
│ │ │ ├── entry-server.js
│ │ │ ├── i18n/
│ │ │ │ ├── en-US.json
│ │ │ │ ├── index.js
│ │ │ │ └── ja-JP.json
│ │ │ ├── index.template.html
│ │ │ ├── router/
│ │ │ │ └── index.js
│ │ │ ├── store/
│ │ │ │ ├── actions.js
│ │ │ │ ├── getters.js
│ │ │ │ ├── index.js
│ │ │ │ └── mutations.js
│ │ │ ├── util/
│ │ │ │ ├── filters.js
│ │ │ │ └── title.js
│ │ │ ├── util.js
│ │ │ └── views/
│ │ │ ├── CreateListView.js
│ │ │ ├── ItemList.vue
│ │ │ ├── ItemView.vue
│ │ │ └── UserView.vue
│ │ └── nuxt/
│ │ ├── .editorconfig
│ │ ├── .eslintrc.js
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── assets/
│ │ │ └── README.md
│ │ ├── components/
│ │ │ ├── Logo.vue
│ │ │ └── README.md
│ │ ├── layouts/
│ │ │ ├── README.md
│ │ │ └── default.vue
│ │ ├── locales/
│ │ │ ├── en.json
│ │ │ └── ja.json
│ │ ├── middleware/
│ │ │ └── README.md
│ │ ├── nuxt.config.js
│ │ ├── package.json
│ │ ├── pages/
│ │ │ ├── README.md
│ │ │ └── index.vue
│ │ ├── plugins/
│ │ │ ├── README.md
│ │ │ └── i18n.js
│ │ ├── static/
│ │ │ └── README.md
│ │ └── store/
│ │ └── README.md
│ ├── started/
│ │ └── index.html
│ └── storybook/
│ ├── .babelrc
│ ├── .gitignore
│ ├── .storybook/
│ │ ├── addons.js
│ │ └── config.js
│ ├── README.md
│ ├── index.html
│ ├── package.json
│ ├── src/
│ │ ├── App.vue
│ │ ├── main.js
│ │ └── stories/
│ │ ├── MyButton.vue
│ │ ├── Welcome.vue
│ │ └── index.js
│ └── webpack.config.js
├── gitbook/
│ ├── LANGS.md
│ ├── book.json
│ ├── en/
│ │ ├── SUMMARY.md
│ │ ├── api.md
│ │ ├── component.md
│ │ ├── datetime.md
│ │ ├── directive.md
│ │ ├── fallback.md
│ │ ├── formatting.md
│ │ ├── gotchas.md
│ │ ├── hot-reload.md
│ │ ├── installation.md
│ │ ├── interpolation.md
│ │ ├── lazy-loading.md
│ │ ├── messages.md
│ │ ├── migrations.md
│ │ ├── number.md
│ │ ├── pluralization.md
│ │ ├── sfc.md
│ │ └── started.md
│ └── old/
│ └── README.md
├── package.json
├── scripts/
│ ├── docs-deploy.sh
│ └── remove.sh
├── ship.config.js
├── src/
│ ├── components/
│ │ ├── interpolation.js
│ │ └── number.js
│ ├── directive.js
│ ├── extend.js
│ ├── format.js
│ ├── index.js
│ ├── install.js
│ ├── mixin.js
│ ├── path.js
│ └── util.js
├── test/
│ ├── .eslintrc.js
│ ├── e2e/
│ │ ├── runner.js
│ │ └── test/
│ │ ├── component.js
│ │ ├── datetime.js
│ │ ├── directive.js
│ │ ├── formatting_html.js
│ │ ├── formatting_list.js
│ │ ├── formatting_named.js
│ │ ├── formatting_rails.js
│ │ ├── interpolation.js
│ │ ├── number.js
│ │ ├── number_formatting.js
│ │ └── started.js
│ ├── helpers/
│ │ ├── entry.js
│ │ ├── imports.js
│ │ └── util.js
│ └── unit/
│ ├── basic.test.js
│ ├── component.test.js
│ ├── custom_blocks.test.js
│ ├── datetime.test.js
│ ├── directive.test.js
│ ├── escape_parameter_html.test.js
│ ├── fallback.test.js
│ ├── fixture/
│ │ ├── datetime.js
│ │ ├── index.js
│ │ └── number.js
│ ├── format.test.js
│ ├── format_custom.test.js
│ ├── index.html
│ ├── index.js
│ ├── interpolation.test.js
│ ├── issues.test.js
│ ├── message.test.js
│ ├── message_function.test.js
│ ├── missing.test.js
│ ├── mixin.test.js
│ ├── number.test.js
│ ├── number_component.test.js
│ ├── path.test.js
│ ├── post_translation.test.js
│ ├── silent.test.js
│ └── warn_html_in_message.test.js
├── types/
│ ├── .eslintrc.js
│ ├── index.d.ts
│ ├── test/
│ │ ├── component.ts
│ │ └── index.ts
│ └── tsconfig.json
├── vetur/
│ ├── attributes.json
│ └── tags.json
└── vuepress/
├── .vuepress/
│ ├── components/
│ │ └── sponsor-button.vue
│ ├── config.js
│ └── theme/
│ ├── Layout.vue
│ ├── components/
│ │ └── CarbonAds.vue
│ └── index.js
├── README.md
├── api/
│ └── README.md
├── guide/
│ ├── component.md
│ ├── datetime.md
│ ├── directive.md
│ ├── fallback.md
│ ├── formatting.md
│ ├── hot-reload.md
│ ├── interpolation.md
│ ├── lazy-loading.md
│ ├── locale.md
│ ├── messages.md
│ ├── number.md
│ ├── pluralization.md
│ ├── sfc.md
│ └── tooling.md
├── installation.md
├── introduction.md
├── pt/
│ ├── README.md
│ ├── api/
│ │ └── README.md
│ ├── guide/
│ │ ├── component.md
│ │ ├── datetime.md
│ │ ├── directive.md
│ │ ├── fallback.md
│ │ ├── formatting.md
│ │ ├── hot-reload.md
│ │ ├── interpolation.md
│ │ ├── lazy-loading.md
│ │ ├── locale.md
│ │ ├── messages.md
│ │ ├── number.md
│ │ ├── pluralization.md
│ │ ├── sfc.md
│ │ └── tooling.md
│ ├── installation.md
│ ├── introduction.md
│ └── started.md
├── ru/
│ ├── README.md
│ ├── api/
│ │ └── README.md
│ ├── guide/
│ │ ├── component.md
│ │ ├── datetime.md
│ │ ├── directive.md
│ │ ├── fallback.md
│ │ ├── formatting.md
│ │ ├── hot-reload.md
│ │ ├── interpolation.md
│ │ ├── lazy-loading.md
│ │ ├── locale.md
│ │ ├── messages.md
│ │ ├── number.md
│ │ ├── pluralization.md
│ │ ├── sfc.md
│ │ └── tooling.md
│ ├── installation.md
│ ├── introduction.md
│ └── started.md
├── started.md
└── zh/
├── README.md
├── api/
│ └── README.md
├── guide/
│ ├── component.md
│ ├── datetime.md
│ ├── directive.md
│ ├── fallback.md
│ ├── formatting.md
│ ├── hot-reload.md
│ ├── interpolation.md
│ ├── lazy-loading.md
│ ├── locale.md
│ ├── messages.md
│ ├── number.md
│ ├── pluralization.md
│ ├── sfc.md
│ └── tooling.md
├── installation.md
├── introduction.md
└── started.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .babelrc
================================================
{
"presets": ["@vue/app"],
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-syntax-flow",
"@babel/plugin-transform-flow-strip-types",
"babel-plugin-espower"
],
"env": {
"test": {
"plugins": ["istanbul"],
"presets": ["power-assert"]
}
},
"ignore": [
"dist/*.js"
]
}
================================================
FILE: .dependabot/config.yml
================================================
version: 1
update_configs:
- package_manager: "javascript"
directory: "/"
update_schedule: "weekly"
================================================
FILE: .editorconfig
================================================
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
================================================
FILE: .eslintignore
================================================
config/*.js
================================================
FILE: .eslintrc.js
================================================
module.exports = {
root: true,
parserOptions: {
ecmaVersion: 2018,
},
plugins: ['flowtype', 'ie11', 'no-autofix'],
extends: [
'plugin:flowtype/recommended'
],
rules: {
'ie11/no-collection-args': [ 'error' ],
'ie11/no-for-in-const': [ 'error' ],
'ie11/no-loop-func': [ 'warn' ],
'ie11/no-weak-collections': [ 'error' ],
'prefer-const': 'off',
'no-autofix/prefer-const': 'warn',
'object-curly-spacing': ['error', 'always'],
'no-multiple-empty-lines': ['error', { max: 2, maxBOF: 1 }]
}
}
================================================
FILE: .flowconfig
================================================
[ignore]
.*/node_modules/.*
.*/docs/.*
.*/test/.*
.*/types/.*
.*/config/.*
.*/examples/.*
[include]
[libs]
decls
[options]
unsafe.enable_getters_and_setters=true
suppress_comment= \\(.\\|\n\\)*\\$FlowFixMe
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: kazupon
patreon: # kazupon
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
issuehunt: # kazupon
custom: # Replace with a single custom sponsorship URL
================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.yml
================================================
name: "\U0001F41E Bug report"
description: Report an issue
labels: ['Status: Review Needed']
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: bug-description
attributes:
label: Reporting a bug?
description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us in the description. Thanks!
placeholder: Bug description
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
placeholder: Expected behavior
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction
description: |
Please provide a link to a repo that can reproduce the problem you ran into. https://jsfiddle.net/kazupon/rn724baz/3/ A reproduction is required unless you are absolutely sure that the issue is obvious and the provided information is enough to understand the problem. If a report is vague (e.g. just a generic error message) and has no reproduction, it will receive a "Status: Need More Info" label. If no reproduction is provided after 5 days, it will be closed.
placeholder: Reproduction
validations:
required: true
- type: textarea
id: system-info
attributes:
label: System Info
description: Output of `npx envinfo --system --npmPackages '{vue*,@vue/*,vue-i18n*,@intlify/*,vite*,@vitejs/*}' --binaries --browsers`
render: shell
placeholder: System, Binaries, Browsers
validations:
required: true
- type: textarea
id: screenshot
attributes:
label: Screenshot
description: If applicable, add screenshots to help explain your problem
placeholder: screnshot
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Add any other context about the problem here
placeholder: more context here
- type: checkboxes
id: checkboxes
attributes:
label: Validations
description: Before submitting the issue, please make sure you do the following
options:
- label: Read the [Contributing Guidelines](https://github.com/kazupon/vue-i18n/blob/v8.x/CONTRIBUTING.md)
required: true
- label: Read the [Documentation](https://kazupon.github.io/vue-i18n/)
required: true
- label: Check that there isn't [already an issue](https://github.com/kazupon/vue-i18n/issues) that reports the same bug to avoid creating a duplicate.
required: true
- label: Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/kazupon/vue-i18n/discussions)
required: true
- label: The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
- name: Discord Chat at Vue Land
url: https://chat.vuejs.org/
about: For simple beginner questions, you can get quick answers from Discord
- name: Questions & Discussions
url: https://github.com/kazupon/vue-i18n/discussions
about: Use GitHub discussions for message-board style questions and discussions.
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: "\U0001F680 New feature proposal"
description: Propose a new feature
labels: ['Status: Proposal']
body:
- type: markdown
attributes:
value: |
Thanks for your interest in the project and taking the time to fill out this feature report!
- type: textarea
id: feature-description
attributes:
label: Clear and concise description of the problem
description: If you intend to submit a PR for this issue, tell us in the description. Thanks!
validations:
required: true
- type: textarea
id: suggested-solution
attributes:
label: Suggested solution
description: 'In module [xy] we could provide following implementation...'
validations:
required: true
- type: textarea
id: alternative
attributes:
label: Alternative
description: Clear and concise description of any alternative solutions or features you've considered.
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Any other context or screenshots about the feature request here.
- type: checkboxes
id: checkboxes
attributes:
label: Validations
description: Before submitting the issue, please make sure you do the following
options:
- label: Read the [Contributing Guidelines](https://github.com/kazupon/vue-i18n/blob/v8.x/CONTRIBUTING.md)
required: true
- label: Read the [Documentation](https://kazupon.github.io/vue-i18n/)
required: true
- label: Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
required: true
================================================
FILE: .github/workflows/ci.yml
================================================
name: Test
on:
push:
branches-ignore:
- gh-pages
- releases/**
pull_request:
branches-ignore:
- gh-pages
- releases/**
types:
- opened
- synchronize
- reopened
env:
CI: true
TZ: Asia/Tokyo
CHROME_BIN: /usr/bin/google-chrome
jobs:
build:
name: "Build on Node.js ${{ matrix.node }} OS: ${{matrix.os}}"
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [18]
steps:
- name: Checkout codes
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node}}
cache: 'yarn'
- name: Install
run: yarn install --frozen-lockfile
- name: Build
run: yarn build
- name: Cache dist
uses: actions/cache@v3
with:
path: dist
key: ${{ matrix.os }}-node-v${{ matrix.node }}-${{ github.sha }}
lint:
name: "Lint on Node.js ${{ matrix.node }} OS: ${{matrix.os}}"
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [18]
steps:
- name: Checkout codes
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: 'yarn'
- name: Install
run: yarn install --frozen-lockfile
- name: Lint
run: yarn lint
test:
needs:
- build
name: "Test on Node.js ${{ matrix.node }} OS: ${{matrix.os}}"
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [18]
steps:
- name: Setup google chrome
uses: browser-actions/setup-chrome@latest
with:
chrome-version: stable
- run: chrome --version
- name: Setup firefox
uses: browser-actions/setup-firefox@latest
with:
firefox-version: latest
- run: firefox --version
- name: Checkout codes
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: 'yarn'
- name: Install
run: yarn install --frozen-lockfile
- name: Flow Types
run: yarn flow
- name: TS Types
run: yarn test:types
- name: Test Coverage
run: yarn test:cover
- name: Unit tests
run: yarn test:unit:ci
- name: Restore dist cache
uses: actions/cache@v3
with:
path: dist
key: ${{ matrix.os }}-node-v${{ matrix.node }}-${{ github.sha }}
- name: E2E Tests
run: xvfb-run --auto-servernum yarn test:e2e
================================================
FILE: .github/workflows/release.yml
================================================
name: Release
on:
pull_request:
types:
- closed
jobs:
release:
name: Release
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'release')
runs-on: Ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
registry-url: "https://registry.npmjs.org"
- run: git switch master
- run: |
if [ -f "yarn.lock" ]; then
yarn install
else
npm install
fi
- run: npm run release:trigger
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
SLACK_INCOMING_HOOK: ${{ secrets.SLACK_INCOMING_HOOK }}
================================================
FILE: .gitignore
================================================
lib
coverage
dist/*.gz
docs/_book
test/e2e/report
test/e2e/screenshots
node_modules
vuepress/.vuepress/dist
.DS_Store
.idea
.vscode
.env
*.log
*.swp
*~
================================================
FILE: .mergify.yml
================================================
pull_request_rules:
- name: merge pull requests from dependabot if CI passes
conditions:
- author=dependabot[bot]
- status-success=ci/circleci
actions:
merge:
method: merge
================================================
FILE: .npmignore
================================================
.*
*.log
*.swp
*.yml
coverage
docs/_book
config
dist/*.map
lib
test
================================================
FILE: BACKERS.md
================================================
# Backers
You can join them in supporting vue-i18n & Intlify project development by [pledging on GitHub](https://github.com/sponsors/kazupon)! Backers in the same pledge level appear in the order of pledge date.
Platinum Sponsors
Special Sponsors
Gold Sponsors
[It could be you!](https://www.patreon.com/bePatron?c=1597144&patAmt=500.0)
Sliver Sponsors
[It could be you!](https://www.patreon.com/bePatron?c=1597144&patAmt=250.0)
Bronze Sponsors
- [Illyism](https://github.com/Illyism)
[It could be you!](https://www.patreon.com/bePatron?c=1597144&patAmt=100.0)
Awesome Supporters
- [Shinya Katayama](https://github.com/ktsn)
- [Jeffrey Rennie](https://github.com/surferjeff)
[It could be you!](https://www.patreon.com/bePatron?c=1597144&patAmt=20.0)
================================================
FILE: CHANGELOG.md
================================================
## v8.28.2 (2022-10-31)
#### :bug: Bug Fixes
* [#1575](https://github.com/kazupon/vue-i18n/pull/1575) fix(datetime): fixing calender typo ([@MKhasib](https://github.com/MKhasib))
#### Committers: 1
- Majd Khasib ([@MKhasib](https://github.com/MKhasib))
## v8.28.1 (2022-10-31)
#### :zap: Improved Features
* [#1572](https://github.com/kazupon/vue-i18n/pull/1572) fix(datetime): support all key format object (kazupon#1571) ([@majdkhasib](https://github.com/majdkhasib))
#### Committers: 1
- [@majdkhasib](https://github.com/majdkhasib)
## v8.28.0 (2022-10-30)
#### :star: New Features
* [#1569](https://github.com/kazupon/vue-i18n/pull/1569) fix(datetime): $d supports key format object (#1502) ([@horitaka](https://github.com/horitaka))
#### Committers: 1
- [@horitaka](https://github.com/horitaka)
## v8.27.2 (2022-06-20)
#### :bug: Bug Fixes
* [#1512](https://github.com/kazupon/vue-i18n/pull/1512) Allow modifiers names in pascalCase ([@nofacez](https://github.com/nofacez))
#### :pencil: Documentation
* [#1505](https://github.com/kazupon/vue-i18n/pull/1505) Update interpolation.md ([@victor1014](https://github.com/victor1014))
#### Committers: 2
- Mikhail ([@nofacez](https://github.com/nofacez))
- Victor ([@victor1014](https://github.com/victor1014))
## v8.27.1 (2022-03-29)
#### :zap: Improved Features
* [#1488](https://github.com/kazupon/vue-i18n/pull/1488) Allow colon in locale message keys used in linked locale messages ([@ax-jmckenzie](https://github.com/ax-jmckenzie))
#### :pencil: Documentation
* [#1462](https://github.com/kazupon/vue-i18n/pull/1462) Restrict version to 8 for installing npm package ([@arpi17](https://github.com/arpi17))
#### Committers: 2
- James McKenzie ([@ax-jmckenzie](https://github.com/ax-jmckenzie))
- Árpád Illyés ([@arpi17](https://github.com/arpi17))
## v8.27.0 (2022-01-21)
#### :star: New Features
* [#1441](https://github.com/kazupon/vue-i18n/pull/1441) feat: add a new option fallbackRootWithEmptyString ([@PeterAlfredLee](https://github.com/PeterAlfredLee))
#### Committers: 1
- Lee ([@PeterAlfredLee](https://github.com/PeterAlfredLee))
## v8.26.8 (2021-12-28)
#### :zap: Improved Features
* [#1429](https://github.com/kazupon/vue-i18n/pull/1429) improvement: type definition order for vue-i18n-bridge integration ([@kazupon](https://github.com/kazupon))
#### :pencil: Documentation
* [#1416](https://github.com/kazupon/vue-i18n/pull/1416) Update links to i18n Ally in tooling docs ([@FloEdelmann](https://github.com/FloEdelmann))
#### Committers: 2
- Flo Edelmann ([@FloEdelmann](https://github.com/FloEdelmann))
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.26.7 (2021-11-02)
#### :bug: Bug Fixes
* [#1411](https://github.com/kazupon/vue-i18n/pull/1411) fix: cannot work watchLocale on vue-i18n-bridge ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.26.6 (2021-11-02)
#### :zap: Improved Features
* [#1409](https://github.com/kazupon/vue-i18n/pull/1409) improvement: notify locale changing to composer ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.26.5 (2021-10-01)
#### :zap: Improved Features
* [#1396](https://github.com/kazupon/vue-i18n/pull/1396) Revert "improvement: $i18n property deinition for vue-i18n-bridge" ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.26.4 (2021-10-01)
#### :zap: Improved Features
* [#1394](https://github.com/kazupon/vue-i18n/pull/1394) improvement: $i18n property deinition for vue-i18n-bridge ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.26.3 (2021-09-30)
#### :zap: Improved Features
* [#1392](https://github.com/kazupon/vue-i18n/pull/1392) improvement: vue-i18n-loader bridge mode ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.26.2 (2021-09-28)
#### :zap: Improved Features
* [#1390](https://github.com/kazupon/vue-i18n/pull/1390) improvement: add flags for vue-i18n-bridge ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.26.1 (2021-09-23)
#### :zap: Improved Features
* [#1388](https://github.com/kazupon/vue-i18n/pull/1388) feat: add sync property ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.26.0 (2021-09-22)
#### :star: New Features
* [#1385](https://github.com/kazupon/vue-i18n/pull/1385) feat: support for vue-i18n-bridge ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.25.1 (2021-09-13)
#### :bug: Bug Fixes
* [#1381](https://github.com/kazupon/vue-i18n/pull/1381) fix: linked messages containing slash symbol ([@Lamberthassel](https://github.com/Lamberthassel))
#### :lock: Security Fixes
* [#1353](https://github.com/kazupon/vue-i18n/pull/1353) build(deps): [security] bump tar from 6.0.2 to 6.1.3 ([@dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
#### :pencil: Documentation
* [#1323](https://github.com/kazupon/vue-i18n/pull/1323) Added version notice for custom pluralizations ([@ingria](https://github.com/ingria))
#### Committers: 3
- Igor Nabebin ([@Lamberthassel](https://github.com/Lamberthassel))
- Ingria ([@ingria](https://github.com/ingria))
- [@dependabot-preview[bot]](https://github.com/apps/dependabot-preview)
## v8.25.0 (2021-07-16)
#### :star: New Features
* [#1271](https://github.com/kazupon/vue-i18n/pull/1271) feat: Added linked, locale, formatter, values, path to MessageContext ([@fabis94](https://github.com/fabis94))
#### :bug: Bug Fixes
* [#1321](https://github.com/kazupon/vue-i18n/pull/1321) fix broken mergeLocaleMessage ([@phonezawphyo](https://github.com/phonezawphyo))
#### Committers: 3
- [@dependabot-preview[bot]](https://github.com/apps/dependabot-preview)
- [@fabis94](https://github.com/fabis94)
- [@phonezawphyo](https://github.com/phonezawphyo)
## v8.24.5 (2021-06-19)
#### :bug: Bug Fixes
* [#1278](https://github.com/kazupon/vue-i18n/pull/1278) fix: Ensure that the order at desroy is the same as before change to `Set` from `Array` ([@kazupon](https://github.com/kazupon))
#### :zap: Improved Features
* [#1194](https://github.com/kazupon/vue-i18n/pull/1194) fix: add locale arg type i18n.n method type signature ([@alireza4050](https://github.com/alireza4050))
#### :pencil: Documentation
* [#1273](https://github.com/kazupon/vue-i18n/pull/1273) docs(api:zh): update the Chinese docs of "API" ([@baboon-king](https://github.com/baboon-king))
* [#1267](https://github.com/kazupon/vue-i18n/pull/1267) Documentation - Update @kazupon/vue-i18n-loader to @intlify/vue-i18n-loader ([@fbigand](https://github.com/fbigand))
* [#1258](https://github.com/kazupon/vue-i18n/pull/1258) Grammar fix for Installing vue-i18n-loader ([@TerabyteTiger](https://github.com/TerabyteTiger))
#### Committers: 5
- Alireza Asgharizadeh ([@alireza4050](https://github.com/alireza4050))
- BaboonKing ([@baboon-king](https://github.com/baboon-king))
- Tyler V ([@TerabyteTiger](https://github.com/TerabyteTiger))
- [@fbigand](https://github.com/fbigand)
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.24.4 (2021-04-28)
#### :bug: Bug Fixes
* [#1192](https://github.com/kazupon/vue-i18n/pull/1192) Revert "fix: i18n reference to root causes memory leak (#1044)" ([@kazupon](https://github.com/kazupon))
#### Committers: 2
- Alexander Sokolov ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.24.3 (2021-04-09)
#### :bug: Bug Fixes
* [#1175](https://github.com/kazupon/vue-i18n/pull/1175) [perf] Use Set so lookup of _dataListeners can be O(1) ([@exoego](https://github.com/exoego))
#### :chart_with_upwards_trend: Performance Fixes
* [#1175](https://github.com/kazupon/vue-i18n/pull/1175) [perf] Use Set so lookup of _dataListeners can be O(1) ([@exoego](https://github.com/exoego))
#### Committers: 1
- TATSUNO Yasuhiro ([@exoego](https://github.com/exoego))
## v8.24.2 (2021-03-23)
#### :bug: Bug Fixes
* [#1151](https://github.com/kazupon/vue-i18n/pull/1151) fix: i18n reference to root causes memory leak (#1044) ([@lzxb](https://github.com/lzxb))
#### :pencil: Documentation
* [#1152](https://github.com/kazupon/vue-i18n/pull/1152) $tc return type ([@Glandos](https://github.com/Glandos))
#### Committers: 2
- Glandos ([@Glandos](https://github.com/Glandos))
- 狼族小狈 ([@lzxb](https://github.com/lzxb))
## v8.24.1 (2021-03-11)
#### :bug: Bug Fixes
* [#1145](https://github.com/kazupon/vue-i18n/pull/1145) Allowing paths to be null for lookups. ([@martinheidegger](https://github.com/martinheidegger))
#### Committers: 1
- Martin Heidegger ([@martinheidegger](https://github.com/martinheidegger))
## v8.24.0 (2021-03-08)
#### :star: New Features
* [#1139](https://github.com/kazupon/vue-i18n/pull/1139) experimental: add meta info for intlify tools ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.23.0 (2021-02-24)
#### :zap: Improved Features
* [#1118](https://github.com/kazupon/vue-i18n/pull/1118) Fix wrong LocaleMatcher type for TS 4.2 ('best-fit' to 'best fit'). ([@mpawelski](https://github.com/mpawelski))
#### :pencil: Documentation
* [#1124](https://github.com/kazupon/vue-i18n/pull/1124) Add documentation for directive `choice` argument ([@Gameghostify](https://github.com/Gameghostify))
* [#1114](https://github.com/kazupon/vue-i18n/pull/1114) Update tooling.md ([@fanlinqiang](https://github.com/fanlinqiang))
* [#1104](https://github.com/kazupon/vue-i18n/pull/1104) Documentation improvemation ([@lucasferreiralimax](https://github.com/lucasferreiralimax))
#### Committers: 4
- Lucas ([@lucasferreiralimax](https://github.com/lucasferreiralimax))
- Mariusz Pawelski ([@mpawelski](https://github.com/mpawelski))
- [@Gameghostify](https://github.com/Gameghostify)
- [@fanlinqiang](https://github.com/fanlinqiang)
## v8.22.4 (2021-01-16)
#### :chart_with_upwards_trend: Performance Fixes
* [#1101](https://github.com/kazupon/vue-i18n/pull/1101) Improve performance of mergeLocaleMessage (#1099) ([@cslee](https://github.com/cslee))
#### Committers: 2
- Eric Lee ([@cslee](https://github.com/cslee))
- Lucas ([@lucasferreiralimax](https://github.com/lucasferreiralimax))
## v8.22.3 (2021-01-08)
#### :zap: Improved Features
* [#1096](https://github.com/kazupon/vue-i18n/pull/1096) @types: Fixed too narrow option types in n() and d() methods ([@gehlert](https://github.com/gehlert))
#### Committers: 3
- MASONGZHI ([@masongzhi](https://github.com/masongzhi))
- TATSUNO Yasuhiro ([@exoego](https://github.com/exoego))
- [@gehlert](https://github.com/gehlert)
## v8.22.2 (2020-11-18)
#### :bug: Bug Fixes
* [#1048](https://github.com/kazupon/vue-i18n/pull/1048) fix: number format keys missing compared the Intl.Number object ([@jevillard](https://github.com/jevillard))
#### Committers: 2
- Alexander Sokolov ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
- Jérémy Villard ([@jevillard](https://github.com/jevillard))
## v8.22.1 (2020-10-19)
#### :boom: Breaking Change
* [#1020](https://github.com/kazupon/vue-i18n/pull/1020) escapeParameterHtml flag: Don't escape ampersand #1019 ([@gardarh](https://github.com/gardarh))
#### Committers: 1
- Gardar Hauksson ([@gardarh](https://github.com/gardarh))
## v8.22.0 (2020-10-06)
#### :star: New Features
* [#1009](https://github.com/kazupon/vue-i18n/pull/1009) Add escapeParameterHtml parameter. #1002 ([@gardarh](https://github.com/gardarh))
#### :bug: Bug Fixes
* [#1003](https://github.com/kazupon/vue-i18n/pull/1003) Bugfix in index.js: wrong if condition in fetchChoice ([@cimchd](https://github.com/cimchd))
#### Committers: 4
- Andreas ([@devmount](https://github.com/devmount))
- Gardar Hauksson ([@gardarh](https://github.com/gardarh))
- Raffaele Pizzari ([@pixari](https://github.com/pixari))
- [@cimchd](https://github.com/cimchd)
## v8.21.1 (2020-09-11)
#### :bug: Bug Fixes
* [#995](https://github.com/kazupon/vue-i18n/pull/995) Update mixin.js ([@ferencbeutel4711](https://github.com/ferencbeutel4711))
#### Committers: 1
- Ferenc Beutel ([@ferencbeutel4711](https://github.com/ferencbeutel4711))
## v8.21.0 (2020-08-13)
#### :star: New Features
* [#972](https://github.com/kazupon/vue-i18n/pull/972) feat: message function ([@kazupon](https://github.com/kazupon))
#### :pencil: Documentation
* [#961](https://github.com/kazupon/vue-i18n/pull/961) Update link to Formatter Interface ([@JohJohan](https://github.com/JohJohan))
#### Committers: 3
- Alexander Sokolov ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
- Johan ([@JohJohan](https://github.com/JohJohan))
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.20.0 (2020-07-30)
#### :star: New Features
* [#959](https://github.com/kazupon/vue-i18n/pull/959) i18n-n component local components passing ([@kazupon](https://github.com/kazupon))
* [#928](https://github.com/kazupon/vue-i18n/pull/928) :zap: improvement(interpolation): enable passage of local components to tag prop ([@vhoyer](https://github.com/vhoyer))
#### Committers: 2
- Vinícius Hoyer ([@vhoyer](https://github.com/vhoyer))
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.19.0 (2020-07-25)
#### :star: New Features
* [#942](https://github.com/kazupon/vue-i18n/pull/942) Add vetur support for tags and attributes ([@phiter](https://github.com/phiter))
#### :pencil: Documentation
* [#925](https://github.com/kazupon/vue-i18n/pull/925) Added missing quote ([@fschlag](https://github.com/fschlag))
* [#921](https://github.com/kazupon/vue-i18n/pull/921) Add lost pluralizationRules option to documentation ([@AleksandrSl](https://github.com/AleksandrSl))
* [#920](https://github.com/kazupon/vue-i18n/pull/920) Make link to API and Guide top level ([@AleksandrSl](https://github.com/AleksandrSl))
#### Committers: 3
- Aleksandr ([@AleksandrSl](https://github.com/AleksandrSl))
- Florian Schlag ([@fschlag](https://github.com/fschlag))
- Phiter Fernandes ([@phiter](https://github.com/phiter))
## v8.18.2 (2020-06-08)
#### :zap: Improved Features
* [#917](https://github.com/kazupon/vue-i18n/pull/917) fix: improve IVueI18n interface ([@kazupon](https://github.com/kazupon))
#### :pencil: Documentation
* [#902](https://github.com/kazupon/vue-i18n/pull/902) docs: [RU] Translation update ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
* [#901](https://github.com/kazupon/vue-i18n/pull/901) docs: (zh) inverse $d $n ([@stan-chen](https://github.com/stan-chen))
#### Committers: 4
- Alexander Sokolov ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
- Rafał Chłodnicki ([@rchl](https://github.com/rchl))
- Stanley Chen ([@stan-chen](https://github.com/stan-chen))
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.18.1 (2020-05-27)
#### :bug: Bug Fixes
* [#896](https://github.com/kazupon/vue-i18n/pull/896) Fix flow types and enable flow types testing on CI ([@rchl](https://github.com/rchl))
#### Committers: 1
- Rafał Chłodnicki ([@rchl](https://github.com/rchl))
## v8.18.0 (2020-05-26)
#### :star: New Features
* [#892](https://github.com/kazupon/vue-i18n/pull/892) Add onComponentInstanceCreated constructor option ([@rchl](https://github.com/rchl))
#### :zap: Improved Features
* [#890](https://github.com/kazupon/vue-i18n/pull/890) chore: set up linting for typescript definitions ([@rchl](https://github.com/rchl))
#### Committers: 1
- Rafał Chłodnicki ([@rchl](https://github.com/rchl))
## v8.17.7 (2020-05-19)
#### :bug: Bug Fixes
* [#882](https://github.com/kazupon/vue-i18n/pull/882) fix v-t pluralisation when choice is 0 ([@mikejacoutot](https://github.com/mikejacoutot))
#### Committers: 1
- [@mikejacoutot](https://github.com/mikejacoutot)
## v8.17.6 (2020-05-15)
#### :bug: Bug Fixes
* [#880](https://github.com/kazupon/vue-i18n/pull/880) Don't delete _i18n in beforeDestroy ([@danimoh](https://github.com/danimoh))
#### :zap: Improved Features
* [#878](https://github.com/kazupon/vue-i18n/pull/878) Allow component interpolation without root element ([@danimoh](https://github.com/danimoh))
#### :pencil: Documentation
* [#875](https://github.com/kazupon/vue-i18n/pull/875) Add new 3rd party tool ([@danigayosog](https://github.com/danigayosog))
* [#872](https://github.com/kazupon/vue-i18n/pull/872) docs: fixes ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
* [#871](https://github.com/kazupon/vue-i18n/pull/871) update pluralization.md ([@Timibadass](https://github.com/Timibadass))
#### Committers: 4
- Alexander Sokolov ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
- Daniel ([@danigayosog](https://github.com/danigayosog))
- Timi Omoyeni ([@Timibadass](https://github.com/Timibadass))
- [@danimoh](https://github.com/danimoh)
## v8.17.5 (2020-05-10)
#### :bug: Bug Fixes
* [#869](https://github.com/kazupon/vue-i18n/pull/869) fix: not string method access error ([@kazupon](https://github.com/kazupon))
#### :pencil: Documentation
* [#867](https://github.com/kazupon/vue-i18n/pull/867) docs: [RU] Translation ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
* [#865](https://github.com/kazupon/vue-i18n/pull/865) improvement(docs): extend Hot reloading section ([@caugner](https://github.com/caugner))
#### Committers: 3
- Alexander Sokolov ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
- Claas Augner ([@caugner](https://github.com/caugner))
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.17.4 (2020-04-26)
#### :bug: Bug Fixes
* [#859](https://github.com/kazupon/vue-i18n/pull/859) fix datetime format cache ([@kazupon](https://github.com/kazupon))
* [#858](https://github.com/kazupon/vue-i18n/pull/858) fix datetime and number format fallbacking ([@kazupon](https://github.com/kazupon))
* [#857](https://github.com/kazupon/vue-i18n/pull/857) fix: alternative array includes ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.17.3 (2020-04-19)
#### :zap: Improved Features
* [#846](https://github.com/kazupon/vue-i18n/pull/846) add key to postTranslation ([@dmitryuk](https://github.com/dmitryuk))
#### :pencil: Documentation
* [#847](https://github.com/kazupon/vue-i18n/pull/847) docs: Update /api/README.md ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
#### Committers: 2
- Alexander Dmitryuk ([@dmitryuk](https://github.com/dmitryuk))
- Alexander Sokolov ([@Alex-Sokolov](https://github.com/Alex-Sokolov))
## v8.17.2 (2020-04-18)
#### :zap: Improved Features
* [#844](https://github.com/kazupon/vue-i18n/pull/844) Use plain object instead of Map, which is not supported in IE9/10 ([@exoego](https://github.com/exoego))
#### Committers: 1
- TATSUNO Yasuhiro ([@exoego](https://github.com/exoego))
## v8.17.1 (2020-04-16)
#### :bug: Bug Fixes
* [#840](https://github.com/kazupon/vue-i18n/pull/840) fix: altnative endsWidth ([@kazupon](https://github.com/kazupon))
#### :pencil: Documentation
* [#837](https://github.com/kazupon/vue-i18n/pull/837) Fix typo ([@ninofiliu](https://github.com/ninofiliu))
#### Committers: 2
- Nino Filiu ([@ninofiliu](https://github.com/ninofiliu))
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.17.0 (2020-04-11)
#### :star: New Features
* [#829](https://github.com/kazupon/vue-i18n/pull/829) #138 Fallback Locale as array for cascading fallbacks ([@mmokross](https://github.com/mmokross))
#### :pencil: Documentation
* [#834](https://github.com/kazupon/vue-i18n/pull/834) Add capitalize default modifier in doc ([@alexandreDavid](https://github.com/alexandreDavid))
* [#832](https://github.com/kazupon/vue-i18n/pull/832) fix in examples of "Custom pluralization" ([@Perlover](https://github.com/Perlover))
#### Committers: 4
- Alexandre David ([@alexandreDavid](https://github.com/alexandreDavid))
- Kobayashi Kazuhiro ([@kzhrk](https://github.com/kzhrk))
- Michael Mokroß ([@mmokross](https://github.com/mmokross))
- Perlover ([@Perlover](https://github.com/Perlover))
## v8.16.0 (2020-03-27)
#### :star: New Features
* [#822](https://github.com/kazupon/vue-i18n/pull/822) post translation hooking feature ([@kazupon](https://github.com/kazupon))
#### Committers: 1
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## v8.15.7 (2020-03-25)
#### :bug: Bug Fixes
* [#819](https://github.com/kazupon/vue-i18n/pull/819) Fixed bug when changing number format runtime ([@slischka](https://github.com/slischka))
#### Committers: 1
- Jiří Slischka ([@slischka](https://github.com/slischka))
## v8.15.6 (2020-03-23)
#### :bug: Bug Fixes
* [#817](https://github.com/kazupon/vue-i18n/pull/817) Bugfix : 'setLocaleMessage' / 'mergeLocaleMessage' doesn't work if 'warnHtmlInMessage' is set to 'error' ([@aym3nb](https://github.com/aym3nb))
#### :pencil: Documentation
* [#816](https://github.com/kazupon/vue-i18n/pull/816) Update fallback.md ([@scoutrul](https://github.com/scoutrul))
#### Committers: 3
- Anton ([@scoutrul](https://github.com/scoutrul))
- Aymen Bareche ([@aym3nb](https://github.com/aym3nb))
- TATSUNO Yasuhiro ([@exoego](https://github.com/exoego))
## v8.15.5 (2020-03-07)
#### :star: Features
* [#787](https://github.com/kazupon/vue-i18n/pull/787) Add a 'capitalize' default modifier for linked message ([@charlesmass](https://github.com/charlesmass))
#### :zap: Improvement Features
* [#794](https://github.com/kazupon/vue-i18n/pull/794) Support returning 'string' type for customized interpolation ([@sihyeonn](https://github.com/sihyeonn))
#### :pencil: Documentation
* [#791](https://github.com/kazupon/vue-i18n/pull/791) Revise fallback.md ([@jlebar](https://github.com/jlebar))
#### Committers: 4
- Justin Lebar ([@jlebar](https://github.com/jlebar))
- L M ([@charlesmass](https://github.com/charlesmass))
- Sihyeon Jang ([@sihyeonn](https://github.com/sihyeonn))
- kazuya kawaguchi ([@kazupon](https://github.com/kazupon))
## [8.15.4](https://github.com/kazupon/vue-i18n/compare/v8.15.3...v8.15.4) (2020-02-25)
### :bug: Bug Fixes
* **index:** improve formatFallbackMessages code (#779) (#783) by [@masongzhi](https://github.com/masongzhi) ([53895b9](https://github.com/kazupon/vue-i18n/commit/53895b9)))
### :up: Updates
* some fixes ([8a9a950](https://github.com/kazupon/vue-i18n/commit/8a9a950))
## [8.15.3](https://github.com/kazupon/vue-i18n/compare/v8.15.2...v8.15.3) (2019-12-18)
### :zap: Improvements
* **index:** fix mergeLocaleMessage. add changes notification on merging with an empty target object ([#752](https://github.com/kazupon/vue-i18n/issues/752)) by [@jekill](https://github.com/jekill) ([048eac5](https://github.com/kazupon/vue-i18n/commit/048eac5)), closes [#752](https://github.com/kazupon/vue-i18n/issues/752)
## [8.15.2](https://github.com/kazupon/vue-i18n/compare/v8.15.1...v8.15.2) (2019-12-18)
### :bug: Bug Fixes
* **index:** Fix exception when using unit number formatting by [@simonjodet](https://github.com/simonjodet) ([194b801](https://github.com/kazupon/vue-i18n/commit/194b801)), closes [#750](https://github.com/kazupon/vue-i18n/issues/750) [#751](https://github.com/kazupon/vue-i18n/issues/751)
## [8.15.1](https://github.com/kazupon/vue-i18n/compare/v8.15.0...v8.15.1) (2019-11-27)
### :zap: Improvements
* **mixin:** change to custom blocks parse error ([a9858be](https://github.com/kazupon/vue-i18n/commit/a9858be))
# [8.15.0](https://github.com/kazupon/vue-i18n/compare/v8.14.1...v8.15.0) (2019-10-16)
### :star: New Features
* Add constructor option for custom modifiers ([#724](https://github.com/kazupon/vue-i18n/issues/724)) by [@epaezrubio](https://github.com/epaezrubio) ([3217212](https://github.com/kazupon/vue-i18n/commit/3217212)), closes [#724](https://github.com/kazupon/vue-i18n/issues/724)
## [8.14.1](https://github.com/kazupon/vue-i18n/compare/v8.14.0...v8.14.1) (2019-09-12)
### :bug: Bug Fixes
* **path:** fix branket key error ([8d2aba7](https://github.com/kazupon/vue-i18n/commit/8d2aba7))
* **component:** Fix interpolation component when there are empty text nodes ([547cdd1](https://github.com/kazupon/vue-i18n/commit/547cdd1)) by [@Demivan](https://github.com/Demivan)
# [8.14.0](https://github.com/kazupon/vue-i18n/compare/v8.13.0...v8.14.0) (2019-08-12)
### :star: New Features
* fallback formatting ([#637](https://github.com/kazupon/vue-i18n/issues/637)) by [@sebwas](https://github.com/sebwas) ([bf9929c](https://github.com/kazupon/vue-i18n/commit/bf9929c)), closes [#637](https://github.com/kazupon/vue-i18n/issues/637)
* support slots syntax for component interpolation ([#685](https://github.com/kazupon/vue-i18n/issues/685)) by [@aavondet](https://github.com/aavondet) ([71ca843](https://github.com/kazupon/vue-i18n/commit/71ca843)), closes [#685](https://github.com/kazupon/vue-i18n/issues/685)
# [8.13.0](https://github.com/kazupon/vue-i18n/compare/v8.12.0...v8.13.0) (2019-08-09)
### :star: New Features
* datetime/number formats fallback warning filter ([46de19e](https://github.com/kazupon/vue-i18n/commit/46de19e)), closes [#558](https://github.com/kazupon/vue-i18n/issues/558)
* fallback translation warning filter ([69fc798](https://github.com/kazupon/vue-i18n/commit/69fc798))
* translation missing warning filter ([666dc9d](https://github.com/kazupon/vue-i18n/commit/666dc9d))
# [8.12.0](https://github.com/kazupon/vue-i18n/compare/v8.11.2...v8.12.0) (2019-07-09)
### :star: New Features
* **mixin:** shared locale messages feature ([82543de](https://github.com/kazupon/vue-i18n/commit/82543de))
### :zap: Improvements
* **typing:** sharedMessages option type ([6967a15](https://github.com/kazupon/vue-i18n/commit/6967a15))
## [8.11.2](https://github.com/kazupon/vue-i18n/compare/v8.11.1...v8.11.2) (2019-04-30)
### :bug: Bug Fixes
* bug(mixin): fix SSR memory leak by moving subscribeDataChanging calls into beforeMount ([#572](https://github.com/kazupon/vue-i18n/issues/572)) by [@Pindar](https://github.com/Pindar) ([32b5795](https://github.com/kazupon/vue-i18n/commit/32b5795)), closes [#572](https://github.com/kazupon/vue-i18n/issues/572)
## [8.11.1](https://github.com/kazupon/vue-i18n/compare/v8.11.0...v8.11.1) (2019-04-26)
### :bug: Bug Fixes
* fix ES Modules distribution ([bb631a1](https://github.com/kazupon/vue-i18n/commit/bb631a1))
# [8.11.0](https://github.com/kazupon/vue-i18n/compare/v8.10.0...v8.11.0) (2019-04-26)
### :star: New Features
* ES modules for browser ([#561](https://github.com/kazupon/vue-i18n/issues/561)) ([c9b9adf](https://github.com/kazupon/vue-i18n/commit/c9b9adf)), closes [#561](https://github.com/kazupon/vue-i18n/issues/561)
* HTML locale message warning option ([#567](https://github.com/kazupon/vue-i18n/issues/567)) ([4aecf03](https://github.com/kazupon/vue-i18n/commit/4aecf03)), closes [#567](https://github.com/kazupon/vue-i18n/issues/567)
# [8.10.0](https://github.com/kazupon/vue-i18n/compare/v8.9.0...v8.10.0) (2019-03-28)
### :star: New Features
* **number:** i18n-n functional component ([#541](https://github.com/kazupon/vue-i18n/issues/541)) by [@bponomarenko](https://github.com/bponomarenko) ([b33579d](https://github.com/kazupon/vue-i18n/commit/b33579d)), closes [#541](https://github.com/kazupon/vue-i18n/issues/541)
* **path:** Keypath should parse if sub path contains spaces. ([#533](https://github.com/kazupon/vue-i18n/issues/533)) by [@exoego](https://github.com/exoego) ([640daaf](https://github.com/kazupon/vue-i18n/commit/640daaf)), closes [#533](https://github.com/kazupon/vue-i18n/issues/533)
### :zap: Improvements
* **number:** support data fall through in i18n-n ([#545](https://github.com/kazupon/vue-i18n/issues/545)) ([71cadbf](https://github.com/kazupon/vue-i18n/commit/71cadbf)), closes [#545](https://github.com/kazupon/vue-i18n/issues/545)
### :pencil: docs
* **vuepress:** translate documents for chinese ([#536](https://github.com/kazupon/vue-i18n/issues/536)) by [@xuhongbo](https://github.com/xuhongbo) ([ccf29f8](https://github.com/kazupon/vue-i18n/commit/ccf29f8)), closes [#536](https://github.com/kazupon/vue-i18n/issues/536) [#531](https://github.com/kazupon/vue-i18n/issues/531) [#1](https://github.com/kazupon/vue-i18n/issues/1) [#533](https://github.com/kazupon/vue-i18n/issues/533) [#540](https://github.com/kazupon/vue-i18n/issues/540) [#541](https://github.com/kazupon/vue-i18n/issues/541) [#1](https://github.com/kazupon/vue-i18n/issues/1) [#2](https://github.com/kazupon/vue-i18n/issues/2)
# [8.9.0](https://github.com/kazupon/vue-i18n/compare/v8.8.2...v8.9.0) (2019-03-08)
### :bug: Bug Fixes
* **index:** Fix [#515](https://github.com/kazupon/vue-i18n/issues/515) empty string not returning true ([#525](https://github.com/kazupon/vue-i18n/issues/525)) by [@kimuraz](https://github.com/kimuraz) ([396c5ca](https://github.com/kazupon/vue-i18n/commit/396c5ca)), closes [#515](https://github.com/kazupon/vue-i18n/issues/515) [#525](https://github.com/kazupon/vue-i18n/issues/525) [#515](https://github.com/kazupon/vue-i18n/issues/515)
### :star: New Features
* **index:** add availableLocales (related issue [#193](https://github.com/kazupon/vue-i18n/issues/193), PR [#528](https://github.com/kazupon/vue-i18n/issues/528)) by [@exoego](https://github.com/exoego) ([8f75b1f](https://github.com/kazupon/vue-i18n/commit/8f75b1f)), closes [#193](https://github.com/kazupon/vue-i18n/issues/193) [#528](https://github.com/kazupon/vue-i18n/issues/528) [#193](https://github.com/kazupon/vue-i18n/issues/193) [#193](https://github.com/kazupon/vue-i18n/issues/193) [#193](https://github.com/kazupon/vue-i18n/issues/193) [#193](https://github.com/kazupon/vue-i18n/issues/193)
### :zap: Improvements
* **flowtype:** Fix missing type declarations in flow type ([#529](https://github.com/kazupon/vue-i18n/issues/529)) by [@exoego](https://github.com/exoego) ([4173764](https://github.com/kazupon/vue-i18n/commit/4173764)), closes [#529](https://github.com/kazupon/vue-i18n/issues/529)
## [8.8.2](https://github.com/kazupon/vue-i18n/compare/v8.8.1...v8.8.2) (2019-02-17)
### :bug: Bug Fixes
* **mixin:** fix memory leak ([135058d](https://github.com/kazupon/vue-i18n/commit/135058d)), closes [#514](https://github.com/kazupon/vue-i18n/issues/514)
## [8.8.1](https://github.com/kazupon/vue-i18n/compare/v8.8.0...v8.8.1) (2019-02-10)
### :bug: Bug Fixes
* **index:** fixed [#478](https://github.com/kazupon/vue-i18n/issues/478) ([#518](https://github.com/kazupon/vue-i18n/issues/518)) by [@stroncium](https://github.com/stroncium) ([469edd9](https://github.com/kazupon/vue-i18n/commit/469edd9)), closes [#478](https://github.com/kazupon/vue-i18n/issues/478) [#518](https://github.com/kazupon/vue-i18n/issues/518) [#478](https://github.com/kazupon/vue-i18n/issues/478)
### :zap: Improvements
* **flowtype:** update typings ([44e04e7](https://github.com/kazupon/vue-i18n/commit/44e04e7))
* **typescript:** update typings ([dee35b9](https://github.com/kazupon/vue-i18n/commit/dee35b9))
# [8.8.0](https://github.com/kazupon/vue-i18n/compare/v8.7.0...v8.8.0) (2019-01-29)
### :bug: Bug Fixes
* **index:** fix flat path based key issue ([bed9c39](https://github.com/kazupon/vue-i18n/commit/bed9c39)), closes [#349](https://github.com/kazupon/vue-i18n/issues/349)
* **mixin:** fix beforeDestroy can not find this.$t ([#500](https://github.com/kazupon/vue-i18n/issues/500)) by [@masongzhi](https://github.com/masongzhi) ([311b8f3](https://github.com/kazupon/vue-i18n/commit/311b8f3)), closes [#500](https://github.com/kazupon/vue-i18n/issues/500)
### :zap: Improvements
* **directive:** Fix typo on warning message ([#509](https://github.com/kazupon/vue-i18n/issues/509)) by [@kimuraz](https://github.com/kimuraz) ([e879024](https://github.com/kazupon/vue-i18n/commit/e879024)), closes [#509](https://github.com/kazupon/vue-i18n/issues/509)
* **index:** silence fallback warnings ([#510](https://github.com/kazupon/vue-i18n/issues/510)) by [@SzNagyMisu](https://github.com/SzNagyMisu) ([ddc0c79](https://github.com/kazupon/vue-i18n/commit/ddc0c79)), closes [#510](https://github.com/kazupon/vue-i18n/issues/510) [#139](https://github.com/kazupon/vue-i18n/issues/139)
# [8.7.0](https://github.com/kazupon/vue-i18n/compare/v8.6.0...v8.7.0) (2019-01-02)
### :zap: Improvements
* **directive:** Preserve directive content ([#495](https://github.com/kazupon/vue-i18n/issues/495)) by [@bponomarenko](https://github.com/bponomarenko) ([c29edba](https://github.com/kazupon/vue-i18n/commit/c29edba)), closes [#495](https://github.com/kazupon/vue-i18n/issues/495) [#408](https://github.com/kazupon/vue-i18n/issues/408) [#408](https://github.com/kazupon/vue-i18n/issues/408)
# [8.6.0](https://github.com/kazupon/vue-i18n/compare/v8.5.0...v8.6.0) (2018-12-25)
### :bug: Bug Fixes
* **pluralization:** inherit pluralization rules ⚠ ([#493](https://github.com/kazupon/vue-i18n/issues/493)) by [@Raiondesu](https://github.com/Raiondesu) ([7a23f32](https://github.com/kazupon/vue-i18n/commit/7a23f32)), closes [#493](https://github.com/kazupon/vue-i18n/issues/493)
### :zap: Improvements
* **format:** Add the path as argument to the custom formatter ([#489](https://github.com/kazupon/vue-i18n/issues/489)) by [@Raiondesu](https://github.com/Raiondesu) ([b9437ea](https://github.com/kazupon/vue-i18n/commit/b9437ea)), closes [#489](https://github.com/kazupon/vue-i18n/issues/489) [#484](https://github.com/kazupon/vue-i18n/issues/484) [#484](https://github.com/kazupon/vue-i18n/issues/484)
# [8.5.0](https://github.com/kazupon/vue-i18n/compare/v8.4.0...v8.5.0) (2018-12-17)
### :bug: Bug Fixes
* **index:** evaluate availabilities lazily (fix [#477](https://github.com/kazupon/vue-i18n/issues/477)) ([#483](https://github.com/kazupon/vue-i18n/issues/483)) by [@gamtiq](https://github.com/gamtiq) ([b66f02e](https://github.com/kazupon/vue-i18n/commit/b66f02e)), closes [#477](https://github.com/kazupon/vue-i18n/issues/477) [#483](https://github.com/kazupon/vue-i18n/issues/483)
### :zap: Improvements
* **index:** Allow pluralization customization via constructor options (closes [#464](https://github.com/kazupon/vue-i18n/issues/464)) ([#482](https://github.com/kazupon/vue-i18n/issues/482)) by [@Raiondesu](https://github.com/Raiondesu) ([ef4b1a6](https://github.com/kazupon/vue-i18n/commit/ef4b1a6)), closes [#464](https://github.com/kazupon/vue-i18n/issues/464) [#482](https://github.com/kazupon/vue-i18n/issues/482) [#464](https://github.com/kazupon/vue-i18n/issues/464) [#464](https://github.com/kazupon/vue-i18n/issues/464) [#464](https://github.com/kazupon/vue-i18n/issues/464) [#464](https://github.com/kazupon/vue-i18n/issues/464) [#451](https://github.com/kazupon/vue-i18n/issues/451)
* **index:** make silentTranslationWarn work for dates and numbers too ([#481](https://github.com/kazupon/vue-i18n/issues/481)) by [@Raiondesu](https://github.com/Raiondesu) ([402092b](https://github.com/kazupon/vue-i18n/commit/402092b)), closes [#481](https://github.com/kazupon/vue-i18n/issues/481)
* **types:** typed autocomplete in date and number format options ([#485](https://github.com/kazupon/vue-i18n/issues/485)) by [@Raiondesu](https://github.com/Raiondesu) ([e2e5993](https://github.com/kazupon/vue-i18n/commit/e2e5993)), closes [#485](https://github.com/kazupon/vue-i18n/issues/485)
# [8.4.0](https://github.com/kazupon/vue-i18n/compare/v8.3.2...v8.4.0) (2018-11-30)
### :star: New Features
* **index:** Add linked message formatting ([#467](https://github.com/kazupon/vue-i18n/issues/467)) by [@exoego](https://github.com/exoego) ([776b81b](https://github.com/kazupon/vue-i18n/commit/776b81b)), closes [#467](https://github.com/kazupon/vue-i18n/issues/467)
## [8.3.2](https://github.com/kazupon/vue-i18n/compare/v8.3.1...v8.3.2) (2018-11-16)
### :chart_with_upwards_trend: Performance Fixes
* **index:** Optimize unnecessary capturing. ([#462](https://github.com/kazupon/vue-i18n/issues/462)) by [@exoego](https://github.com/exoego) ([116845e](https://github.com/kazupon/vue-i18n/commit/116845e)), closes [#462](https://github.com/kazupon/vue-i18n/issues/462)
## [8.3.1](https://github.com/kazupon/vue-i18n/compare/v8.3.0...v8.3.1) (2018-11-08)
### :bug: Bug Fixes
* **directive:** fix cannnot update with v-t when had been changed locale message ([4895a2e](https://github.com/kazupon/vue-i18n/commit/4895a2e)), closes [#450](https://github.com/kazupon/vue-i18n/issues/450)
* **index:** fix merge bug ([1798490](https://github.com/kazupon/vue-i18n/commit/1798490)), closes [#458](https://github.com/kazupon/vue-i18n/issues/458)
* **missing:** fix vm argument passing ([dc48099](https://github.com/kazupon/vue-i18n/commit/dc48099)), closes [#453](https://github.com/kazupon/vue-i18n/issues/453)
### :zap: Improvements
* Optimize path.js and format.js ([#456](https://github.com/kazupon/vue-i18n/issues/456)) by [@exoego](https://github.com/exoego) ([639453c](https://github.com/kazupon/vue-i18n/commit/639453c)), closes [#456](https://github.com/kazupon/vue-i18n/issues/456)
# [8.3.0](https://github.com/kazupon/vue-i18n/compare/v8.2.1...v8.3.0) (2018-10-29)
### :zap: Improvements
* **pluralization:** Extendable pluralization by [@Raiondesu](https://github.com/Raiondesu) ([bbab90b](https://github.com/kazupon/vue-i18n/commit/bbab90b))
## [8.2.1](https://github.com/kazupon/vue-i18n/compare/v8.2.0...v8.2.1) (2018-10-15)
### :bug: Bug Fixes
* **extend:** fix TypeError: Cannot redefine property: $i18n ([#422](https://github.com/kazupon/vue-i18n/issues/422)) by [@HadiChen](https://github.com/HadiChen) ([cb19082](https://github.com/kazupon/vue-i18n/commit/cb19082)), closes [#422](https://github.com/kazupon/vue-i18n/issues/422)
### :zap: Improvements
* **index:** Suppress some warnings in production: smaller min.js and performance gain. ([#441](https://github.com/kazupon/vue-i18n/issues/441)) by @ exoego ([43931f5](https://github.com/kazupon/vue-i18n/commit/43931f5)), closes [#441](https://github.com/kazupon/vue-i18n/issues/441)
# [8.2.0](https://github.com/kazupon/vue-i18n/compare/v8.1.1...v8.2.0) (2018-10-13)
### :bug: Bug Fixes
* **index:** Add warning for circular reference in linked message ([#438](https://github.com/kazupon/vue-i18n/issues/438)) by [@exoego](https://github.com/exoego) ([7583485](https://github.com/kazupon/vue-i18n/commit/7583485)), closes [#438](https://github.com/kazupon/vue-i18n/issues/438)
### :zap: Improvements
* **index:** Allow escaping link key like @:(foo.bar). ([#437](https://github.com/kazupon/vue-i18n/issues/437)) by [@exoego](https://github.com/exoego) ([acfc458](https://github.com/kazupon/vue-i18n/commit/acfc458)), closes [#437](https://github.com/kazupon/vue-i18n/issues/437)
* **index:** Pre-defined named arguments for Pluraization ([#440](https://github.com/kazupon/vue-i18n/issues/440)) by [@exoego](https://github.com/exoego) ([e84f0fb](https://github.com/kazupon/vue-i18n/commit/e84f0fb)), closes [#440](https://github.com/kazupon/vue-i18n/issues/440)
* **path:** Allow non-ascii chars including numbers. ([#436](https://github.com/kazupon/vue-i18n/issues/436)) by [@exoego](https://github.com/exoego) ([a556c58](https://github.com/kazupon/vue-i18n/commit/a556c58)), closes [#436](https://github.com/kazupon/vue-i18n/issues/436)
## [8.1.1](https://github.com/kazupon/vue-i18n/compare/v8.1.0...v8.1.1) (2018-10-12)
### :bug: Bug Fixes
* **build:** fix rollup building issues ([1a1958a](https://github.com/kazupon/vue-i18n/commit/1a1958a))
* **format:** Should warn as unknown if named format is not closed. ([#435](https://github.com/kazupon/vue-i18n/issues/435)) by [@exoego](https://github.com/exoego) ([d1f6ed0](https://github.com/kazupon/vue-i18n/commit/d1f6ed0)), closes [#435](https://github.com/kazupon/vue-i18n/issues/435)
* **install:** fix cannot redfine error ([6d5ec61](https://github.com/kazupon/vue-i18n/commit/6d5ec61))
### :zap: Improvements
* **package.json:** tree shaking optimization ([38948c5](https://github.com/kazupon/vue-i18n/commit/38948c5))
# [8.1.0](https://github.com/kazupon/vue-i18n/compare/v8.0.0...v8.1.0) (2018-09-03)
### :bug: Bug Fixes
* **install:** add support for Vue.extend vue-i18n instance ([#420](https://github.com/kazupon/vue-i18n/issues/420)) by [@jaredzhu1993](https://github.com/jaredzhu1993) ([a60ea8b](https://github.com/kazupon/vue-i18n/commit/a60ea8b)), closes [#420](https://github.com/kazupon/vue-i18n/issues/420)
### :zap: Improvements
* **warnings:** make warning messages clearer ([#396](https://github.com/kazupon/vue-i18n/issues/396)) by [@kimuraz](https://github.com/kimuraz) ([79eee1b](https://github.com/kazupon/vue-i18n/commit/79eee1b)), closes [#396](https://github.com/kazupon/vue-i18n/issues/396)
# [8.0.0](https://github.com/kazupon/vue-i18n/compare/v7.8.1...v8.0.0) (2018-06-23)
### :boom: Breaking changes
* **extend:** fix this context binding ([aa0e831](https://github.com/kazupon/vue-i18n/commit/aa0e831)), closes [#306](https://github.com/kazupon/vue-i18n/issues/306) [#286](https://github.com/kazupon/vue-i18n/issues/286) [#259](https://github.com/kazupon/vue-i18n/issues/259), revert [#260](https://github.com/kazupon/vue-i18n/issues/260)
Note that you need to guarantee this context equal to component instance in lifecycle methods (e.g. in `data` options, `const $t = this.$t.bind(this)`).
```js
export default {
data () {
const $t = this.$t.bind(this)
return { msg: $t('msg') }
}
}
```
see the [API docs](https://kazupon.github.io/vue-i18n/api/)
### :bug: Bug Fixes
* bug(directive): fix guard checking at unbind ([c74888c](https://github.com/kazupon/vue-i18n/commit/c74888c)), closes [#340](https://github.com/kazupon/vue-i18n/issues/340)
### NOTE
* extend:
## [7.8.1](https://github.com/kazupon/vue-i18n/compare/v7.8.0...v7.8.1) (2018-06-18)
### :bug: Bug Fixes
* **directive:** fix cannot unbind bug ([105888d](https://github.com/kazupon/vue-i18n/commit/105888d)), closes [#377](https://github.com/kazupon/vue-i18n/issues/377)
# [7.8.0](https://github.com/kazupon/vue-i18n/compare/v7.7.0...v7.8.0) (2018-06-01)
### :zap: Improvements
* **typescript:** add type exportings ([a7cb8da](https://github.com/kazupon/vue-i18n/commit/a7cb8da))
# [7.7.0](https://github.com/kazupon/vue-i18n/compare/v7.6.0...v7.7.0) (2018-05-20)
### :zap: Improvements
* **index:** resource reactivity ([887a137](https://github.com/kazupon/vue-i18n/commit/887a137)), closes [#253](https://github.com/kazupon/vue-i18n/issues/253)
* **typescript:** Fix typings in components ([#344](https://github.com/kazupon/vue-i18n/issues/344)) by [@Demivan](https://github.com/Demivan) ([2402893](https://github.com/kazupon/vue-i18n/commit/2402893)), closes [#344](https://github.com/kazupon/vue-i18n/issues/344)
# [7.6.0](https://github.com/kazupon/vue-i18n/compare/v7.5.0...v7.6.0) (2018-03-13)
### :zap: Improvements
* **index:** support retunable missing handler ([#256](https://github.com/kazupon/vue-i18n/issues/256)) by [@houd1ni](https://github.com/houd1ni) ([9fbe467](https://github.com/kazupon/vue-i18n/commit/9fbe467))
* **typescript:** update TranslateResult type interface ([dffc678](https://github.com/kazupon/vue-i18n/commit/dffc678))
# [7.5.0](https://github.com/kazupon/vue-i18n/compare/v7.4.2...v7.5.0) (2018-03-11)
### :star: New Features
* **directive:** Add pluralization feature to directive ([#304](https://github.com/kazupon/vue-i18n/issues/304)) by [@SirLamer](https://github.com/SirLamer) ([8378859](https://github.com/kazupon/vue-i18n/commit/8378859))
### :zap: Improvements
* **flow:** update TranslateResult type interface ([59f4658](https://github.com/kazupon/vue-i18n/commit/59f4658))
* **index:** support object localization ([#311](https://github.com/kazupon/vue-i18n/issues/311)) by [@manniL](https://github.com/manniL) ([99e5006](https://github.com/kazupon/vue-i18n/commit/99e5006))
* **missing:** Add interpolation values to missing handler ([#308](https://github.com/kazupon/vue-i18n/issues/308)) by [@sebwas](https://github.com/sebwas) ([b912d8a](https://github.com/kazupon/vue-i18n/commit/b912d8a))
* **numberformat:** Explicit number format options ([#305](https://github.com/kazupon/vue-i18n/issues/305)) by [@bponomarenko](https://github.com/bponomarenko) ([aa07450](https://github.com/kazupon/vue-i18n/commit/aa07450))
## [7.4.2](https://github.com/kazupon/vue-i18n/compare/v7.4.1...v7.4.2) (2018-02-01)
### :zap: Improvements
* **index:** Fixes global auto installation ([#291](https://github.com/kazupon/vue-i18n/issues/291)) by [@emileber](https://github.com/emileber) ([2f016ff](https://github.com/kazupon/vue-i18n/commit/2f016ff)), closes [#291](https://github.com/kazupon/vue-i18n/issues/291)
## [7.4.1](https://github.com/kazupon/vue-i18n/compare/v7.4.0...v7.4.1) (2018-01-25)
### :bug: Bug Fixes
* fix cannot react ([2a8ea1c](https://github.com/kazupon/vue-i18n/commit/2a8ea1c)), closes [#261](https://github.com/kazupon/vue-i18n/issues/261)
### :zap: Improvements
* **formatter:** interpolate messages without values ([#282](https://github.com/kazupon/vue-i18n/issues/282)) by [@cb8](https://github.com/cb8) ([b792ce2](https://github.com/kazupon/vue-i18n/commit/b792ce2))
# [7.4.0](https://github.com/kazupon/vue-i18n/compare/v7.3.4...v7.4.0) (2018-01-10)
### :star: New Features
* **typescript:** Allow module augmentation ([#273](https://github.com/kazupon/vue-i18n/issues/273)) by [@CKGrafico](https://github.com/CKGrafico) ([4371344](https://github.com/kazupon/vue-i18n/commit/4371344))
## [7.3.4](https://github.com/kazupon/vue-i18n/compare/v7.3.3...v7.3.4) (2018-01-07)
### :bug: Bug Fixes
* **formatter:** Inherit formatter ([#269](https://github.com/kazupon/vue-i18n/issues/269)) by [@podkot](https://github.com/podkot) ([26a33ad](https://github.com/kazupon/vue-i18n/commit/26a33ad))
## [7.3.3](https://github.com/kazupon/vue-i18n/compare/v7.3.2...v7.3.3) (2017-12-19)
### :bug: Bug Fixes
* **extend:** Fix this not found [#259](https://github.com/kazupon/vue-i18n/issues/259) ([#260](https://github.com/kazupon/vue-i18n/issues/260)) by [@lzxb](https://github.com/lzxb) ([c29007e](https://github.com/kazupon/vue-i18n/commit/c29007e)), closes [#259](https://github.com/kazupon/vue-i18n/issues/259) [#260](https://github.com/kazupon/vue-i18n/issues/260)
* **types:** fix using old export ([#263](https://github.com/kazupon/vue-i18n/issues/263)) by [@jmigual](https://github.com/jmigual) ([b295fee](https://github.com/kazupon/vue-i18n/commit/b295fee)), closes [#263](https://github.com/kazupon/vue-i18n/issues/263)
## [7.3.2](https://github.com/kazupon/vue-i18n/compare/v7.3.1...v7.3.2) (2017-10-19)
### :zap: Improvements
* **typescript:** fix import problem of vue2.5 because of the types update ([#238](https://github.com/kazupon/vue-i18n/issues/238)) by [@peterchealse](https://github.com/peterchealse) ([cb98347](https://github.com/kazupon/vue-i18n/commit/cb98347)), closes [#238](https://github.com/kazupon/vue-i18n/issues/238)
## [7.3.1](https://github.com/kazupon/vue-i18n/compare/v7.3.0...v7.3.1) (2017-10-04)
### :bug: Bug Fixes
* **directive:** fix cannot locale reactivity ([e1fc12e](https://github.com/kazupon/vue-i18n/commit/e1fc12e)), closes [#227](https://github.com/kazupon/vue-i18n/issues/227)
# [7.3.0](https://github.com/kazupon/vue-i18n/compare/v7.2.0...v7.3.0) (2017-09-22)
### :star: New Features
* **directives:** support v-t custom directive (welcome back!) ([af9a2e7](https://github.com/kazupon/vue-i18n/commit/af9a2e7))
### :up: Updates
* **typing:** fix flowtype ([fa06f44](https://github.com/kazupon/vue-i18n/commit/fa06f44))
# [7.2.0](https://github.com/kazupon/vue-i18n/compare/v7.1.2...v7.2.0) (2017-08-28)
### :star: New Features
* **interpolation:** list formatting refactor and places/place feature ([#218](https://github.com/kazupon/vue-i18n/issues/218)) by [@myst729](https://github.com/myst729) ([0f0f3ff](https://github.com/kazupon/vue-i18n/commit/0f0f3ff))
## [7.1.2](https://github.com/kazupon/vue-i18n/compare/v7.1.1...v7.1.2) (2017-08-25)
### :zap: Improvements
* **interpolation:** skip non-element VNode in interpolation ([#211](https://github.com/kazupon/vue-i18n/issues/211)) by [@myst729](https://github.com/myst729) ([6be1756](https://github.com/kazupon/vue-i18n/commit/6be1756))
## [7.1.1](https://github.com/kazupon/vue-i18n/compare/v7.1.0...v7.1.1) (2017-08-03)
### :bug: Bug Fixes
* **mixin:** fix cannot setup VueI18n instance ([13585a4](https://github.com/kazupon/vue-i18n/commit/13585a4)), closes [#203](https://github.com/kazupon/vue-i18n/issues/203)
# [7.1.0](https://github.com/kazupon/vue-i18n/compare/v7.0.5...v7.1.0) (2017-07-30)
### :zap: Improvements
* **custom-block:** support multiple custom blocks ([ab955a5](https://github.com/kazupon/vue-i18n/commit/ab955a5)), closes [#189](https://github.com/kazupon/vue-i18n/issues/189)
## [7.0.5](https://github.com/kazupon/vue-i18n/compare/v7.0.4...v7.0.5) (2017-07-08)
### :bug: Bug Fixes
* **format:** fix cannot collectly parse percent ([fc71eda](https://github.com/kazupon/vue-i18n/commit/fc71eda)), closes [#191](https://github.com/kazupon/vue-i18n/issues/191)
## [7.0.4](https://github.com/kazupon/vue-i18n/compare/v7.0.3...v7.0.4) (2017-07-01)
### :bug: Bug Fixes
* **link:** fix ie traverse custom Array.prototype method ([#188](https://github.com/kazupon/vue-i18n/issues/188)) by [@632781460](https://github.com/632781460) ([d3b308b](https://github.com/kazupon/vue-i18n/commit/d3b308b)), closes [#188](https://github.com/kazupon/vue-i18n/issues/188)
### :chart_with_upwards_trend: Performance Fixes
* fix blocking at beforeDestroy ([570b215](https://github.com/kazupon/vue-i18n/commit/570b215)), closes [#187](https://github.com/kazupon/vue-i18n/issues/187)
## [7.0.3](https://github.com/kazupon/vue-i18n/compare/v7.0.2...v7.0.3) (2017-06-13)
### :bug: Bug Fixes
* **fallback:** fix cannot fallabck localization ([694e6f2](https://github.com/kazupon/vue-i18n/commit/694e6f2)), closes [#176](https://github.com/kazupon/vue-i18n/issues/176)
* **fallback:** fix fallback locale issue ([d9ceddc](https://github.com/kazupon/vue-i18n/commit/d9ceddc)), closes [#174](https://github.com/kazupon/vue-i18n/issues/174)
* **linked:** fix cannot fallback linked localization ([0c572f3](https://github.com/kazupon/vue-i18n/commit/0c572f3)), closes [#172](https://github.com/kazupon/vue-i18n/issues/172)
## [7.0.2](https://github.com/kazupon/vue-i18n/compare/v7.0.1...v7.0.2) (2017-06-10)
### :bug: Bug Fixes
* **sfc:** fix cannot parse custom block locale messages ([32eb3a7](https://github.com/kazupon/vue-i18n/commit/32eb3a7)), closes [#173](https://github.com/kazupon/vue-i18n/issues/173)
## [7.0.1](https://github.com/kazupon/vue-i18n/compare/v7.0.0...v7.0.1) (2017-06-04)
### :bug: Bug Fixes
* fix cannat single file component translation ([687d406](https://github.com/kazupon/vue-i18n/commit/687d406)), closes [#169](https://github.com/kazupon/vue-i18n/issues/169)
* fix cannnot resolve linked localization with component interpolation ([c973619](https://github.com/kazupon/vue-i18n/commit/c973619)), closes [#171](https://github.com/kazupon/vue-i18n/issues/171)
* fix datetime and number fallback localization ([be9e1bd](https://github.com/kazupon/vue-i18n/commit/be9e1bd)), closes [#168](https://github.com/kazupon/vue-i18n/issues/168)
* fix linked translation with using hyphen or underscore keypath ([6e9f151](https://github.com/kazupon/vue-i18n/commit/6e9f151)), closes [#170](https://github.com/kazupon/vue-i18n/issues/170)
# [7.0.0](https://github.com/kazupon/vue-i18n/compare/v7.0.0-rc.1...v7.0.0) (2017-05-29)
:tada: :tada: :tada:
See the [docs](https://kazupon.github.io/vue-i18n/en/)
### :star: New Features
* **datetime localization:**
* [documentation](https://github.com/kazupon/vue-i18n/blob/dev/gitbook/en/datetime.md)
* [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/datetime)
* **number localization:**
* [documentation](https://github.com/kazupon/vue-i18n/blob/dev/gitbook/en/number.md)
* [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/number)
* **component interpolation:**
* [documentation](https://github.com/kazupon/vue-i18n/blob/dev/gitbook/en/interpolation.md)
* [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/interpolation)
* **typescript:**
* [type definitions](https://github.com/kazupon/vue-i18n/blob/dev/types/index.d.ts)
### :chart_with_upwards_trend: Performance Fixes
* fix translation performance issue ([6032a51](https://github.com/kazupon/vue-i18n/commit/6032a51))
### :zap: Improvements
* **path:** tweak for ssr
### :boom: Breaking changes
* **format:** re-impelement formatter
* **formatter:** change method nam
* **flowtype:** fix locale message related type changing and remove underscore type
### :bug: Bug Fixes
* **examples:** fix ssr demo ([059034f](https://github.com/kazupon/vue-i18n/commit/059034f))
* **pluralization:** fix default choice ([240cfed](https://github.com/kazupon/vue-i18n/commit/240cfed))
# [7.0.0-rc.1](https://github.com/kazupon/vue-i18n/compare/v7.0.0-beta.4...v7.0.0-rc.1) (2017-05-26)
### :chart_with_upwards_trend: Performance Fixes
* fix translation performance issue ([6032a51](https://github.com/kazupon/vue-i18n/commit/6032a51)), closes [#165](https://github.com/kazupon/vue-i18n/issues/165)
### :up: Updates
* **flowtype:** remove unneccesary type ([eb60156](https://github.com/kazupon/vue-i18n/commit/eb60156))
# [7.0.0-beta.4](https://github.com/kazupon/vue-i18n/compare/v7.0.0-beta.3...v7.0.0-beta.4) (2017-05-23)
### :bug: Bug Fixes
* **pluralization:** fix default choice ([240cfed](https://github.com/kazupon/vue-i18n/commit/240cfed)), closes [#164](https://github.com/kazupon/vue-i18n/issues/164)
# [7.0.0-beta.3](https://github.com/kazupon/vue-i18n/compare/v7.0.0-beta.2...v7.0.0-beta.3) (2017-05-15)
### :up: Updates
* bring back from bug fix ([95be4ea](https://github.com/kazupon/vue-i18n/commit/95be4ea))
# [7.0.0-beta.2](https://github.com/kazupon/vue-i18n/compare/v7.0.0-beta.1...v7.0.0-beta.2) (2017-05-14)
### :zap: Improvements
* **path:** tweak for ssr ([eb21921](https://github.com/kazupon/vue-i18n/commit/eb21921))
* **typescript:** change custom formatter method name ([c5f043f](https://github.com/kazupon/vue-i18n/commit/c5f043f))
# [7.0.0-beta.1](https://github.com/kazupon/vue-i18n/compare/v6.1.1...v7.0.0-beta.1) (2017-05-11)
### :star: New Features
* **datetime localization:** add datetime localization ([3282075](https://github.com/kazupon/vue-i18n/commit/3282075))
* [documentation](https://github.com/kazupon/vue-i18n/blob/dev/gitbook/en/datetime.md)
* [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/datetime)
* **number localization:** add number localization ([87ee7b3](https://github.com/kazupon/vue-i18n/commit/87ee7b3))
* [documentation](https://github.com/kazupon/vue-i18n/blob/dev/gitbook/en/number.md)
* [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/number)
* **component interpolation:** ([23f7d34](https://github.com/kazupon/vue-i18n/commit/23f7d34)), closes [#145](https://github.com/kazupon/vue-i18n/issues/145) [#144](https://github.com/kazupon/vue-i18n/issues/144) [#37](https://github.com/kazupon/vue-i18n/issues/37)
* [documentation](https://github.com/kazupon/vue-i18n/blob/dev/gitbook/en/interpolation.md)
* [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/interpolation)
* **typescript:** add TypeScript type definitions ([#161](https://github.com/kazupon/vue-i18n/issues/161)) by [@aicest](https://github.com/aicest) ([61cebca](https://github.com/kazupon/vue-i18n/commit/61cebca))
* [type definitions](https://github.com/kazupon/vue-i18n/blob/dev/types/index.d.ts)
### :boom: Breaking changes
* **format:** re-impelement formatter ([a8c046d](https://github.com/kazupon/vue-i18n/commit/a8c046d))
* **formatter:** change method name ([6eed51c](https://github.com/kazupon/vue-i18n/commit/6eed51c))
* **flowtype:** fix locale message related type changing ([c30d576](https://github.com/kazupon/vue-i18n/commit/c30d576))
### :bug: Bug Fixes
* **examples:** fix ssr demo ([059034f](https://github.com/kazupon/vue-i18n/commit/059034f)), closes [#151](https://github.com/kazupon/vue-i18n/issues/151)
## [6.1.3](https://github.com/kazupon/vue-i18n/compare/v6.1.1...v6.1.3) (2017-05-15)
### :bug: Bug Fixes
* fix memory leaks ([95be4ea](https://github.com/kazupon/vue-i18n/commit/95be4ea)), closes [#162](https://github.com/kazupon/vue-i18n/issues/162)
## [6.1.2](https://github.com/kazupon/vue-i18n/compare/v6.1.1...v6.1.2) (2017-05-15)
## [6.1.1](https://github.com/kazupon/vue-i18n/compare/v6.1.0...v6.1.1) (2017-04-19)
### :bug: Bug Fixes
* **te:** Fix `te()` that always uses `this.locale`, even when `locale` supplied ([#147](https://github.com/kazupon/vue-i18n/issues/147)) by [@aicest](https://github.com/aicest) ([bf15eeb](https://github.com/kazupon/vue-i18n/commit/bf15eeb)), closes [#147](https://github.com/kazupon/vue-i18n/issues/147)
# [6.1.0](https://github.com/kazupon/vue-i18n/compare/v6.0.0...v6.1.0) (2017-04-14)
### :star: New Features
* **api:** add 'mergeLocaleMessage' method ([ef21621](https://github.com/kazupon/vue-i18n/commit/ef21621)), closes [#131](https://github.com/kazupon/vue-i18n/issues/131)
* **silent:** add silent translation missing option ([29b3a17](https://github.com/kazupon/vue-i18n/commit/29b3a17)), closes [#139](https://github.com/kazupon/vue-i18n/issues/139)
### :zap: Improvements
* change to method from computed property ([9135a59](https://github.com/kazupon/vue-i18n/commit/9135a59)), closes [#141](https://github.com/kazupon/vue-i18n/issues/141)
# [6.0.0](https://github.com/kazupon/vue-i18n/compare/v6.0.0-beta.1...v6.0.0) (2017-04-05)
:tada: :tada: :tada:
See the [docs](https://kazupon.github.io/vue-i18n/en/)
### :zap: Improvements
- Server-Side Rendering: [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/ssr)
- Custom formatter: [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/formatting/custom)
### :star: NEW Features
- Single File Components: [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/sfc)
### :boom: Breaking changes
- API
- Dynamic locale DEPRECATED
# [6.0.0-beta.1](https://github.com/kazupon/vue-i18n/compare/v6.0.0-alpha.6...v6.0.0-beta.1) (2017-03-22)
### :boom: Breaking changes
* change `fallbackRoot` and `sync` option default `true` value ([0890b44](https://github.com/kazupon/vue-i18n/commit/0890b44))
* remove messages settter, and add getLocaleMessage API ([0f0914d](https://github.com/kazupon/vue-i18n/commit/0f0914d))
### :bug: Bug Fixes
* **mixin:** fix computed props errors ([a6b7e37](https://github.com/kazupon/vue-i18n/commit/a6b7e37))
### :up: Updates
* **flowtype:** argument names ([cf14425](https://github.com/kazupon/vue-i18n/commit/cf14425))
### :zap: Improvements
* **fallbackLocale:** support reactivity ([ed758be](https://github.com/kazupon/vue-i18n/commit/ed758be))
* **warn:** suppress warning messages for production ([6e417d2](https://github.com/kazupon/vue-i18n/commit/6e417d2))
# [6.0.0-alpha.6](https://github.com/kazupon/vue-i18n/compare/v6.0.0-alpha.5...v6.0.0-alpha.6) (2017-03-16)
### :star: New Features
* add 'setLocaleMessage' API ([8b71eda](https://github.com/kazupon/vue-i18n/commit/8b71eda))
# [6.0.0-alpha.5](https://github.com/kazupon/vue-i18n/compare/v6.0.0-alpha.3...v6.0.0-alpha.5) (2017-03-11)
### :bug: Bug Fixes
* **mixin:** fix cannot create VueI18n instance error for minify production ([7eeb29f](https://github.com/kazupon/vue-i18n/commit/7eeb29f))
# [6.0.0-alpha.4](https://github.com/kazupon/vue-i18n/compare/v6.0.0-alpha.3...v6.0.0-alpha.4) (2017-03-11)
# [6.0.0-alpha.3](https://github.com/kazupon/vue-i18n/compare/v6.0.0-alpha.2...v6.0.0-alpha.3) (2017-03-08)
### :star: New Features
* add `sync` option ([5c46c07](https://github.com/kazupon/vue-i18n/commit/5c46c07))
### :zap: Improvements
* **mixin:** add error throwings and a warning ([0e4ac39](https://github.com/kazupon/vue-i18n/commit/0e4ac39))
# [6.0.0-alpha.2](https://github.com/kazupon/vue-i18n/compare/v6.0.0-alpha.1...v6.0.0-alpha.2) (2017-02-27)
### :zap: Improvements
* **mixin:** release i18n instance ([cc362a3](https://github.com/kazupon/vue-i18n/commit/cc362a3))
* **vue:** support vue 2.2 ([5e7bf5e](https://github.com/kazupon/vue-i18n/commit/5e7bf5e))
# [6.0.0-alpha.1](https://github.com/kazupon/vue-i18n/compare/v5.0.2...v6.0.0-alpha.1) (2017-02-23)
This is the first release of 6.0.
In this version, we are some big breaking changes.
- Recommended for: experiments, prototypes, upgrading small, non-critical apps
- **NOT** recommended for: production use, upgrading production apps
:warning: Documentation still needs to be worked on. And also, we might change some APIs and features.
In the examples, please refer to this [examples](https://github.com/kazupon/vue-i18n/tree/dev/examples) directory.
## Improvements
- Server-Side Rendering: [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/formatting/custom)
- Custom formatter: [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/ssr)
## Features
- Formatting support
- Pluralization support
- Locale and KeyPath Syntax support
- Linked translation support
- Fallback translation support
- Component locale support
- Dynamic locale DEPRECATED
- Hot reload support
## API
### Global Config
- Vue.config.lang DEPRECATED, use VueI18n constructor `locale` option, or VueI18n#locale
- Vue.config.fallbackLang DEPRECATED, use VueI18n constructor `fallbackLocale` option, or VueI18n#fallbackLocale
- Vue.config.missingHandler DEPRECATED, use VueI18n constructor `missing` option, or VueI18n#missing
- Vue.config.i18nFormatter DEPRECATED, use VueI18n constructor `formatter` option, or VueI18n#formatter
### Global Method
- Vue.locale DEPRECATED, use VueI18n constructor `messages` option, or VueI18n#messages
- Vue.t DEPRECATED, use VueI18n#t
- Vue.tc DEPRECATED, use VueI18n#tc
- Vue.te DEPRECATED, use VueI18n#te
### Constructor Options
- locales DEPRECATED, use `messages` of `i18n` option (e.g `{ i18n: { messaes: ... } }`)
### Instance Properties
- $lang DEPRECATED, use `locale` of Vue instance property `$i18n` (e.g `vm.$i18n.locale = 'en'`)
### VueI18n class NEW
- constructor options: See the [`I18nOptions` type](https://github.com/kazupon/vue-i18n/blob/dev/decls/i18n.js#L7-L15) of flowtype.
- methods / properties: See the [`I18n` interface definition](https://github.com/kazupon/vue-i18n/blob/dev/decls/i18n.js#L17-L33) of flowtype.
## [5.0.2](https://github.com/kazupon/vue-i18n/compare/v5.0.1...v5.0.2) (2017-02-18)
### :zap: Improvements
* **npm:** revert node >= 6.0 engine restriction ([#110](https://github.com/kazupon/vue-i18n/issues/110)) by [@syxolk](https://github.com/syxolk) ([92b1bd1](https://github.com/kazupon/vue-i18n/commit/92b1bd1)), closes [#109](https://github.com/kazupon/vue-i18n/issues/109)
## [5.0.1](https://github.com/kazupon/vue-i18n/compare/v5.0.0...v5.0.1) (2017-02-16)
### :zap: Improvements
* **asset:** update locale reactivity setting ([b42fd9a](https://github.com/kazupon/vue-i18n/commit/b42fd9a))
# [5.0.0](https://github.com/kazupon/vue-i18n/compare/v4.10.0...v5.0.0) (2017-02-04)
### :boom: Breaking changes
* drop vue 1.0 supporting ([4da26cf](https://github.com/kazupon/vue-i18n/commit/4da26cf)), closes [#105](https://github.com/kazupon/vue-i18n/issues/105)
# [4.10.0](https://github.com/kazupon/vue-i18n/compare/v4.9.0...v4.10.0) (2017-01-01)
### :star: New Features
* `$lang` property for all component ([#99](https://github.com/kazupon/vue-i18n/issues/99)) by [@albert](https://github.com/albert)-zhang ([5ed69f8](https://github.com/kazupon/vue-i18n/commit/5ed69f8))
### :up: Updates
* **override:** change langVM keeping variable name ([3ec1bb2](https://github.com/kazupon/vue-i18n/commit/3ec1bb2))
# [4.9.0](https://github.com/kazupon/vue-i18n/compare/v4.8.0...v4.9.0) (2016-12-17)
### :bug: Bug Fixes
* **path:** fix nested key translation ([e15ead4](https://github.com/kazupon/vue-i18n/commit/e15ead4)), closes [#97](https://github.com/kazupon/vue-i18n/issues/97)
### :star: New Features
* add globally locale checking ([4cac8b9](https://github.com/kazupon/vue-i18n/commit/4cac8b9))
* locale checking ([#98](https://github.com/kazupon/vue-i18n/issues/98)) by [@long](https://github.com/long)-long-float ([0bc0a6b](https://github.com/kazupon/vue-i18n/commit/0bc0a6b))
# [4.8.0](https://github.com/kazupon/vue-i18n/compare/v4.7.4...v4.8.0) (2016-12-08)
### :zap: Improvements
* **extend:** disable no translation warning when set missingHandler ([168a97c](https://github.com/kazupon/vue-i18n/commit/168a97c)), closes [#96](https://github.com/kazupon/vue-i18n/issues/96)
## [4.7.4](https://github.com/kazupon/vue-i18n/compare/v4.7.3...v4.7.4) (2016-11-29)
### :bug: Bug Fixes
* **extend:** fix interpolate error [@tariq86](https://github.com/tariq86) ([5f24e17](https://github.com/kazupon/vue-i18n/commit/5f24e17))
## [4.7.3](https://github.com/kazupon/vue-i18n/compare/v4.7.2...v4.7.3) (2016-11-24)
### :bug: Bug Fixes
* **extend:** fix array local ([35c268a](https://github.com/kazupon/vue-i18n/commit/35c268a)), closes [#91](https://github.com/kazupon/vue-i18n/issues/91) [#59](https://github.com/kazupon/vue-i18n/issues/59)
## [4.7.2](https://github.com/kazupon/vue-i18n/compare/v4.7.1...v4.7.2) (2016-11-19)
### :bug: Bug Fixes
* **observer:** fix dep undefined error ([#88](https://github.com/kazupon/vue-i18n/issues/88)) by [@fandaa](https://github.com/fandaa) ([724974e](https://github.com/kazupon/vue-i18n/commit/724974e)), closes [#88](https://github.com/kazupon/vue-i18n/issues/88)
### :zap: Improvements
* **extend:** support translate empty string ([#86](https://github.com/kazupon/vue-i18n/issues/86)) by [@QingWei](https://github.com/QingWei)-Li ([8e6d154](https://github.com/kazupon/vue-i18n/commit/8e6d154))
## [4.7.1](https://github.com/kazupon/vue-i18n/compare/v4.7.0...v4.7.1) (2016-10-29)
### :bug: Bug Fixes
* **interpolate:** named formatting: use name if value is missing ([#77](https://github.com/kazupon/vue-i18n/issues/77)) by [@SebastianS90](https://github.com/SebastianS90) ([a0cc343](https://github.com/kazupon/vue-i18n/commit/a0cc343))
### :zap: Improvements
* **named:** using default use nmae when value is missing ([c34e8f1](https://github.com/kazupon/vue-i18n/commit/c34e8f1))
# [4.7.0](https://github.com/kazupon/vue-i18n/compare/v4.6.0...v4.7.0) (2016-10-28)
### :star: New Features
* hot reloading ([#71](https://github.com/kazupon/vue-i18n/issues/71)) by [@gglnx](https://github.com/gglnx) ([7bb94ac](https://github.com/kazupon/vue-i18n/commit/7bb94ac))
### :zap: Improvements
* **pluralization:** zero choice ([#70](https://github.com/kazupon/vue-i18n/issues/70)) by [@sebwas](https://github.com/sebwas) ([5f0004f](https://github.com/kazupon/vue-i18n/commit/5f0004f))
# [4.6.0](https://github.com/kazupon/vue-i18n/compare/v4.5.0...v4.6.0) (2016-09-24)
### :star: New Features
* **config:** custom message formatter ([#57](https://github.com/kazupon/vue-i18n/issues/57)) by [@jvmccarthy](https://github.com/jvmccarthy) ([2748eb4](https://github.com/kazupon/vue-i18n/commit/2748eb4))
# [4.5.0](https://github.com/kazupon/vue-i18n/compare/v4.4.1...v4.5.0) (2016-09-15)
### :star: New Features
* **config:** translation miss capturing configration ([aca0ed6](https://github.com/kazupon/vue-i18n/commit/aca0ed6)), closes [#54](https://github.com/kazupon/vue-i18n/issues/54)
## [4.4.1](https://github.com/kazupon/vue-i18n/compare/v4.4.0...v4.4.1) (2016-09-10)
### :zap: Improvements
* **translate:** support hyphenated key ([#52](https://github.com/kazupon/vue-i18n/issues/52)) by [@tariq86](https://github.com/tariq86) ([a40acfd](https://github.com/kazupon/vue-i18n/commit/a40acfd))
# [4.4.0](https://github.com/kazupon/vue-i18n/compare/v4.3.1...v4.4.0) (2016-08-29)
### :star: New Features
* add linked translations ([#50](https://github.com/kazupon/vue-i18n/issues/50)) by [@mmochetti](https://github.com/mmochetti) ([f7ae073](https://github.com/kazupon/vue-i18n/commit/f7ae073))
## [4.3.1](https://github.com/kazupon/vue-i18n/compare/v4.3.0...v4.3.1) (2016-08-26)
### :bug: Bug Fixes
* **npm:** fix installing bug ([57e66aa](https://github.com/kazupon/vue-i18n/commit/57e66aa)), closes [#46](https://github.com/kazupon/vue-i18n/issues/46)
# [4.3.0](https://github.com/kazupon/vue-i18n/compare/v4.2.3...v4.3.0) (2016-08-26)
### :star: New Features
* add pluralization ([#44](https://github.com/kazupon/vue-i18n/issues/44)) by [@mmochetti](https://github.com/mmochetti) ([b5b84d8](https://github.com/kazupon/vue-i18n/commit/b5b84d8))
## [4.2.3](https://github.com/kazupon/vue-i18n/compare/v4.2.2...v4.2.3) (2016-08-23)
### :chart_with_upwards_trend: Performance Fixes
* improve re-rendering cost when change the lang ([0707338](https://github.com/kazupon/vue-i18n/commit/0707338))
## [4.2.2](https://github.com/kazupon/vue-i18n/compare/v4.2.1...v4.2.2) (2016-08-15)
### :bug: Bug Fixes
* **path:** fix array path syntax error ([bc9dbee](https://github.com/kazupon/vue-i18n/commit/bc9dbee)), closes [#42](https://github.com/kazupon/vue-i18n/issues/42) [#43](https://github.com/kazupon/vue-i18n/issues/43)
## [4.2.1](https://github.com/kazupon/vue-i18n/compare/v4.2.0...v4.2.1) (2016-08-13)
### :zap: Improvements
* **translate:** fallback translation warning ([5f6b271](https://github.com/kazupon/vue-i18n/commit/5f6b271))
# [4.2.0](https://github.com/kazupon/vue-i18n/compare/v4.1.0...v4.2.0) (2016-08-12)
### :chart_with_upwards_trend: Performance Fixes
* **format:** use hasOwn function of Vue.util ([a8a19a0](https://github.com/kazupon/vue-i18n/commit/a8a19a0))
### :star: New Features
* **fallback:** add fallback translation feature ([1d1f0f2](https://github.com/kazupon/vue-i18n/commit/1d1f0f2)), closes [#36](https://github.com/kazupon/vue-i18n/issues/36)
# [4.1.0](https://github.com/kazupon/vue-i18n/compare/v4.0.1...v4.1.0) (2016-07-25)
### :bug: Bug Fixes
* **util:** fixed isArray reference errors ([0c6f6a0](https://github.com/kazupon/vue-i18n/commit/0c6f6a0))
### :star: New Features
* support vue 2.0.0.beta later ([0e1d2f7](https://github.com/kazupon/vue-i18n/commit/0e1d2f7))
## [4.0.1](https://github.com/kazupon/vue-i18n/compare/v4.0.0...v4.0.1) (2016-06-06)
### :bug: Bug Fixes
* **translate:** fix underscore named argument translate issue ([eeaf936](https://github.com/kazupon/vue-i18n/commit/eeaf936))
# [4.0.0](https://github.com/kazupon/vue-i18n/compare/v3.1.1...v4.0.0) (2016-05-10)
### :zap: Improvements
* support vue 2.0-pre-alpha ([f6517bc](https://github.com/kazupon/vue-i18n/commit/f6517bc))
## [3.1.1](https://github.com/kazupon/vue-i18n/compare/v3.1.0...v3.1.1) (2016-05-09)
### :star: New Features
* auto installation for standalone ([2b0dc09](https://github.com/kazupon/vue-i18n/commit/2b0dc09))
# [3.1.0](https://github.com/kazupon/vue-i18n/compare/v3.0.0...v3.1.0) (2016-05-09)
### :star: New Features
* component locales ([12fe695](https://github.com/kazupon/vue-i18n/commit/12fe695)), closes [#29](https://github.com/kazupon/vue-i18n/issues/29)
### :warning: Depcreted
* **options:** remove Vue.use options ([d87b59b](https://github.com/kazupon/vue-i18n/commit/d87b59b))
### :zap: Improvements
* **keypath:** port the object path parser ([3ae04b7](https://github.com/kazupon/vue-i18n/commit/3ae04b7))
* **translation:** fix hypenate included key translating ([d0a415f](https://github.com/kazupon/vue-i18n/commit/d0a415f)), closes [#24](https://github.com/kazupon/vue-i18n/issues/24)
* **translation:** warning outputing when cannot translate with keypath ([b4c7c0e](https://github.com/kazupon/vue-i18n/commit/b4c7c0e)), closes [#22](https://github.com/kazupon/vue-i18n/issues/22)
# [3.0.0](https://github.com/kazupon/vue-i18n/compare/v2.4.1...v3.0.0) (2016-04-18)
### Features
* **lang:** support lang reactive changing ([203ee85](https://github.com/kazupon/vue-i18n/commit/203ee85)), closes [#2](https://github.com/kazupon/vue-i18n/issues/2) [#15](https://github.com/kazupon/vue-i18n/issues/15)
* **locale:** support dynamic local ([4d61e8d](https://github.com/kazupon/vue-i18n/commit/4d61e8d)), closes [#6](https://github.com/kazupon/vue-i18n/issues/6) [#21](https://github.com/kazupon/vue-i18n/issues/21)
### DEPRECATED
* **index:** plugin install `Vue.use` options (`options.locales`, `options.lang`). See [README](https://github.com/kazupon/vue-i18n/blob/dev/README.md)
## [2.4.1](https://github.com/kazupon/vue-i18n/compare/v2.4.0...v2.4.1) (2016-02-29)
### Features
* **i18n:** support ruby on rails i18n interpolation format ([b6b2490](https://github.com/kazupon/vue-i18n/commit/b6b2490))
# [2.4.0](https://github.com/kazupon/vue-i18n/compare/v2.3.3...v2.4.0) (2016-02-06)
### Features
* **i18n:** add Vue.t function ([68935e3](https://github.com/kazupon/vue-i18n/commit/68935e3)), closes [#17](https://github.com/kazupon/vue-i18n/issues/17)
## [2.3.3](https://github.com/kazupon/vue-i18n/compare/v2.3.2...v2.3.3) (2015-12-09)
### Bug Fixes
* **npm:** npm install error ([e31e89e](https://github.com/kazupon/vue-i18n/commit/e31e89e))
### Features
* **bower:** good-bye bower :wink: ([d99eb15](https://github.com/kazupon/vue-i18n/commit/d99eb15))
### BREAKING CHANGES
* bower: not support `bower` package manager
I think that bower is dead. :no_good:
## [2.3.2](https://github.com/kazupon/vue-i18n/compare/v2.3.1...v2.3.2) (2015-12-09)
### Features
* **bundle:** more compact the vue-i18n distribution file ([2f32ecc](https://github.com/kazupon/vue-i18n/commit/2f32ecc))
## [2.3.1](https://github.com/kazupon/vue-i18n/compare/v2.3.0...v2.3.1) (2015-12-01)
### Reverts
* **index:** automatically install for standalone ([25b8059](https://github.com/kazupon/vue-i18n/commit/25b8059))
# [2.3.0](https://github.com/kazupon/vue-i18n/compare/v2.2.0...v2.3.0) (2015-11-26)
### Bug Fixes
* **index:** cannot work at Vue 1.0.10 later ([6fd543e](https://github.com/kazupon/vue-i18n/commit/6fd543e)), closes [#9](https://github.com/kazupon/vue-i18n/issues/9)
### Features
* **index:** support automatically install for standalone ([ada2673](https://github.com/kazupon/vue-i18n/commit/ada2673))
# v2.2.0 / 2015-09-16
* Re-implemetation with ES6 (babel)
# v2.1.0 / 2015-07-03
* Add global local language setting with `Vue.config.lang`
# v2.0.0 / 2015-06-29
* Support Vue.js 0.12
* Remove the followings (Breaking Changes)
* `Vue.t` function
* `v-t` directive
# v1.1.1 / 2015-04-21
* Fix unit test error
# v1.1.0 / 2015-01-10
* Support template string in `$t` method
* Support language changing in `$t` method
# v1.0.0 / 2015-01-10
* Add `$t` method
# v0.11.0 / 2014-11-07
* Bump to 0.11.0
# v0.2.0 / 2014-10-08
* Support Vue.js 0.11.0-rc
# v0.1.2 / 2014-10-07
* Support bower
# v0.1.1 / 2014-10-06
* Add `Vue.t` function
# v0.1.0 / 2014-05-06
* Release first
# v0.0.0 / 2014-05-03
* Initial project
================================================
FILE: CONTRIBUTING.md
================================================
# vue-i18n Contributing Guide
- [Issue Reporting Guidelines](#issue-reporting-guidelines)
- [Pull Request Guidelines](#pull-request-guidelines)
- [Development Setup](#development-setup)
## General Guidelines
Thanks for understanding that English is used as a shared language in this repository.
Maintainers do not use machine translation to avoid miscommunication due to error in translation.
If description of issue / PR are written in non-English languages, those may be closed.
It is ofcourse fine to use non-English language, when you open a PR to translate documents and communicates with other users in same language.
## Issue Reporting Guidelines
- The issue list of this repo is **exclusively** for bug reports and feature requests. Non-conforming issues will be closed immediately.
- For simple beginner questions, you can get quick answers from [`#vue-i18n` channel of Discord](https://chat.vuejs.org/)
- For more complicated questions, you can use [the official forum](http://forum.vuejs.org/) or StackOverflow. Make sure to provide enough information when asking your questions - this makes it easier for others to help you!
- Try to search for your issue, it may have already been answered or even fixed in the development branch.
- Check if the issue is reproducible with the latest stable version of Vue. If you are using a pre-release, please indicate the specific version you are using.
- It is **required** that you clearly describe the steps necessary to reproduce the issue you are running into. Issues with no clear repro steps will not be triaged. If an issue labeled "need repro" receives no further input from the issue author for more than 5 days, it will be closed.
- It is recommended that you make a JSFiddle/JSBin/Codepen/CodeSandbox to demonstrate your issue. You could start based with [this template](http://jsfiddle.net/r8qnsfb1/) that already includes the latest version.
- For bugs that involves build setups, you can create a reproduction repository with steps in the README.
- If your issue is resolved but still open, don’t hesitate to close it. In case you found a solution by yourself, it could be helpful to explain how you fixed it.
## Pull Request Guidelines
- The `master` branch is basically just a snapshot of the latest stable release. All development should be done in dedicated branches. **Do not submit PRs against the `master` branch.**
- Checkout a topic branch from the relevant branch, e.g. `v8.x`, and merge back against that branch.
- Work in the `src` folder and **DO NOT** checkin `dist` in the commits.
- It's OK to have multiple small commits as you work on the PR - we will let GitHub automatically squash it before merging.
- Make sure `npm test` passes. (see [development setup](#development-setup))
- If adding new feature:
- Add accompanying test case.
- Provide convincing reason to add this feature. Ideally you should open a suggestion issue first and have it greenlighted before working on it.
- If fixing a bug:
- Provide detailed description of the bug in the PR. Live demo preferred.
- Add appropriate test coverage if applicable.
### Work Step Example
- Fork the repository from [kazupon/vue-i18n](https://github.com/kazupon/vue-i18n) !
- Create your topic branch from `v8.x`: `git branch my-new-topic origin/v8.x`
- Add codes and pass tests !
- Commit your changes: `git commit -am 'Add some topic'`
- Push to the branch: `git push origin my-new-topic`
- Submit a pull request to `v8.x` branch of `kazupon/vue-i18n` repository !
## Development Setup
You will need [Node.js](http://nodejs.org) and [Java Runtime Environment](http://www.oracle.com/technetwork/java/javase/downloads/index.html) (needed for running Selenium server during e2e tests).
After cloning the repo, run:
$ npm install
### Commonly used NPM scripts
# watch and serve with hot reload unit test at localhost:8080
$ npm run dev
# lint source codes
$ npm run lint
# run unit tests in browser (firefox/safari/chrome)
$ npm run test:unit
# build all dist files, including npm packages
$ npm run build
# run the full test suite, include linting / type checking
$ npm test
There are some other scripts available in the `scripts` section of the `package.json` file.
The default test script will do the following: lint with ESLint -> type check with Flow -> unit tests with coverage -> e2e tests. **Please make sure to have this pass successfully before submitting a PR.** Although the same tests will be run against your PR on the CI server, it is better to have it working locally beforehand.
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2016 kazuya kawaguchi
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: README.md
================================================

vue-i18n
Internationalization plugin for Vue.js
> [!IMPORTANT]
> Vue I18n v8 has reached EOL and is no longer actively maintained. Please upgrade to Vue I18n v9 or later. **The seucirty hotfix is only provided for Vue I18n v8.28 until end of 2024**. Thereafter, security fix is not provide for that version later. However, if it is absolutely necessary, please contact to contact@frapwings.jp
🏅 Platinum Sponsors
✨ Special Sponsors
🥇 Gold Sponsors
🥈 Silver Sponsors
🥉 Bronze Sponsors
## ⚠️ NOTICE
**This repository is for Vue I18n v8.x and Vue 2**
**If you want to know about how to usage for Vue I18n v9 on Vue 3, See the [this repository](https://github.com/intlify/vue-i18n-next))**
## 🙋♂️ About support for v8
We will follow Vue v2 maintenance lifespan
## 📔 Documentation
About Vue I18n v8.x, See [here](http://kazupon.github.io/vue-i18n/)
If you want to read Vue I18n v9 docs, See [here](https://vue-i18n.intlify.dev/)
## 📜 Changelog
Detailed changes for each release are documented in the [CHANGELOG.md](https://github.com/kazupon/vue-i18n/blob/dev/CHANGELOG.md).
## ❗ Issues
Please make sure to read the [Issue Reporting Checklist](https://github.com/kazupon/vue-i18n/blob/dev/CONTRIBUTING.md#issue-reporting-guidelines) before opening an issue. Issues not conforming to the guidelines may be closed immediately.
## 💪 Contribution
Please make sure to read the [Contributing Guide](https://github.com/kazupon/vue-i18n/blob/dev/CONTRIBUTING.md) before making a pull request.
## ©️ License
[MIT](http://opensource.org/licenses/MIT)
================================================
FILE: SECURITY.md
================================================
# Security Policy
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 8.28.x | :white_check_mark: |
| < 8.28.0 | :x: |
## Reporting a Vulnerability
To report a vulnerability, please [privately report it via the Security tab](https://github.com/kazupon/vue-i18n/security/advisories/new) on the correct GitHub repository (see [documentation](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability#privately-reporting-a-security-vulnerability)). If that is impossible, feel free to send an email to contact@frapwings.jp instead.
All security vulnerabilities will be promptly verified and addressed.
================================================
FILE: assets/README.md
================================================
# vue-i18n-art
> Vue I18n artworks

Vue I18n artworks by Kazuya Kawaguchi is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License, with the following extra conditions:
- It is **OK** to use the Vue I18n logo in the following cases:
- in marketing materials for technical events, e.g. meetups, hackathons, conferences and workshops that are related to Vue I18n.
- in open source projects related to Vue I18n.
- in technical articles / videos / books / papers for educational purposes.
- to illustrate a commercial product's Vue I18n integration in its marketing copy.
- It is **NOT OK** to use the Vue I18n logo in the following cases without prior written consent from the copyright owner:
- Using the Vue I18n logo in a commercial product for purposes other than illustrating its Vue I18n integration.
- Sell physical products that uses the Vue I18n logo or its variants, e.g. t-shirts.
The copyright owner reserves the right of final explanation for any use case not explicitly stated above.
================================================
FILE: config/.eslintrc.js
================================================
module.exports = {
globals: {
process: true
},
extends: 'vue',
rules: {
'no-multiple-empty-lines': [2, {max: 2}],
'no-console': 0
}
}
================================================
FILE: config/banner.js
================================================
const pack = require('../package.json')
const version = process.env.VERSION || pack.version
module.exports =
'/*!\n' +
` * ${pack.name} v${version} \n` +
` * (c) ${new Date().getFullYear()} ${pack.author.name}\n` +
` * Released under the ${pack.license} License.\n` +
' */'
================================================
FILE: config/build.js
================================================
'use strict'
const fs = require('fs')
const exist = fs.existsSync
const mkdir = fs.mkdirSync
const getAllEntries = require('./entry').getAllEntries
const build = require('./bundle')
if (!exist('dist')) {
mkdir('dist')
}
let entries = getAllEntries()
// filter entries via command line arg
if (process.argv[2]) {
const filters = process.argv[2].split(',')
entries = entries.filter(b => {
return filters.some(f => b.dest.indexOf(f) > -1)
})
}
build(entries)
================================================
FILE: config/bundle.js
================================================
const fs = require('fs')
const path = require('path')
const zlib = require('zlib')
const rollup = require('rollup')
const terser = require('terser')
module.exports = build
function build (entries) {
let built = 0
const total = entries.length
const next = () => {
buildEntry(entries[built]).then(() => {
built++
if (built < total) {
next()
}
}).catch(logError)
}
next()
}
function buildEntry (config) {
const output = config.output
const { file, banner } = output
const isProd = /min\.js$/.test(file)
return rollup.rollup(config)
.then(bundle => bundle.generate(output))
.then(({ code }) => {
if (isProd) {
var minified = (banner ? banner + '\n' : '') + terser.minify(code, {
toplevel: true,
output: {
ascii_only: true
},
compress: {
pure_funcs: ['makeMap']
}
}).code
return write(file, minified, true)
} else {
return write(file, code)
}
})
}
function write (dest, code, zip) {
return new Promise((resolve, reject) => {
function report (extra) {
console.log(blue(path.relative(process.cwd(), dest)) + ' ' + getSize(code) + (extra || ''))
resolve()
}
fs.writeFile(dest, code, err => {
if (err) { return reject(err) }
if (zip) {
zlib.gzip(code, (err, zipped) => {
if (err) { return reject(err) }
report(' (gzipped: ' + getSize(zipped) + ')')
})
} else {
report()
}
})
})
}
function getSize (code) {
return (code.length / 1024).toFixed(2) + 'kb'
}
function logError (e) {
console.log(e)
}
function blue (str) {
return '\x1b[1m\x1b[34m' + str + '\x1b[39m\x1b[22m'
}
================================================
FILE: config/entry.js
================================================
const path = require('path')
const replace = require('rollup-plugin-replace')
const flow = require('rollup-plugin-flow-no-whitespace')
const buble = require('rollup-plugin-buble')
const node = require('rollup-plugin-node-resolve')
const cjs = require('rollup-plugin-commonjs')
const banner = require('./banner')
const pack = require('../package.json')
function toUpper (_, c) {
return c ? c.toUpperCase() : ''
}
const resolve = _path => path.resolve(__dirname, '../', _path)
const classifyRE = /(?:^|[-_\/])(\w)/g
function classify (str) {
return str.replace(classifyRE, toUpper)
}
const moduleName = classify(pack.name)
const entries = {
commonjs: {
entry: resolve('src/index.js'),
dest: resolve(`dist/${pack.name}.common.js`),
format: 'cjs',
banner
},
esm: {
entry: 'src/index.js',
dest: resolve(`dist/${pack.name}.esm.js`),
format: 'es',
banner
},
production: {
entry: 'src/index.js',
dest: resolve(`dist/${pack.name}.min.js`),
format: 'umd',
env: 'production',
moduleName,
banner
},
development: {
entry: 'src/index.js',
dest: resolve(`dist/${pack.name}.js`),
format: 'umd',
env: 'development',
moduleName,
banner
},
browser_development: {
entry: 'src/index.js',
dest: resolve(`dist/${pack.name}.esm.browser.js`),
format: 'es',
env: 'development',
moduleName,
transpile: false
},
browser_production: {
entry: 'src/index.js',
dest: resolve(`dist/${pack.name}.esm.browser.min.js`),
format: 'es',
env: 'production',
moduleName,
transpile: false
}
}
function genConfig (opts) {
const config = {
input: opts.entry,
output: {
file: opts.dest,
name: moduleName,
format: opts.format,
banner: opts.banner
},
plugins: [
flow(),
node(),
cjs()
]
}
const replacePluginOptions = { '__VERSION__': pack.version }
if (opts.env) {
replacePluginOptions['process.env.NODE_ENV'] = JSON.stringify(opts.env)
}
config.plugins.push(replace(replacePluginOptions))
if (opts.transpile !== false) {
config.plugins.push(buble())
}
return config
}
exports.getEntry = name => genConfig(entries[name])
exports.getAllEntries = () => Object.keys(entries).map(name => genConfig(entries[name]))
================================================
FILE: config/karma-intl-plugin.js
================================================
const path = require('path')
const init = function (files) {
files.unshift({
pattern: path.join(__dirname, '../node_modules/intl/dist/Intl.complete.js'),
included: true,
served: true,
watched: false
})
}
init.$inject = ['config.files']
module.exports = {
'framework:intl-shim': ['factory', init]
}
================================================
FILE: config/karma.base.conf.js
================================================
const webpack = require('webpack')
const intlPlugin = require('./karma-intl-plugin')
const webpackConfig = {
module: {
rules: [{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/
}]
},
devtool: '#inline-source-map'
}
module.exports = {
frameworks: ['mocha', 'intl-shim'],
files: [
'../test/unit/index.js'
],
preprocessors: {
'../test/unit/index.js': ['webpack', 'sourcemap']
},
webpack: Object.assign({
mode: 'development',
}, webpackConfig),
webpackMiddleware: {
noInfo: true
},
plugins: [
'karma-mocha',
'karma-mocha-reporter',
'karma-sourcemap-loader',
'karma-webpack',
intlPlugin,
]
}
================================================
FILE: config/karma.cover.conf.js
================================================
const base = require('./karma.base.conf')
module.exports = config => {
const options = Object.assign(base, {
browsers: ['ChromeHeadless'],
reporters: ['mocha', 'coverage'],
coverageReporter: {
reporters: [
{ type: 'lcov', dir: '../coverage', subdir: '.' },
{ type: 'text-summary', dir: '../coverage', subdir: '.' }
]
},
singleRun: true,
plugins: base.plugins.concat([
'karma-coverage',
'karma-chrome-launcher'
])
})
config.set(options)
}
================================================
FILE: config/karma.sauce.conf.js
================================================
const base = require('./karma.base.conf')
const pack = require('../package.json')
/**
* Having too many tests running concurrently on saucelabs
* causes timeouts and errors, so we have to run them in
* smaller batches.
*/
const batches = [
// the coolkids
{
sl_chrome: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 7'
},
sl_firefox: {
base: 'SauceLabs',
browserName: 'firefox'
},
sl_mac_safari: {
base: 'SauceLabs',
browserName: 'safari',
platform: 'OS X 10.10'
}
},
// ie family
{
sl_ie_9: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 7',
version: '9'
},
sl_ie_10: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 8',
version: '10'
},
sl_ie_11: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 8.1',
version: '11'
},
sl_edge: {
base: 'SauceLabs',
platform: 'Windows 10',
browserName: 'MicrosoftEdge'
}
},
// mobile
{
sl_ios_safari_8: {
base: 'SauceLabs',
browserName: 'iphone',
version: '8.4'
},
sl_ios_safari_9: {
base: 'SauceLabs',
browserName: 'iphone',
version: '9.3'
},
sl_android_4_4: {
base: 'SauceLabs',
browserName: 'android',
version: '4.4'
},
sl_android_5_1: {
base: 'SauceLabs',
browserName: 'android',
version: '5.1'
}
}
]
module.exports = config => {
const batch = batches[process.argv[5] || 0]
config.set(Object.assign(base, {
singleRun: true,
browsers: Object.keys(batch),
customLaunchers: batch,
reporters: process.env.CI
? ['dots', 'saucelabs'] // avoid spamming CI output
: ['progress', 'saucelabs'],
sauceLabs: {
testName: `${pack.name} unit tests`,
recordScreenshots: false,
connectOptions: {
'no-ssl-bump-domains': 'all' // Ignore SSL error on Android emulator
},
build: process.env.CIRCLE_BUILD_NUM || process.env.SAUCE_BUILD_ID || Date.now()
},
captureTimeout: 300000,
browserNoActivityTimeout: 300000,
plugins: base.plugins.concat([
'karma-sauce-launcher'
])
}))
}
================================================
FILE: config/karma.unit.ci.conf.js
================================================
const base = require('./karma.base.conf')
module.exports = config => {
config.set(Object.assign(base, {
browsers: ['ChromeHeadless', 'FirefoxHeadless'],
reporters: ['progress'],
singleRun: true,
plugins: base.plugins.concat([
'karma-chrome-launcher',
'karma-firefox-launcher',
])
}))
}
================================================
FILE: config/karma.unit.conf.js
================================================
const base = require('./karma.base.conf')
module.exports = config => {
config.set(Object.assign(base, {
browsers: ['Chrome', 'Firefox', 'Safari'],
reporters: ['progress'],
singleRun: true,
plugins: base.plugins.concat([
'karma-chrome-launcher',
'karma-firefox-launcher',
'karma-safari-launcher'
])
}))
}
================================================
FILE: config/nightwatch.conf.js
================================================
// http://nightwatchjs.org/guide#settings-file
module.exports = {
src_folders: ['test/e2e/test'],
output_folder: 'test/e2e/report',
custom_commands_path: ['node_modules/nightwatch-helpers/commands'],
custom_assertions_path: ['node_modules/nightwatch-helpers/assertions'],
selenium: {
start_process: true,
server_path: 'node_modules/selenium-server/lib/runner/selenium-server-standalone-3.141.59.jar',
host: '127.0.0.1',
port: 4444,
cli_args: {
'webdriver.chrome.driver': require('chromedriver').path
}
},
test_settings: {
default: {
selenium_port: 4444,
selenium_host: 'localhost',
silent: true,
screenshots: {
enabled: true,
on_failure: true,
on_error: false,
path: 'test/e2e/screenshots'
}
},
chrome: {
desiredCapabilities: {
browserName: 'chrome',
javascriptEnabled: true,
acceptSslCerts: true,
chromeOptions: {
// Issue https://github.com/nightwatchjs/nightwatch/issues/2149
w3c: false
}
}
},
firefox: {
desiredCapabilities: {
browserName: 'firefox',
javascriptEnabled: true,
acceptSslCerts: true
}
},
headless: {
desiredCapabilities: {
browserName: 'chrome',
chromeOptions : {
args : ['headless'],
w3c: false
},
javascriptEnabled: true,
acceptSslCerts: true
}
}
}
}
================================================
FILE: config/version.js
================================================
const fs = require('fs')
const pack = require('../package.json')
// update installation.md
const installation = fs
.readFileSync('./vuepress/installation.md', 'utf-8')
.replace(
/https:\/\/unpkg\.com\/vue-i18n@[\d.]+.[\d]+\/dist\/vue-i18n\.js/,
'https://unpkg.com/vue-i18n@' + pack.version + '/dist/vue-i18n.js'
)
fs.writeFileSync('./vuepress/installation.md', installation)
================================================
FILE: config/webpack.dev.conf.js
================================================
const path = require('path')
const webpack = require('webpack')
module.exports = {
entry: 'mocha-loader!./test/unit/index.js',
mode: 'development',
resolve: {
extensions: ['.js']
},
output: {
path: path.resolve(__dirname, '/test/unit'),
filename: 'tests.js',
publicPath: '/'
},
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules|vue\/dist/,
loader: 'babel-loader'
}]
},
devtool: '#eval-source-map'
}
================================================
FILE: decls/i18n.js
================================================
declare var Intl: any;
declare type Path = string;
declare type Locale = string;
declare type MessageContext = {
list: (index: number) => mixed,
named: (key: string) => mixed,
linked: (key: string) => TranslateResult,
values: any,
path: string,
formatter: Formatter,
messages: LocaleMessages,
locale: Locale
}
declare type MessageFunction = (ctx: MessageContext) => string
declare type FallbackLocale = string | string[] | false | { [locale: string]: string[] };
declare type LocaleMessage = string | MessageFunction | LocaleMessageObject | LocaleMessageArray;
declare type LocaleMessageObject = { [key: Path]: LocaleMessage };
declare type LocaleMessageArray = Array;
declare type LocaleMessages = { [key: Locale]: LocaleMessageObject };
// This options is the same as Intl.DateTimeFormat constructor options:
// http://www.ecma-international.org/ecma-402/2.0/#sec-intl-datetimeformat-constructor
declare type DateTimeFormatOptions = {
year?: 'numeric' | '2-digit',
month?: 'numeric' | '2-digit' | 'narrow' | 'short' | 'long',
day?: 'numeric' | '2-digit',
hour?: 'numeric' | '2-digit',
minute?: 'numeric' | '2-digit',
second?: 'numeric' | '2-digit',
weekday?: 'narrow' | 'short' | 'long',
hour12?: boolean,
era?: 'narrow' | 'short' | 'long',
timeZone?: string, // IANA time zone
timeZoneName?: 'short' | 'long',
localeMatcher?: 'lookup' | 'best fit',
formatMatcher?: 'basic' | 'best fit'
};
declare type DateTimeFormat = { [key: string]: DateTimeFormatOptions };
declare type DateTimeFormats = { [key: Locale]: DateTimeFormat };
// This options is the same as Intl.NumberFormat constructor options:
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat
declare type NumberFormatOptions = {
style?: 'decimal' | 'currency' | 'percent',
currency?: string, // ISO 4217 currency codes
currencyDisplay?: 'symbol' | 'code' | 'name',
useGrouping?: boolean,
minimumIntegerDigits?: number,
minimumFractionDigits?: number,
maximumFractionDigits?: number,
minimumSignificantDigits?: number,
maximumSignificantDigits?: number,
localeMatcher?: 'lookup' | 'best fit',
formatMatcher?: 'basic' | 'best fit'
};
declare type NumberFormat = { [key: string]: NumberFormatOptions };
declare type NumberFormats = { [key: Locale]: NumberFormat };
declare type Modifiers = { [key: string]: (str: string) => string };
declare type TranslateResult = string | LocaleMessages;
declare type DateTimeFormatResult = string;
declare type NumberFormatResult = string;
declare type MissingHandler = (locale: Locale, key: Path, vm?: any) => string | void;
declare type PostTranslationHandler = (str: string, key?: string) => string;
declare type GetChoiceIndex = (choice: number, choicesLength: number) => number
declare type ComponentInstanceCreatedListener = (newI18n: I18n, rootI18n: I18n) => void;
declare type FormattedNumberPartType = 'currency' | 'decimal' | 'fraction' | 'group' | 'infinity' | 'integer' | 'literal' | 'minusSign' | 'nan' | 'plusSign' | 'percentSign';
declare type FormattedNumberPart = {
type: FormattedNumberPartType,
value: string,
};
// This array is the same as Intl.NumberFormat.formatToParts() return value:
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/formatToParts#Return_value
declare type NumberFormatToPartsResult = Array;
declare type WarnHtmlInMessageLevel = 'off' | 'warn' | 'error';
declare type I18nOptions = {
locale?: Locale,
fallbackLocale?: FallbackLocale,
messages?: LocaleMessages,
dateTimeFormats?: DateTimeFormats,
datetimeFormats?: DateTimeFormats,
numberFormats?: NumberFormats,
formatter?: Formatter,
missing?: MissingHandler,
modifiers?: Modifiers,
root?: I18n, // for internal
fallbackRoot?: boolean,
fallbackRootWithEmptyString?: boolean,
formatFallbackMessages?: boolean,
sync?: boolean,
silentTranslationWarn?: boolean | RegExp,
silentFallbackWarn?: boolean | RegExp,
pluralizationRules?: PluralizationRules,
preserveDirectiveContent?: boolean,
warnHtmlInMessage?: WarnHtmlInMessageLevel,
sharedMessages?: LocaleMessage,
postTranslation?: PostTranslationHandler,
componentInstanceCreatedListener?: ComponentInstanceCreatedListener,
escapeParameterHtml?: boolean,
__VUE_I18N_BRIDGE__?: string,
};
declare type IntlAvailability = {
dateTimeFormat: boolean,
numberFormat: boolean
};
declare type PluralizationRules = {
[lang: string]: GetChoiceIndex,
}
declare interface I18n {
static install: () => void, // for Vue plugin interface
static version: string,
static availabilities: IntlAvailability,
get vm (): any, // for internal
get locale (): Locale,
set locale (locale: Locale): void,
get fallbackLocale (): FallbackLocale,
set fallbackLocale (locale: FallbackLocale): void,
get messages (): LocaleMessages,
get dateTimeFormats (): DateTimeFormats,
get numberFormats (): NumberFormats,
get availableLocales (): Locale[],
get missing (): ?MissingHandler,
set missing (handler: MissingHandler): void,
get formatter (): Formatter,
set formatter (formatter: Formatter): void,
get formatFallbackMessages (): boolean,
set formatFallbackMessages (fallback: boolean): void,
get silentTranslationWarn (): boolean | RegExp,
set silentTranslationWarn (silent: boolean | RegExp): void,
get silentFallbackWarn (): boolean | RegExp,
set silentFallbackWarn (slient: boolean | RegExp): void,
get pluralizationRules (): PluralizationRules,
set pluralizationRules (rules: PluralizationRules): void,
get preserveDirectiveContent (): boolean,
set preserveDirectiveContent (preserve: boolean): void,
get warnHtmlInMessage (): WarnHtmlInMessageLevel,
set warnHtmlInMessage (level: WarnHtmlInMessageLevel): void,
get postTranslation (): ?PostTranslationHandler,
set postTranslation (handler: PostTranslationHandler): void,
getLocaleMessage (locale: Locale): LocaleMessageObject,
setLocaleMessage (locale: Locale, message: LocaleMessageObject): void,
mergeLocaleMessage (locale: Locale, message: LocaleMessageObject): void,
t (key: Path, ...values: any): TranslateResult,
i (key: Path, locale: Locale, values: Object): TranslateResult,
tc (key: Path, choice?: number, ...values: any): TranslateResult,
te (key: Path, locale?: Locale): boolean,
getDateTimeFormat (locale: Locale): DateTimeFormat,
setDateTimeFormat (locale: Locale, format: DateTimeFormat): void,
mergeDateTimeFormat (locale: Locale, format: DateTimeFormat): void,
d (value: number | Date, ...args: any): DateTimeFormatResult,
getNumberFormat (locale: Locale): NumberFormat,
setNumberFormat (locale: Locale, format: NumberFormat): void,
mergeNumberFormat (locale: Locale, format: NumberFormat): void,
n (value: number, ...args: any): NumberFormatResult,
getChoiceIndex: GetChoiceIndex,
pluralizationRules: PluralizationRules,
preserveDirectiveContent: boolean
};
declare interface Formatter {
interpolate (message: string, values: any, path: string): (Array | null)
};
================================================
FILE: decls/module.js
================================================
declare type $npm$Vue$Dictionaly = { [key: string]: T }
declare type Util = {
extend: (to: Object, from: ?Object) => Object,
hasOwn: (obj: Object, key: string) => boolean,
isPlainObject: (obj: any) => boolean,
isObject: (obj: mixed) => boolean,
}
declare type Config = {
optionMergeStrategies: $npm$Vue$Dictionaly,
silent: boolean,
productionTip: boolean,
performance: boolean,
devtools: boolean,
errorHandler: ?(err: Error, vm: Vue, info: string) => void,
ignoredElements: Array,
keyCodes: $npm$Vue$Dictionaly,
isReservedTag: (x?: string) => boolean,
parsePlatformTagName: (x: string) => string,
isUnknownElement: (x?: string) => boolean,
getTagNamespace: (x?: string) => string | void,
mustUseProp: (tag: string, type: ?string, name: string) => boolean,
}
declare interface Vue {
static config: Config,
static util: Util,
static version: string,
}
================================================
FILE: dist/README.md
================================================
## Explanation of Different Builds
- UMD: `vue-i18n.js`
- CommonJS: `vue-i18n.common.js`
- ES Module for bundlers: `vue-i18n.esm.js`
- ES Module for browsers: `vue-i18n.esm.browser.js`
### Terms
- **[UMD](https://github.com/umdjs/umd)**: UMD builds can be used directly in the browser via a `