diff --git a/README.md b/README.md
index fe7a0c032..9fd125a44 100644
--- a/README.md
+++ b/README.md
@@ -103,25 +103,22 @@ Vue I18n is part of the Vue Ecosystem and Intlify Project is an open source proj
## Status: [](https://github.com/intlify/vue-i18n/actions/workflows/ci.yml)
-- v10: stable (About maintenance status, see the [here](https://vue-i18n.intlify.dev/guide/maintenance.html))
+- v11: stable (About maintenance status, see the [here](https://vue-i18n.intlify.dev/guide/maintenance.html))
- [Documentation](https://vue-i18n.intlify.dev/)
-- If you use Vue I18n v8 for Vue 2, see this [repository](https://github.com/kazupon/vue-i18n)
## Quickstart
-- Via CDN: ``
+- Via CDN: ``
- In-browser playground on [CodeSandbox](https://codesandbox.io/s/vue-i18n-9-template-h28c0)
- Add it to an existing Vue Project:
```bash
- npm install vue-i18n@9
+ npm install vue-i18n@11
```
-## Changes from Vue I18n v8
+## Vue I18n v8
-Please consult the [Migration Guide](https://vue-i18n.intlify.dev/guide/migration/breaking.html).
+Vue I18n v8 has reached EOL and is no longer actively maintained. Upgrade to Vue I18n v9 or later.
-## 🙋♂️ About support for v9 and earlier
-- v7 and v8: we will follow Vue v2 maintenance lifespan
## 🍭 Examples
diff --git a/docs-old/.vuepress/components/sponsor-button.vue b/docs-old/.vuepress/components/sponsor-button.vue
deleted file mode 100644
index 39dc26c1a..000000000
--- a/docs-old/.vuepress/components/sponsor-button.vue
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
You can introduce internationalization into your app with simple API
-
-
-
Powerful
-
In addition to simple translation, support localization such as pluralization, number, datetime ... etc
-
-
-
Component-oriented
-
You can manage locale messages on single file component
-
-
diff --git a/docs-old/api/README.md b/docs-old/api/README.md
deleted file mode 100644
index 93074c784..000000000
--- a/docs-old/api/README.md
+++ /dev/null
@@ -1,917 +0,0 @@
----
-sidebar: auto
----
-
-# API references
-
-## Extension of Vue
-
-### Vue constructor options
-
-#### i18n
-
- * **Type:** `I18nOptions`
-
-Component based localization option.
-
- * **See also:** `VueI18n` class constructor options
-
-### Vue injected methods
-
-#### $t
-
- * **Arguments:**
-
- * `{Path} key`: required
- * `{Locale} locale`: optional
- * `{Array | Object} values`: optional
-
- * **Return:** `TranslateResult`
-
-Localize the locale message of `key`. Localize in preferentially component locale messages than global locale messages. If not specified component locale messages, localize with global locale messages. If you specified `locale`, localize the locale messages of `locale`. If you specified `key` of list / named formatting local messages, you must specify `values` too. For `values` more details see [Formatting](../guide/formatting.md).
-
-If default pluralization does not suit your needs, see [pluralization rules in constructor options](#pluralizationrules) and [custom pluralization](../guide/pluralization.md).
-
-:::danger Tip
-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)`).
-:::
-
-#### $tc
-
- * **Arguments:**
-
- * `{Path} key`: required
- * `{number} choice`: optional, default 1
- * `{Locale} locale`: optional
- * `{string | Array | Object} values`: optional
-
- * **Return:** `TranslateResult`
-
-Localize the locale message of `key` with pluralization. Localize in preferentially component locale messages than global locale messages. If not specified component locale messages, localize with global locale messages. If you specified `locale`, localize the locale messages of `locale`. If you will specify string value to `values`, localize the locale messages of value. If you will specify Array or Object value to `values`, you must specify with `values` of $t.
-
-:::danger Tip
-Note that you need to guarantee this context equal to component instance in lifecycle methods (e.g. in `data` options, `const $tc = this.$tc.bind(this)`).
-:::
-
-#### $te
-
- * **Arguments:**
-
- * `{Path} key`: required
- * `{Locale} locale`: optional
-
- * **Return:** `boolean`
-
-Check whether key exists. In Vue instance, If not specified component locale messages, check with global locale messages. If you specified `locale`, check the locale messages of `locale`.
-
-:::danger Tip
-Note that you need to guarantee this context equal to component instance in lifecycle methods (e.g. in `data` options, `const $te = this.$te.bind(this)`).
-:::
-
-#### $d
-
-> :new: 7.0+
-
- * **Arguments:**
-
- * `{number | Date} value`: required
- * `{Path | Object} key`: optional
- * `{Locale | Object} locale`: optional
-
- * **Return:** `DateTimeFormatResult`
-
-Localize the datetime of `value` with datetime format of `key`. The datetime format of `key` need to register to `dateTimeFormats` option of `VueI18n` class, and depend on `locale` option of `VueI18n` constructor. If you will specify `locale` argument, it will have priority over `locale` option of `VueI18n` constructor.
-
-If the datetime format of `key` not exist in `dateTimeFormats` option, fallback to depend on `fallbackLocale` option of `VueI18n` constructor.
-
-:::danger Tip
-Note that you need to guarantee this context equal to component instance in lifecycle methods (e.g. in `data` options, `const $d = this.$d.bind(this)`).
-:::
-
-#### $n
-
-> :new: 7.0+
-
- * **Arguments:**
-
- * `{number} value`: required
- * `{Path | Object} format`: optional
- * `{Locale} locale`: optional
-
- * **Return:** `NumberFormatResult`
-
-Localize the number of `value` with number format of `format`. The number format of `format` need to register to `numberFormats` option of `VueI18n` class, and depend on `locale` option of `VueI18n` constructor. If you will specify `locale` argument, it will have priority over `locale` option of `VueI18n` constructor.
-
-If the number format of `format` not exist in `numberFormats` option, fallback to depend on `fallbackLocale` option of `VueI18n` constructor.
-
-If the second `format` argument specified as an object, it should have the following properties:
-
-* `key {Path}`: optional, number format
-* `locale {Locale}`: optional, locale
-* `compactDisplay {string}`: optional, number format option
-* `currency {string}`: optional, number format option
-* `currencyDisplay {string}`: optional, number format option
-* `currencySign {string}`: optional, number format option
-* `localeMatcher {string}`: optional, number format option
-* `notation {string}`: optional, number format option
-* `numberingSystem {string}`: optional, number format option
-* `signDisplay {string}`: optional, number format option
-* `style {string}`: optional, number format option
-* `unit {string}`: optional, number format option
-* `unitDisplay {string}`: optional, number format option
-* `useGrouping {string}`: optional, number format option
-* `minimumIntegerDigits {string}`: optional, number format option
-* `minimumFractionDigits {string}`: optional, number format option
-* `maximumFractionDigits {string}`: optional, number format option
-* `minimumSignificantDigits {string}`: optional, number format option
-* `maximumSignificantDigits {string}`: optional, number format option
-
-Any specified number format options will have priority over `numberFormats` of `VueI18n` constructor.
-
-:::danger Tip
-Note that you need to guarantee this context equal to component instance in lifecycle methods (e.g. in `data` options, `const $n = this.$n.bind(this)`).
-:::
-
-### Injected properties
-
-#### $i18n
-
- * **Type:** `I18n`
-
- * **Read only**
-
-Get a `VueI18n` instance. If you are specify.
-
-If you have specified an `i18n` option at component options, you will be able to get a `VueI18n` instance at the component, Otherwise, you will be able get root `VueI18n` instance.
-
-## `VueI18n` class
-
-`VueI18n` class implement `I18n` interface of [flowtype definitions](https://github.com/kazupon/vue-i18n/blob/dev/decls/i18n.js)
-
-### Static properties
-
-#### version
-
- * **Type:** `string`
-
-vue-i18n version.
-
-#### availabilities
-
-> :new: 7.0+
-
- * **Type:** `IntlAvailability`
-
-Whether the following internationalization features are available:
-
- * `{boolean} dateTimeFormat`: locale sensitive datetime formatting
-
- * `{boolean} numberFormat`: locale sensitive number formatting
-
-The above internationalization features are depends on [the browser environments](http://kangax.github.io/compat-table/esintl/), due to implement with ECMAScript Internationalization API (ECMA-402).
-
-### Constructor options
-
-You can specify the below some options of `I18nOptions` constructor options of [flowtype definitions](https://github.com/kazupon/vue-i18n/blob/dev/decls/i18n.js)
-
-#### locale
-
- * **Type:** `Locale`
-
- * **Default:** `'en-US'`
-
-The locale of localization. If the locale contains a territory and a dialect, this locale contains an implicit fallback.
-
-#### fallbackLocale
-
- * **Type:** `FallbackLocale`
-
- * **Default:** `false`
-
-The locale of fallback localization. For more complex fallback definitions see [fallback](../guide/fallback.md).
-
-#### messages
-
- * **Type:** `LocaleMessages`
-
- * **Default:** `{}`
-
-The locale messages of localization.
-
-#### dateTimeFormats
-
-> :new: 7.0+
-
- * **Type:** `DateTimeFormats`
-
- * **Default:** `{}`
-
-The datetime formats of localization.
-
- * **See also:** `DateTimeFormats` type of [flowtype definitions](https://github.com/kazupon/vue-i18n/blob/dev/decls/i18n.js)
-
-#### numberFormats
-
-> :new: 7.0+
-
- * **Type:** `NumberFormats`
-
- * **Default:** `{}`
-
-The number formats of localization.
-
- * **See also:** `NumberFormats` type of [flowtype definitions](https://github.com/kazupon/vue-i18n/blob/dev/decls/i18n.js)
-
-#### availableLocales
-
-> :new: 8.9.0+
-
- * **Type:** `Locale[]`
-
- * **Default:** `[]`
-
- * **Examples:** `["en", "ja"]`
-
-The list of available locales in `messages` in lexical order.
-
-#### formatter
-
- * **Type:** `Formatter`
-
- * **Default:** Built in formatter
-
-The formatter that implemented with `Formatter` interface.
-
-#### modifiers
-
-> :new: 8.15.0+
-
- * **Type:** `Modifiers`
-
- * **Default:** `lower` and `upper` modifiers
-
-Modifiers functions for linked messages
-
-#### missing
-
- * **Type:** `MissingHandler`
-
- * **Default:** `null`
-
-A handler for localization missing. The handler gets called with the localization target locale, localization path key, the Vue instance and values.
-
-If missing handler is assigned, and occurred localization missing, it's not warned.
-
-#### fallbackRoot
-
- * **Type:** `Boolean`
-
- * **Default:** `true`
-
-In the component localization, whether to fall back to root level (global) localization when localization fails.
-
-If `false`, it's warned, and is returned the key.
-
-#### sync
-
- * **Type:** `Boolean`
-
- * **Default:** `true`
-
-Whether synchronize the root level locale to the component localization locale.
-
-If `false`, regardless of the root level locale, localize for each component locale.
-
-#### silentTranslationWarn
-
-> 6.1+, :up: 8.13
-
- * **Type:** `Boolean | RegExp`
-
- * **Default:** `false`
-
-Whether suppress warnings outputted when localization fails.
-
-If `true`, suppress localization fail warnings.
-If you use regular expression, you can suppress localization fail warnings that it match with translation `key` (e.g. `$t`).
-
-#### silentFallbackWarn
-
-> :new: 8.8+, :up: 8.13
-
- * **Type:** `Boolean | RegExp`
- * **Default:** `false`
-
-Whether suppress warnings when falling back to either `fallbackLocale` or `root`.
-
-If `true`, warnings will be generated only when no translation is available at all, and not for fallbacks.
-If you use regular expression, you can suppress the fallback warnings that it match `key` (e.g. `$t`).
-
-#### pluralizationRules
-
-> 8.5+
-
- * **Type:** `PluralizationRules`
-
- * **Default:** `{}`
-
- A set of rules for word pluralization in a following format:
- ```js
- {
- // Key - locale for the rule to be applied to.
- // Value - mapping function that maps a choice index from `$tc` to the actual choice of the plural word. (See getChoiceIndex for details)
- 'pt': function(choice, choiceIndex) => Number/* index of the plural word */;
- 'ru': function(choice, choiceIndex) => Number/* index of the plural word */;
- 'en': function(choice, choiceIndex) => Number/* index of the plural word */;
- 'jp': function(choice, choiceIndex) => Number/* index of the plural word */;
- }
- ```
-
-#### preserveDirectiveContent
-
-> 8.7+
-
- * **Type:** `Boolean`
-
- * **Default:** `false`
-
-Whether `v-t` directive's element should preserve `textContent` after directive is unbinded.
-
-#### warnHtmlInMessage
-
-> 8.11+
-
- * **Type:** `WarnHtmlInMessageLevel`
-
- * **Default:** `off`
-
-Whether to allow the use locale messages of HTML formatting. See the `warnHtmlInMessage` property.
-
-:::danger Important!!
-In next major version, `warnHtmlInMessage` option is `warn` as default.
-:::
-
-#### sharedMessages
-
-> 8.12+
-
- * **Type:** `LocaleMessages`
-
- * **Default:** `undefined`
-
-The shared locale messages of localization for components. More detail see [Component based localization](../guide/component.md#shared-locale-messages-for-components).
-
-#### postTranslation
-
-> 8.16+
-
- * **Type:** `PostTranslationHandler`
-
- * **Default:** `null`
-
-A handler for post processing of translation. The handler gets after being called with the `$t`, `t`, `$tc`, and `tc`.
-
-This handler is useful if you want to filter on translated text such as space trimming.
-
-#### componentInstanceCreatedListener
-
-> 8.18+
-
- * **Type:** `ComponentInstanceCreatedListener`
-
- * **Default:** `null`
-
-A handler for getting notified when component-local instance was created. The handler gets called with new and old (root) VueI18n instances.
-
-This handler is useful when extending the root VueI18n instance and wanting to also apply those extensions to component-local instance.
-
-#### escapeParameterHtml
-
-> 8.22+
-
- * **Type:** `Boolean`
-
- * **Default:** `false`
-
-If `escapeParameterHtml` is configured as true then interpolation parameters are escaped before the message is translated.
-This is useful when translation output is used in `v-html` and the translation resource contains html markup (e.g. ``
-around a user provided value). This usage pattern mostly occurs when passing precomputed text strings into UI compontents.
-
-The escape process involves replacing the following symbols with their respective HTML character entities: `<`, `>`, `"`, `'`.
-
-Setting `escapeParameterHtml` as true should not break existing functionality but provides a safeguard against a subtle
-type of XSS attack vectors.
-
-### Properties
-
-#### locale
-
- * **Type:** `Locale`
-
- * **Read/Write**
-
-The locale of localization. If the locale contains a territory and a dialect, this locale contains an implicit fallback.
-
-#### fallbackLocale
-
- * **Type:** `FallbackLocale`
-
- * **Read/Write**
-
-The locale of fallback localization. For more complex fallback definitions see [fallback](../guide/fallback.md).
-
-#### messages
-
- * **Type:** `LocaleMessages`
-
- * **Read only**
-
-The locale messages of localization.
-
-#### dateTimeFormats
-
-> :new: 7.0+
-
- * **Type:** `DateTimeFormats`
-
- * **Read only**
-
-The datetime formats of localization.
-
-#### numberFormats
-
-> :new: 7.0+
-
- * **Type:** `NumberFormats`
-
- * **Read only**
-
-The number formats of localization.
-
-#### missing
-
- * **Type:** `MissingHandler`
-
- * **Read/Write**
-
-A handler for localization missing.
-
-#### formatter
-
- * **Type:** `Formatter`
-
- * **Read/Write**
-
-The formatter that implemented with `Formatter` interface.
-
-#### silentTranslationWarn
-
-> 6.1+, :up: 8.13
-
- * **Type:** `Boolean | RegExp`
-
- * **Read/Write**
-
-Whether suppress warnings outputted when localization fails.
-
-#### silentFallbackWarn
-
-> :new: 8.8+, :up: 8.13
-
- * **Type:** `Boolean | RegExp`
-
- * **Read/Write**
-
-Whether suppress fallback warnings when localization fails.
-
-#### pluralizationRules
-
-> 8.5+
-
- * **Type:** `PluralizationRules`
-
- * **Read/Write**
-
-A set of locale-dependent rules for word pluralization.
-
-#### preserveDirectiveContent
-
-> 8.7+
-
- * **Type:** `Boolean`
-
- * **Read/Write**
-
-Whether `v-t` directive's element should preserve `textContent` after directive is unbinded.
-
-#### warnHtmlInMessage
-
-> 8.11+
-
- * **Type:** `WarnHtmlInMessageLevel`
-
- * **Read/Write**
-
-Whether to allow the use locale messages of HTML formatting.
-
-If you set `warn` or` error`, will check the locale messages on the VueI18n instance.
-
-If you are specified `warn`, a warning will be output at console.
-
-If you are specified `error` will occurred an Error.
-
-In VueI18n instance, set the `off` as default.
-
-#### postTranslation
-
-> 8.16+
-
- * **Type:** `PostTranslationHandler`
-
- * **Read/Write**
-
-A handler for post processing of translation.
-
-### Methods
-
-#### getChoiceIndex
-
- * **Arguments:**
-
- * `{number} choice`
- * `{number} choicesLength`
-
- * **Return:** `finalChoice {number}`
-
-Get pluralization index for current pluralizing number and a given amount of choices.
-Can be overridden through prototype mutation:
-
-```js
-VueI18n.prototype.getChoiceIndex = /* custom implementation */
-```
-
-However, for most usages [pluralizationRules constructor option](#pluralizationrules) should be enough.
-
-#### getLocaleMessage( locale )
-
- * **Arguments:**
-
- * `{Locale} locale`
-
- * **Return:** `LocaleMessageObject`
-
-Get the locale message of locale.
-
-#### setLocaleMessage( locale, message )
-
- * **Arguments:**
-
- * `{Locale} locale`
- * `{LocaleMessageObject} message`
-
-Set the locale message of locale.
-
-:::tip NOTE
-> 8.11+
-
-If you set `warn` or` error` in the `warnHtmlInMessage` property, when this method is executed, it will check if HTML formatting is used for locale message.
-:::
-
-#### mergeLocaleMessage( locale, message )
-
-> 6.1+
-
- * **Arguments:**
-
- * `{Locale} locale`
- * `{LocaleMessageObject} message`
-
-Merge the registered locale messages with the locale message of locale.
-
-:::tip NOTE
-> 8.11+
-
-If you set `warn` or` error` in the `warnHtmlInMessage` property, when this method is executed, it will check if HTML formatting is used for locale message.
-:::
-
-#### t( key, [locale], [values] )
-
- * **Arguments:**
-
- * `{Path} key`: required
- * `{Locale} locale`: optional
- * `{Array | Object} values`: optional
-
- * **Return:** : `TranslateResult`
-
-This is the same as the `Function` returned with `$t` method. More detail see [$t](#t).
-
-#### tc( key, [choice], [values] )
-
- * **Arguments:**
-
- * `{Path} key`: required
- * `{number} choice`: optional, default `1`
- * `{string | Array | Object} values`: optional
-
- * **Return:** `TranslateResult`
-
-This is the same as the `Function` returned `$tc` method. More detail see [$tc](#tc).
-
-#### te( key, [locale] )
-
- * **Arguments:**
-
- * `{string} key`: required
- * `{Locale} locale`: optional
-
- * **Return:** `boolean`
-
-Check whether key path exists in global locale message. If you specified `locale`, check the locale message of `locale`.
-
-#### getDateTimeFormat ( locale )
-
-> :new: 7.0+
-
- * **Arguments:**
-
- * `{Locale} locale`
-
- * **Return:** `DateTimeFormat`
-
-Get the datetime format of locale.
-
-#### setDateTimeFormat ( locale, format )
-
-> :new: 7.0+
-
- * **Arguments:**
-
- * `{Locale} locale`
- * `{DateTimeFormat} format`
-
-Set the datetime format of locale.
-
-#### mergeDateTimeFormat ( locale, format )
-
-> :new: 7.0+
-
- * **Arguments:**
-
- * `{Locale} locale`
- * `{DateTimeFormat} format`
-
-Merge the registered datetime formats with the datetime format of locale.
-
-#### d( value, [key], [locale] )
-
-> :new: 7.0+
-
- * **Arguments:**
-
- * `{number | Date} value`: required
- * `{Path | Object} key`: optional
- * `{Locale | Object} locale`: optional
-
- * **Return:** `DateTimeFormatResult`
-
-This is the same as `$d` method of Vue instance method. More detail see [$d](#d).
-
-#### getNumberFormat ( locale )
-
-> :new: 7.0+
-
- * **Arguments:**
-
- * `{Locale} locale`
-
- * **Return:** `NumberFormat`
-
-Get the number format of locale.
-
-#### setNumberFormat ( locale, format )
-
-> :new: 7.0+
-
- * **Arguments:**
-
- * `{Locale} locale`
- * `{NumberFormat} format`
-
-Set the number format of locale.
-
-#### mergeNumberFormat ( locale, format )
-
-> :new: 7.0+
-
- * **Arguments:**
-
- * `{Locale} locale`
- * `{NumberFormat} format`
-
-Merge the registered number formats with the number format of locale.
-
-#### n( value, [format], [locale] )
-
-> :new: 7.0+
-
- * **Arguments:**
-
- * `{number} value`: required
- * `{Path | Object} format`: optional
- * `{Locale} locale`: optional
-
- * **Return:** `NumberFormatResult`
-
-This is the same as `$n` method of Vue instance method. More detail see [$n](#n).
-
-## Directives
-
-> :new: 7.3+
-
-### v-t
-
- * **Expects:** `string | Object`
-
- * **Modifiers:**
-
- * `.preserve`: (8.7.0+) preserves element `textContent` when directive is unbinded.
-
- * **Details:**
-
-Update the element `textContent` that localized with locale messages. You can use string syntax or object syntax. string syntax can be specified as a keypath of locale messages. If you can be used object syntax, you need to specify as the object key the following params:
-
- * `path`: required, key of locale messages
- * `locale`: optional, locale
- * `args`: optional, for list or named formatting
-
-:::tip NOTE
-The element `textContent` will be cleared by default when `v-t` directive is unbinded. This might be undesirable situation when used inside [transitions](https://vuejs.org/v2/guide/transitions.html). To preserve `textContent` data after directive unbind use `.preserve` modifier or global [`preserveDirectiveContent` option](#preservedirectivecontent).
-:::
-
- * **Examples:**
-
-```html
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
- * **See also:** [Custom directive localization](../guide/directive.md)
-
-## Components
-
-### i18n functional component
-
-> :new: 7.0+
-
-#### Props:
-
- * `path {Path}`: required, keypath of locale messages
- * `locale {Locale}`: optional, locale
- * `tag {string | boolean | Object}`: optional, default `'span'`
- * `places {Array | Object}`: optional (7.2+)
-
-:::danger Important!!
-In next major version, `places` prop is deprecated. Please switch to slots syntax.
-:::
-
-#### Usage:
-
-```html
-
-```
-```js
-var numberFormats = {
- 'en-US': {
- currency: {
- style: 'currency', currency: 'USD'
- }
- },
- 'ja-JP': {
- currency: {
- style: 'currency', currency: 'JPY'
- }
- }
-}
-
-const i18n = new VueI18n({
- locale: 'en-US',
- numberFormats
-})
-new Vue({
- i18n,
- data: {
- money: 10234,
- }
-}).$mount('#app')
-```
-
-#### Scoped slots
-
-`` functional component can accept a number of named scoped slots. List of supported slot names is based on [`Intl.NumberFormat.formatToParts()` output types](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/formatToParts):
-
-* `currency`
-* `decimal`
-* `fraction`
-* `group`
-* `infinity`
-* `integer`
-* `literal`
-* `minusSign`
-* `nan`
-* `plusSign`
-* `percentSign`
-
-Each of these named scoped slots will accept three scope parameters:
-
-* `[slotName] {FormattedNumberPartType}`: parameter of the same name as actual slot name (like `integer`)
-* `index {Number}`: index of the specific part in the array of number parts
-* `parts {Array}`: array of all formatted number parts
-
-#### See also:
-
-[Number custom formatting](../guide/number.md#custom-formatting)
-
-## Special Attributes
-
-### place
-
-> :new: 7.2+
-
-#### Expects: `{number | string}`
-
-Used on component interpolation to indicate which index of list formatting or key of named formatting.
-
-For detailed usage, see the guide section linked below.
-
-#### See also:
-
-[Component interpolation](../guide/interpolation.md)
diff --git a/docs-old/guide/component.md b/docs-old/guide/component.md
deleted file mode 100644
index ec0d7926f..000000000
--- a/docs-old/guide/component.md
+++ /dev/null
@@ -1,153 +0,0 @@
-# Component based localization
-
-In general, locale info (e.g. `locale`,`messages`, etc) is set as constructor option of `VueI18n` instance and it sets `i18n` option as root Vue instance.
-
-Therefore you can globally translate using `$t` or `$tc` in the root Vue instance and any composed component. You can also manage locale info for each component separately, which might be more convenient due to Vue components oriented design.
-
-Component based localization example:
-
-```js
-// setup locale info for root Vue instance
-const i18n = new VueI18n({
- locale: 'ja',
- messages: {
- en: {
- message: {
- hello: 'hello world',
- greeting: 'good morning'
- }
- },
- ja: {
- message: {
- hello: 'こんにちは、世界',
- greeting: 'おはようございます'
- }
- }
- }
-})
-
-// Define component
-const Component1 = {
- template: `
-
-```
-
-As in the example above, if the component doesn't have the locale message, it falls back to globally defined localization info. The component uses the language set in the root instance (in the above example: `locale: 'ja'`).
-
-Note that, by default, falling back to root locale generates two warnings in the console:
-
-```
-[vue-i18n] Value of key 'message.greeting' is not a string!
-[vue-i18n] Fall back to translate the keypath 'message.greeting' with root locale.
-```
-
-To suppress these warnings (while keeping those which warn of the total absence of translation for the given key) set `silentFallbackWarn: true` when initializing the `VueI18n` instance.
-
-If you want to localize using the component locale, you can do that with `sync: false` and `locale` in the `i18n` option.
-
-
-## Shared locale messages for components
-
-Sometimes you may want to import shared locale messages for certain components, not fallback from global locale messages (e.g. common messages of certain feature for components.
-
-You can use `sharedMessages` options of `i18n`.
-
-Common Locale Messages example:
-
-```js
-export default {
- en: {
- buttons: {
- save: "Save",
- // ...
- }
- },
- ja: {
- buttons: {
- save: "保存",
- // ...
- }
- }
-}
-```
-
-Components:
-```js
-import commonMessage from './locales/common' // import common locale messages
-
-export default {
- name: 'ServiceModal',
- template: `
-
-
-
This is good service
-
-
-
- `,
- i18n: {
- messages: { ... },
- sharedMessages: commonMessages
- }
-}
-```
-
-If `sharedMessages` option is specified along with the `messages` option, those messages will be merged into locale messages into the VueI18n instance of the target component.
-
-
-## Translation in functional component
-
-When using a functional component, all data (including `props`, `children`, `slots`, `parent`, etc.) is passed through the `context` containing the attributes, and it doesn't recognize the `this` scope, so when using the vue-i18n on functional components, you must refer to `$t` as `parent.$t`, check the example below:
-
-```html
-...
-
-```
-
-## Use with transitions
-
-:::tip Support Version
-:new: 8.7+
-:::
-
-When `v-t` directive is applied to an element inside [`` component](https://vuejs.org/v2/api/#transition), you may notice that the translated message disappears during the transition. This behavior is related to the nature of the `` component implementation – all directives in the disappearing element inside the `` component will be destroyed **before the transition starts**. This behavior may result in content flickering on short animations, but is most noticeable on long transitions.
-
-To make sure directive content stays un-touched during a transition, just add the [`.preserve` modifier](../api/#v-t) to the `v-t` directive definition.
-
-Javascript:
-
-```js
-new Vue({
- i18n: new VueI18n({
- locale: 'en',
- messages: {
- en: { preserve: 'with preserve' },
- }
- }),
- data: { toggle: true }
-}).$mount('#in-transitions')
-```
-
-Templates:
-
-```html
-
-
-
-
-
-
-```
-
-It is also possible to set global settings on the `VueI18n` instance itself, which will affect all `v-t` directives without modifier.
-
-Javascript:
-
-```js
-new Vue({
- i18n: new VueI18n({
- locale: 'en',
- messages: {
- en: { preserve: 'with preserve' },
- },
- preserveDirectiveContent: true
- }),
- data: { toggle: true }
-}).$mount('#in-transitions')
-```
-
-Templates:
-
-```html
-
-
-
-
-
-
-```
-
-About the above examples, see the [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/directive)
-
-## `$t` vs `v-t`
-
-### `$t`
-
-`$t` is an extended Vue instance method. It has the following pros and cons:
-
-#### Pros
-
-You can **flexibly** use mustache syntax `{{}}` in templates and also computed props and methods in Vue instance.
-
-#### Cons
-
-`$t` is executed **every time** when re-render occurs, so it does have translation costs.
-
-### `v-t`
-
-`v-t` is a custom directive. It has the following pros and cons:
-
-#### Pros
-
-`v-t` has **better performance** than the `$t` method due to its cache with the custom directive, when translated once. Also, pre-translation is possible with the Vue compiler module which was provided by [`vue-i18n-extensions`](https://github.com/kazupon/vue-i18n-extensions).
-
-Therefore it's possible to make **more performance optimizations**.
-
-#### Cons
-
-`v-t` cannot be flexibly used like `$t`, it's rather **complex**. The translated content with `v-t` is inserted into the `textContent` of the element. Also, when you use server-side rendering, you need to set the [custom directive](https://github.com/kazupon/vue-i18n-extensions#directive-v-t-custom-directive-for-server-side) to `directives` option of the `createRenderer` function.
diff --git a/docs-old/guide/fallback.md b/docs-old/guide/fallback.md
deleted file mode 100644
index 549cdb21c..000000000
--- a/docs-old/guide/fallback.md
+++ /dev/null
@@ -1,141 +0,0 @@
-# Fallback localization
-
-*Summary: Use `fallbackLocale: ''` to choose which language to use when your preferred language lacks a translation.*
-
-## Implicit fallback using locales
-
-If a `locale` is given containing a territory and an optional dialect, the implicit fallback is activated automatically.
-
-For example `de-DE-bavarian` would fallback
-1. `de-DE-bavarian`
-1. `de-DE`
-1. `de`
-
-To suppress the automatic fallback, add the postfix exclamation mark `!`, for example `de-DE!`
-
-## Explicit fallback with one locale
-
-Sometimes some items will not be translated into some languages. In this example, the item `hello` is available in English but not Japanese:
-
-```js
-const messages = {
- en: {
- hello: 'Hello, world!'
- },
- ja: {
- // Localization without translation to `hello`
- }
-}
-```
-
-If you want to use (say) `en` items when an item is not available in your desired locale, set the `fallbackLocale` option in the VueI18n constructor:
-
-```js
-const i18n = new VueI18n({
- locale: 'ja',
- fallbackLocale: 'en',
- messages
-})
-```
-
-Template:
-
-```html
-
{{ $t('hello') }}
-```
-
-Output:
-
-```html
-
Hello, world!
-```
-
-By default, falling back to `fallbackLocale` generates two console warnings:
-
-```
-[vue-i18n] Value of key 'hello' is not a string!
-[vue-i18n] Fall back to translate the keypath 'hello' with 'en' locale.
-```
-
-To suppress these warnings (while keeping those which warn of the total absence of translation for the given key) set `silentFallbackWarn: true` when initializing the `VueI18n` instance.
-
-## Explicit fallback with an array of locales
-
-It is possible to set more than one fallback locale by using an array of locales. For example
-
-```javascript
-fallbackLocale: [ 'fr', 'en' ],
-```
-
-## Explicit fallback with decision maps
-If more complex decision maps for fallback locales are required, it is possible to define decision maps with according fallback locales.
-Using the following decision map
-```javascript
-fallbackLocale: {
- /* 1 */ 'de-CH': ['fr', 'it'],
- /* 2 */ 'zh-Hant': ['zh-Hans'],
- /* 3 */ 'es-CL': ['es-AR'],
- /* 4 */ 'es': ['en-GB'],
- /* 5 */ 'pt': ['es-AR'],
- /* 6 */ 'default': ['en', 'da']
-},
-```
-will result in the following fallback chains
-| locale | fallback chains |
-|--------|-----------------|
-| `'de-CH'` | de-CH > fr > it > en > da |
-| `'de'` | de > en > da |
-| `'zh-Hant'` | zh-Hant > zh-Hans > zh > en > da |
-| `'es-SP'` | es-SP > es > en-GB > en > da |
-| `'es-SP!'` | es-SP > en > da |
-| `'fr'` | fr > en > da |
-| `'pt-BR'` | pt-BR > pt > es-AR > es > en-GB > en > da |
-| `'es-CL'` | es-CL > es-AR > es > en-GB > en > da |
-
-## Fallback interpolation
-
-*Summary: Set `formatFallbackMessages: true` to do template interpolation on translation keys when your language lacks a translation for a key.*
-
-Since the keys to the translations are strings, you can use a user-readable message (for a particular language) as a key.
-E.g.
-
-```javascript
-const messages = {
- ja: {
- 'Hello, world!': 'こんにちは、世界!'
- }
-}
-```
-
-This is useful because you don't have to specify a translation for the string "Hello, world!" into English.
-
-In fact, you can even include template parameters in a key. Together with `formatFallbackMessages: true`, this lets you skip writing templates for your "base" language; the keys *are* your templates.
-
-```javascript
-const messages = {
- ru: {
- 'Hello {name}': 'Здравствуйте {name}'
- }
-}
-
-const i18n = new VueI18n({
- locale: 'ru',
- fallbackLocale: 'en',
- formatFallbackMessages: true,
- messages
-})
-```
-
-When the template is as below:
-
-```html
-
-```
-
-## HTML formatting
-
-:::warning Notice
-:warning: Dynamically localizing arbitrary HTML on your website can be very dangerous because it can easily lead to XSS vulnerabilities. Only use HTML interpolation on trusted content and never on user-provided content.
-
-We recommended using the [component interpolation](interpolation.md) feature.
-:::
-
-:::warning Notice
-> :new: 8.11+
-
-You can control the use of HTML formatting. see the detail `warnHtmlInMessage` constructor option and property API.
-:::
-
-In some cases you might want to render your translation as an HTML message and not a static string.
-
-
-```js
-const messages = {
- en: {
- message: {
- hello: 'hello world'
- }
- }
-}
-```
-
-Template:
-
-
-```html
-
-```
-
-Output (instead of the pre-formatted message )
-
-
-```html
-
-```
-
-In the above message, if you use `$t`, you will probably try to compose the following locale messages:
-
-```js
-const messages = {
- en: {
- term1: 'I Accept xxx\'s',
- term2: 'Terms of Service Agreement'
- }
-}
-```
-
-And your localized template may look like this:
-
-```html
-
-```
-
-About the above example, see the [example](https://github.com/kazupon/vue-i18n/tree/dev/examples/interpolation/places)
-
-The children of `i18n` functional component are interpolated with locale message of `path` prop.
-
-In the above example:
-:::v-pre
-`{{ $t('tos') }}`
-:::
-is interpolated with `term` locale message.
-
-In the above example, the component interpolation follows the **list formatting**. The children of `i18n` functional component are interpolated by their order of appearance.
-
-You can choose the root container's node type by specifying a `tag` prop. If omitted, it defaults to `'span'`. You can also set it to the boolean value `false` to insert the child nodes directly without creating a root element.
-
-## Slots syntax usage
-
-:::tip Support Version
-:new: 8.14+
-:::
-
-It's more convenient to use the named slots syntax. For example:
-
-```html
-
-```
-
-:::warning Limitation
-:warning: In `i18n` component, slots props are not supported.
-:::
-
-
-## Places syntax usage
-
-:::danger Important!!
-In the next major version, the `place` and `places` props will be deprecated. Please switch to slots syntax.
-:::
-
-:::tip Support Version
-:new: 7.2+
-:::
-
-:::warning Notice
-:warning: In `i18n` component, text content consisting of only white spaces will be omitted.
-:::
-
-Named formatting is supported with the help of `place` attribute. For example:
-
-```html
-
-```
-
-:::warning Notice
-:warning: To use named formatting, all children of `i18n` component must have `place` attribute set. Otherwise it will fallback to list formatting.
-:::
-
-If you still want to interpolate text content in named formatting, you could define `places` property on `i18n` component. For example:
-
-```html
-
-```
diff --git a/docs-old/guide/lazy-loading.md b/docs-old/guide/lazy-loading.md
deleted file mode 100644
index 144dc4359..000000000
--- a/docs-old/guide/lazy-loading.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# Lazy loading translations
-
-Loading all of your translation files at once is overkill and unnecessary.
-
-Lazy loading or asynchronously loading the translation files is really easy when using Webpack.
-
-Let´s assume we have a project directory similar to the one below:
-
-```
-our-cool-project
--dist
--src
---routes
---store
---setup
----i18n-setup.js
---lang
----en.js
----it.js
-```
-
-The `lang` folder is where all of our translation files reside. The `setup` folder is where our arbitrary setup files like the i18n-setup, global component inits, plugin inits and other reside.
-
-```js
-//i18n-setup.js
-import Vue from 'vue'
-import VueI18n from 'vue-i18n'
-import messages from '@/lang/en'
-import axios from 'axios'
-
-Vue.use(VueI18n)
-
-export const i18n = new VueI18n({
- locale: 'en', // set locale
- fallbackLocale: 'en',
- messages // set locale messages
-})
-
-const loadedLanguages = ['en'] // our default language that is preloaded
-
-function setI18nLanguage (lang) {
- i18n.locale = lang
- axios.defaults.headers.common['Accept-Language'] = lang
- document.querySelector('html').setAttribute('lang', lang)
- return lang
-}
-
-export function loadLanguageAsync(lang) {
- // If the same language
- if (i18n.locale === lang) {
- return Promise.resolve(setI18nLanguage(lang))
- }
-
- // If the language was already loaded
- if (loadedLanguages.includes(lang)) {
- return Promise.resolve(setI18nLanguage(lang))
- }
-
- // If the language hasn't been loaded yet
- return import(/* webpackChunkName: "lang-[request]" */ `@/i18n/messages/${lang}.js`).then(
- messages => {
- i18n.setLocaleMessage(lang, messages.default)
- loadedLanguages.push(lang)
- return setI18nLanguage(lang)
- }
- )
-}
-```
-
-In short we are creating a new VueI18n instance as we normally would. Then we are creating a `loadedLanguages` array that will keep track of our loaded languages. Next is the `setI18nLanguage` function that will actually change the language in our vueI18n instance, axios and where ever else is needed.
-
-The `loadLanguageAsync` function is what we will actually use to change the languages. Loading the new files is done via the `import` function, which is generously provided by Webpack and it allows us to load files dynamically, and because it uses promises we can easily wait for the loading to finish.
-
-You can learn more about the import function in the [Webpack documentation](https://webpack.js.org/guides/code-splitting/#dynamic-imports).
-
-Using the `loadLanguageAsync` function is straightforward. A common use case is inside a vue-router beforeEach hook.
-
-```js
-router.beforeEach((to, from, next) => {
- const lang = to.params.lang
- loadLanguageAsync(lang).then(() => next())
-})
-```
-
-We could improve this by checking if the `lang` is actually supported by us or not, call `reject` so we can catch that in the `beforeEach` stopping the route transition.
diff --git a/docs-old/guide/locale.md b/docs-old/guide/locale.md
deleted file mode 100644
index a9f9ebb07..000000000
--- a/docs-old/guide/locale.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# Locale changing
-
-Normally, using the root Vue instance as the starting point, all child components are localized using the `locale` property of the `VueI18n` class as a reference.
-
-Sometimes you might want to dynamically change the locale. In that case you can change the value of the `locale` property of the `VueI18n` instance.
-
-
-```js
-const i18n = new VueI18n({
- locale: 'ja', // set locale
- ...
-})
-
-// create root Vue instance
-new Vue({
- i18n,
- ...
-}).$mount('#app')
-
-// change other locale
-i18n.locale = 'en'
-```
-
-Each component contains a `VueI18n` instance referenced as the `$i18n` property that can also be used to change the locale.
-
-Example:
-
-```vue
-
-
-
-
-
-
-
-```
-
-:::warning Notice
-:warning: Locale changing is ignored for components that use `sync: false`.
-:::
-
-:::warning Component vs. root scope
-:warning: Changing `$i18n.locale` inside a component does not update the root locale.
-If you rely on the root locale, for example when using [root fallbacks](./fallback.html), use `$root.$i18n.locale` instead of `$i18n.locale`.
-:::
diff --git a/docs-old/guide/messages.md b/docs-old/guide/messages.md
deleted file mode 100644
index 3be84c052..000000000
--- a/docs-old/guide/messages.md
+++ /dev/null
@@ -1,292 +0,0 @@
-# Locale messages syntax
-
-## Structure
-
-Locale Messages syntax below:
-
-```typescript
-// As Flowtype definition, Locale Messages syntax like BNF annotation
-type LocaleMessages = { [key: Locale]: LocaleMessageObject };
-type LocaleMessageObject = { [key: Path]: LocaleMessage };
-type LocaleMessageArray = LocaleMessage[];
-type MessageContext = {
- list: (index: number) => mixed,
- named: (key: string) => mixed
-};
-type MessageFunction = (ctx: MessageContext) => string;
-type LocaleMessage = string | MessageFunction | LocaleMessageObject | LocaleMessageArray;
-type Locale = string;
-type Path = string;
-```
-
-Based on the above syntax, You can configure the following Locale Messages structure:
-
-```json
-{
- "en": { // 'en' Locale
- "key1": "this is message1", // basic
- "nested": { // nested
- "message1": "this is nested message1"
- },
- "errors": [ // array
- "this is 0 error code message",
- { // object in array
- "internal1": "this is internal 1 error message"
- },
- [ // array in array
- "this is nested array error 1"
- ]
- ]
- },
- "ja": { // 'ja' Locale
- // ...
- }
-}
-```
-
-In the above Locale Messages structure, You can translate using below key paths.
-
-```html
-
-
-
{{ $t('key1') }}
-
-
{{ $t('nested.message1') }}
-
-
{{ $t('errors[0]') }}
-
-
{{ $t('errors[1].internal1') }}
-
-
{{ $t('errors[2][0]') }}
-
-```
-
-Output the following:
-
-```html
-
-
-
this is message1
-
-
this is nested message1
-
-
this is 0 error code message
-
-
this is internal 1 error message
-
-
this is nested array error 1
-
-```
-
-## Linked locale messages
-
-If there's a translation key that will always have the same concrete text as another one you can just link to it. To link to another translation key, all you have to do is to prefix its contents with an `@:` sign followed by the full name of the translation key including the namespace you want to link to.
-
-Locale messages the below:
-
-```js
-const messages = {
- en: {
- message: {
- the_world: 'the world',
- dio: 'DIO:',
- linked: '@:message.dio @:message.the_world !!!!'
- }
- }
-}
-```
-
-Template:
-
-```html
-
{{ $t('message.linked') }}
-```
-
-Output:
-
-```html
-
DIO: the world !!!!
-```
-
-### Formatting linked locale messages
-
-If the language distinguish cases of character, you may need control the case of the linked locale messages.
-Linked messages can be formatted with modifier `@.modifier:key`
-
-The below modifiers are available currently.
-
-* `upper`: Uppercase all characters in the linked message.
-* `lower`: Lowercase all characters in the linked message.
-* `capitalize`: Capitalize the first character in the linked message.
-
-Locale messages the below:
-
-```javascript
-const messages = {
- en: {
- message: {
- homeAddress: 'Home address',
- missingHomeAddress: 'Please provide @.lower:message.homeAddress'
- }
- }
-}
-```
-
-```html
-
-
-
{{ $t('message.missingHomeAddress') }}
-```
-
-Output the below:
-
-```html
-
-
-
Please provide home address
-```
-
-You can add modifiers or overwrite the existing ones passing the `modifiers` options to the `VueI18n` constructor.
-
-```javascript
-const i18n = new VueI18n({
- locale: 'en',
- modifiers: {
- // Adding a new modifier
- snakeCase: (str) => str.split(' ').join('-')
- },
- messages: {
- // ...
- },
-})
-```
-
-### Grouping by brackets
-
-A translation key of linked locale message can also have the form of `@:(message.foo.bar.baz)` in which the link to another translation key is within brackets `()`.
-
-This can be useful if the link `@:message.something` is followed by period `.`, which otherwise would be part of the link and may not need to be.
-
-Locale messages:
-
-```js
-const messages = {
- en: {
- message: {
- dio: 'DIO',
- linked: 'There\'s a reason, you lost, @:(message.dio).'
- }
- }
-}
-```
-
-Template:
-
-```html
-
{{ $t('message.linked') }}
-```
-
-Output:
-
-```html
-
There's a reason, you lost, DIO.
-```
-
-## Message Function
-
-vue-i18n recommends using the string base on list or named format as locale messages when translating messages.
-
-There are situations however, where you really need the full programmatic power of JavaScript, due to the complex language syntax. So instead of string-based messages, you can use the **message function**.
-
-The following is a message function that returns a simple greeting:
-
-```js
-const messages = {
- en: {
- greeting: (ctx) => 'hello!'
- }
-}
-```
-
-The use of the message function is very easy! You just specify the key of the message function with `$t` or `t`:
-
-```html
-
{{ $t('greeting') }}
-```
-
-Output is the below:
-
-```html
-
hello!
-```
-
-The message function outputs the message of the return value of the message function.
-
-### Named formatting
-
-vue-i18n supports [named formatting](./formatting.md#named-formatting) as a string-based message format. vue-i18n interpolate the parameter values with `$t` or `t`, and it can be output it.
-
-You can do the same thing with the message function by using **message context**:
-
-here is the example of greeting:
-
-```js
-const messages = {
- en: {
- greeting: (ctx) => `hello, ${ctx.named('name')}!`
- }
-}
-```
-
-Template:
-
-```html
-
{{ $t('greeting', { name: 'DIO' }) }}
-```
-
-Output is the below:
-
-```html
-
hello, DIO!
-```
-
-The message context has a named function. You need to specify the key that resolves the value specified with the named of `$t` or `t`.
-
-### List formatting
-
-The use of the list format is similar to the named format described above.
-
-vue-i18n supports [list formatting](./formatting.md#list-formatting) as a string-based message format. vue-i18n interpolate the parameter values with `$t` or `t`, and it can be output it.
-
-You can do the same thing with the message function by using message context:
-
-here is the example of greeting:
-
-```js
-const messages = {
- en: {
- greeting: (ctx) => `hello, ${ctx.list(0)}!`
- }
-}
-```
-
-Template:
-
-```html
-
{{ $t('greeting', ['DIO']) }}
-```
-
-Output is the below:
-
-```html
-
hello, DIO!
-```
-
-The message context has a list function. You need to specify the index that resolves the value specified with the list of `$t` or `t`.
-
-### Limitation
-
-In the message function, the following functions, which are provided on a string basis, are not available via a message context:
-
-- Linked locale messages
-- Pluralization
diff --git a/docs-old/guide/number.md b/docs-old/guide/number.md
deleted file mode 100644
index 630d5fff8..000000000
--- a/docs-old/guide/number.md
+++ /dev/null
@@ -1,133 +0,0 @@
-# Number localization
-
-:::tip Support Version
-:new: 7.0+
-:::
-
-You can localize the number with your definition formats.
-
-Number formats the below:
-
-```js
-const numberFormats = {
- 'en-US': {
- currency: {
- style: 'currency',
- currency: 'USD'
- }
- },
- 'ja-JP': {
- currency: {
- style: 'currency',
- currency: 'JPY',
- currencyDisplay: 'symbol'
- }
- }
-}
-```
-
-As the above, you can define named number formats (e.g. `currency`, etc), and you need to use [the options with ECMA-402 Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat)
-
-After that, when using the locale messages, you need to specify the `numberFormats` option of the `VueI18n` constructor:
-
-```js
-const i18n = new VueI18n({
- numberFormats
-})
-
-new Vue({
- i18n
-}).$mount('#app')
-```
-
-Template the below:
-
-```html
-
-
{{ $n(100, 'currency') }}
-
{{ $n(100, 'currency', 'ja-JP') }}
-
-```
-
-
-Output the below:
-
-```html
-
-
$100.00
-
¥100
-
-```
-
-## Custom formatting
-
-:::tip Support Version
-:new: 8.10+
-:::
-
-`$n` method returns resulting string with fully formatted number, which can only be used as a whole. In situations when you need to style some part of the formatted number (like fraction digits), `$n` is not enough. In such cases `` functional component will be of help.
-
-With a minimum set of properties, `` generates the same output as `$n`, wrapped into configured DOM element.
-
-The following template:
-
-```html
-
-
-
-
-
-```
-
-will produce the below output:
-
-```html
-
- 100
- $100.00
- ¥100
-
-```
-
-But the real power of this component comes into play when it is used with [scoped slots](https://vuejs.org/v2/guide/components-slots.html#Scoped-Slots).
-
-Let's say there is a requirement to render the integer part of the number with a bolder font. This can be achieved by specifying `integer` scoped slot element:
-
-```html
-
- {{ slotProps.integer }}
-
-```
-
-Template above will result in the following HTML:
-
-```html
-$100.00
-```
-
-It is possible to specify multiple scoped slots at the same time:
-
-```html
-
- {{ slotProps.currency }}
- {{ slotProps.integer }}
- {{ slotProps.group }}
- {{ slotProps.fraction }}
-
-```
-
-(this resulting HTML was formatted for better readability)
-
-```html
-
- €
- 1
- ,
- 234
- 00
-
-```
-
-You can choose the root container's node type by specifying a `tag` prop. If omitted, it defaults to `'span'`. You can also set it to the boolean value `false` to insert the child nodes directly without creating a root element.
-
-Full list of the supported scoped slots as well as other `` properties can be found [on API page](../api/readme.md#i18n-n-functional-component).
diff --git a/docs-old/guide/pluralization.md b/docs-old/guide/pluralization.md
deleted file mode 100644
index 3e32bc656..000000000
--- a/docs-old/guide/pluralization.md
+++ /dev/null
@@ -1,168 +0,0 @@
-# Pluralization
-
-You can translate with pluralization. You must define the locale that have a pipe `|` separator, and define plurals in pipe separator.
-
-*Your template will need to use `$tc()` instead of `$t()`.*
-
-Locale messages below:
-
-```js
-const messages = {
- en: {
- car: 'car | cars',
- apple: 'no apples | one apple | {count} apples'
- }
-}
-```
-
-Template below:
-
-```html
-
{{ $tc('car', 1) }}
-
{{ $tc('car', 2) }}
-
-
{{ $tc('apple', 0) }}
-
{{ $tc('apple', 1) }}
-
{{ $tc('apple', 10, { count: 10 }) }}
-```
-
-Output below:
-
-```html
-
car
-
cars
-
-
no apples
-
one apple
-
10 apples
-```
-
-## Accessing the number via the pre-defined argument
-
-You don't need to explicitly give the number for pluralization.
-The number can be accessed within locale messages via pre-defined named arguments `{count}` and/or `{n}`.
-You can overwrite those pre-defined named arguments if necessary.
-
-Locale messages the below:
-
-```js
-const messages = {
- en: {
- apple: 'no apples | one apple | {count} apples',
- banana: 'no bananas | {n} banana | {n} bananas'
- }
-}
-```
-
-Template below:
-
-```html
-
{{ $tc('apple', 10, { count: 10 }) }}
-
{{ $tc('apple', 10) }}
-
-
{{ $tc('banana', 1, { n: 1 }) }}
-
{{ $tc('banana', 1) }}
-
{{ $tc('banana', 100, { n: 'too many' }) }}
-```
-
-Output below:
-
-```html
-
10 apples
-
10 apples
-
-
1 banana
-
1 banana
-
too many bananas
-```
-
-
-## Custom pluralization
-
-Such pluralization, however, does not apply to all languages (Slavic languages, for example, have different pluralization rules).
-
-In order to implement these rules you can pass an optional `pluralizationRules` object into `VueI18n` constructor options.
-
-Very simplified example using rules for Slavic languages (Russian, Ukrainian, etc.):
-```js
-new VueI18n({
- // Key - language to use the rule for, `'ru'`, in this case
- // Value - function to choose right plural form
- pluralizationRules: {
- /**
- * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`
- * @param choicesLength {number} an overall amount of available choices
- * @returns a final choice index to select plural word by
- */
- 'ru': function(choice, choicesLength) {
- // this === VueI18n instance, so the locale property also exists here
-
- if (choice === 0) {
- return 0;
- }
-
- const teen = choice > 10 && choice < 20;
- const endsWithOne = choice % 10 === 1;
-
- if (choicesLength < 4) {
- return (!teen && endsWithOne) ? 1 : 2;
- }
- if (!teen && endsWithOne) {
- return 1;
- }
- if (!teen && choice % 10 >= 2 && choice % 10 <= 4) {
- return 2;
- }
-
- return (choicesLength < 4) ? 2 : 3;
- }
- }
-})
-```
-
-This would effectively give this:
-
-```javascript
-const messages = {
- ru: {
- car: '0 машин | {n} машина | {n} машины | {n} машин',
- banana: 'нет бананов | {n} банан | {n} банана | {n} бананов'
- }
-}
-```
-Where the format is `0 things | things count ends with 1 | things count ends with 2-4 | things count ends with 5-9, 0 and teens (10-19)`.
-P.S. Slavic pluralization is difficult, you can read more about it [here](http://www.russianlessons.net/lessons/lesson11_main.php).
-
-Your template still needs to use `$tc()`, not `$t()`:
-
-```html
-
{{ $tc('car', 1) }}
-
{{ $tc('car', 2) }}
-
{{ $tc('car', 4) }}
-
{{ $tc('car', 12) }}
-
{{ $tc('car', 21) }}
-
-
{{ $tc('banana', 0) }}
-
{{ $tc('banana', 4) }}
-
{{ $tc('banana', 11) }}
-
{{ $tc('banana', 31) }}
-```
-
-Which results in:
-
-```html
-
1 машина
-
2 машины
-
4 машины
-
12 машин
-
21 машина
-
-
нет бананов
-
4 банана
-
11 бананов
-
31 банан
-```
-
-### Default pluralization
-
-If your current locale is not found in a pluralization map, the [default](#pluralization) rule of the english language will be used.
diff --git a/docs-old/guide/sfc.md b/docs-old/guide/sfc.md
deleted file mode 100644
index 0220e274c..000000000
--- a/docs-old/guide/sfc.md
+++ /dev/null
@@ -1,400 +0,0 @@
-# Single file components
-
-## Basic Usage
-
-If you are building Vue component or Vue application using single file components, you can manage the locale messages `i18n` custom block.
-
-The following in [single file components example](https://github.com/kazupon/vue-i18n/tree/dev/examples/sfc):
-
-```vue
-
-{
- "en": {
- "hello": "hello world!"
- },
- "ja": {
- "hello": "こんにちは、世界!"
- }
-}
-
-
-
-
-
-
-
message: {{ $t('hello') }}
-
-
-
-
-```
-
-## Installing vue-i18n-loader
-
-You need to install `vue-loader` and `vue-i18n-loader` due to use `` custom blocks. While [vue-loader](https://github.com/vuejs/vue-loader) most likely is already used in your project if you are working with single file components, you must install [vue-i18n-loader](https://github.com/kazupon/vue-i18n-loader) additionally:
-
-```sh
-npm i --save-dev @kazupon/vue-i18n-loader
-```
-
-## Webpack
-
-For Webpack the configuration below is required:
-
-for vue-loader v15 or later:
-```js
-module.exports = {
- // ...
- module: {
- rules: [
- {
- test: /\.vue$/,
- loader: 'vue-loader',
- },
- {
- resourceQuery: /blockType=i18n/,
- type: 'javascript/auto',
- loader: '@kazupon/vue-i18n-loader'
- }
- // ...
- ]
- },
- // ...
-}
-```
-
-for vue-loader v14:
-```js
-module.exports = {
- // ...
- module: {
- rules: [
- {
- test: /\.vue$/,
- loader: 'vue-loader',
- options: {
- loaders: {
- // you need to specify `i18n` loaders key with `vue-i18n-loader` (https://github.com/kazupon/vue-i18n-loader)
- i18n: '@kazupon/vue-i18n-loader'
- }
- }
- },
- // ...
- ]
- },
- // ...
-}
-```
-
-## Vue CLI 3.0
-
-[Vue CLI 3.0](https://github.com/vuejs/vue-cli) hides the webpack configuration, so, if we want to add support to the `` tag inside a single file component we need to modify the existing configuration.
-
-In order to do that we have to create a `vue.config.js` at the root of our project. Once we have done that, we have to include the following:
-
-for vue-loader v15 or later:
-```js
-module.exports = {
- chainWebpack: config => {
- config.module
- .rule("i18n")
- .resourceQuery(/blockType=i18n/)
- .type('javascript/auto')
- .use("i18n")
- .loader("@kazupon/vue-i18n-loader")
- .end();
- }
-}
-```
-
-for vue-loader v14:
-```js
-const merge = require('deepmerge')
-
-module.exports = {
- chainWebpack: config => {
- config.module
- .rule('vue')
- .use('vue-loader')
- .tap(options =>
- merge(options, {
- loaders: {
- i18n: '@kazupon/vue-i18n-loader'
- }
- })
- )
- }
-}
-```
-_Don 't forget to install [deepmerge](https://github.com/KyleAMathews/deepmerge)! (`npm i deepmerge -D` or `yarn add deepmerge -D`)_
-
-If you want to read more about modifying the existing configuration [click here](https://cli.vuejs.org/guide/webpack.html).
-
-## Laravel-Mix
-
-for Laravel-mix 4 with vue-loader v15 or later:
-```js
-// Extend Mix with the "i18n" method, that loads the vue-i18n-loader
-mix.extend( 'i18n', new class {
- webpackRules() {
- return [
- {
- resourceQuery: /blockType=i18n/,
- type: 'javascript/auto',
- loader: '@kazupon/vue-i18n-loader',
- },
- ];
- }
- }(),
-);
-
-// Make sure to call the .i18n() (to load the loader) before .js(..., ...)
-mix.i18n()
- .js( 'resources/js/App.js', 'public/js/app.js' )
- ...
-```
-
-for Laravel-mix 2 with vue-loader v14:
-
-As of [V2.1](https://github.com/JeffreyWay/laravel-mix/releases/tag/v2.1) of Laravel-mix, you can add custom rules via mix.extend(). Laravel mix already has its own rules for handling .vue files. To add the `vue-i18n-loader`, add the following to `webpack.mix.js`
-
-```js
-// The below code will inject i18n Kazupon/vue-18-loader as a loader for .vue files.
-mix.extend( 'i18n', function( webpackConfig, ...args ) {
- webpackConfig.module.rules.forEach( ( module ) => {
- // Search for the "vue-loader" component, which handles .vue files.
- if( module.loader !== 'vue-loader' ) {
- return;
- }
-
- // Within this module, add the vue-i18n-loader for the i18n tag.
- module.options.loaders.i18n = '@kazupon/vue-i18n-loader';
- } );
-} );
-
-// Make sure to call .i18n() before .js(..., ...)
-mix.i18n()
- .js( 'resources/assets/js/App.js', 'public/js/app.js' )
- ...
-```
-
-## YAML loading
-
-`i18n` custom blocks need to specify `JSON` format, also you can use `YAML` format by using pre-loader feature of `vue-loader`.
-
-the `i18n` custom blocks below of `YAML` format:
-
-```vue
-
-en:
- hello: "hello world!"
-ja:
- hello: "こんにちは、世界!"
-
-```
-
-
-Webpack conf the below:
-
-for vue-loader v15 or later:
-```js
-// Vue CLI 3.0
-module.exports = {
- chainWebpack: config => {
- config.module
- .rule("i18n")
- .resourceQuery(/blockType=i18n/)
- .type('javascript/auto')
- .use("i18n")
- .loader("@kazupon/vue-i18n-loader")
- .end()
- .use('yaml')
- .loader('yaml-loader')
- .end()
- }
-}
-```
-
-for vue-loader v14:
-```js
-module.exports = {
- // ...
- module: {
- rules: [
- {
- test: /\.vue$/,
- loader: 'vue-loader',
- options: {
- preLoaders: {
- i18n: 'yaml-loader'
- },
- loaders: {
- i18n: '@kazupon/vue-i18n-loader'
- }
- }
- },
- // ...
- ]
- },
- // ...
-}
-```
-
-## Multiple custom blocks
-
-You can use locale messages with multiple `i18n` custom blocks.
-
-```vue
-
-
- {
- "en": {
- "hello": "hello world!"
- },
- "ja": {
- "hello": "こんにちは、世界!"
- }
- }
-
-```
-
-In the above, first custom block load the common locale message with `src` attribute, second custom block load the locale message that is defined only at single file component. These locale messages will be merged as locale message of component.
-
-In this way, multiple custom blocks useful when want to be used as module.
-
-## Scoped style
-
-When using `vue-i18n` with `scoped style`, it's important to remember to use a [deep selector](https://vue-loader.vuejs.org/guide/scoped-css.html#child-component-root-elements) for styling an element __*inside*__ the translation string. For example:
-
-__Translation contains only text__ (Work without deep selector)
-
-```vue
-
-{
- "en": {
- "hello": "hello world!"
- },
- "ja": {
- "hello": "こんにちは、世界"
- }
-}
-
-
-
-
-
message: {{ $t('hello') }}
-
-
-
-
-
-```
-
-__Translation with HTML element__ (Must use deep selector)
-
-```vue
-
-{
- "en": {
- "hello": "helloworld!"
- },
- "ja": {
- "hello": "こんにちは、世界!"
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-## Custom blocks in functional component
-
-If the single file components have the template using a functional component, and you had been defined `i18n` custom blocks, note you cannot localize using locale messages.
-
-For example, the following code cannot localize with the locale message of `i18n` custom block.
-
-```vue
-
-{
- "en": {
- "hello": "hello world"
- },
- "ja": {
- "hello": "こんにちは、世界"
- }
-}
-
-
-
-
-
{{ parent.$t('hello') }}
-
-```
diff --git a/docs-old/guide/tooling.md b/docs-old/guide/tooling.md
deleted file mode 100644
index ddc4ed113..000000000
--- a/docs-old/guide/tooling.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# Tooling
-
-To support the i18n of Vue applications, some tools are officially provided.
-
-There are also tools from third vendors integrating Vue I18n.
-
-## Official tooling
-
-### Vue CLI Plugin
-
-[vue-cli-plugin-i18n](https://github.com/kazupon/vue-cli-plugin-i18n) is officially provided as the Vue CLI Plugin.
-
-With this plugin, you can setup the i18n environment for the Vue application, and support the i18n development environment.
-
-### Nuxt Module
-
-[nuxt-i18n](https://github.com/nuxt-community/nuxt-i18n/) is corresponding Nuxt.js module.
-
-### Webpack loader
-
-[vue-i18n-loader](https://github.com/kazupon/vue-i18n-loader) is an officially provided webpack loader.
-
-With this loader, you can use the `i18n` custom block in the Single file components.
-
-In about `i18n` custom block, see the [Single file components section](./sfc.md)
-
-### ESLint Plugin
-
-[eslint-plugin-vue-i18n](https://intlify.github.io/eslint-plugin-vue-i18n/) is ESLint plugin for Vue I18n.
-
-It easily integrates some localization lint features to your Vue.js Application.
-
-### Extensions
-
-[vue-i18n-extensions](https://github.com/kazupon/vue-i18n-extensions) provides some extensions for Vue I18n.
-
-You can use this extension to enable SSR and improve i18n performance.
-
-## 3rd party tooling
-
-### BabelEdit
-
-[BabelEdit](https://www.codeandweb.com/babeledit) is translation editor for web apps.
-
-BabelEdit can translate `json` files, and it can also translate `i18n` custom block of Single-file components.
-
-Read more about BabelEdit in [tutorial page](https://www.codeandweb.com/babeledit/tutorials/how-to-translate-your-vue-app-with-vue-i18n).
-
-### i18n Ally
-
-[i18n Ally](https://marketplace.visualstudio.com/items?itemName=antfu.i18n-ally) is i18n extension for VSCode.
-
-i18n Ally give awesome DX for your i18n development.
-
-Read more about i18n Ally in [README](https://github.com/antfu/i18n-ally/blob/master/README.md).
-
-### i18nPlugin (intellij platform)
-
-[i18nPlugin](https://github.com/nyavro/i18nPlugin) Intellij idea i18next support plugin ( [Jetbrains plugin page ](https://plugins.jetbrains.com/plugin/12981-i18n-support)).
-
-Plugin for i18n typescript/javascript/PHP. Supports vue-i18n. To enable vue-i18n support go to settings -> Tools -> i18n Plugin configuration and check "Vue-i18n". You need set vue locales directory (locales by default).
-
-### vue-i18n-extract
-
-[vue-i18n-extract](https://github.com/pixari/vue-i18n-extract) performs static analysis on a Vue.js project based on vue-i18n and reports the following information:
-
-- list of all the **unused vue-i18n keys** (entries found in the language files but not used in the project)
-- list of all the **missing keys** (entries fond in the project but not in the language files)
-
-It's possible to show the output in the console or to write it in a json file.
-
-The missing keys can be also automatically added to the given language files.
diff --git a/docs-old/installation.md b/docs-old/installation.md
deleted file mode 100644
index 4e1da9042..000000000
--- a/docs-old/installation.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# Installation
-
-## Compatibility Note
-
-- Vue.js `2.0.0`+
-
-## Direct Download / CDN
-
-
-
-[unpkg.com](https://unpkg.com) provides NPM-based CDN links. The above link will always point to the latest release on NPM. You can also use a specific version/tag via URLs like
-
-Include vue-i18n after Vue and it will install itself automatically:
-
-
-```html
-
-
-```
-
-## NPM
-
-```sh
-npm install vue-i18n
-```
-
-## Yarn
-
-```sh
-yarn add vue-i18n
-```
-
-When using with a module system, you must explicitly install the `vue-i18n`
-via `Vue.use()`:
-
-
-```javascript
-import Vue from 'vue'
-import VueI18n from 'vue-i18n'
-
-Vue.use(VueI18n)
-```
-
-You don't need to do this when using global script tags `
-```
-
-:::warning Aviso
-:warning: As alterações de localização são ignoradas pelos componentes com a opção `sync: false`.
-:::
-
-:::warning Componente vs. escopo root
-:warning: Alterarando `$i18n.locale` dentro do componente não altera a localização root. Se você está contando com a localização root, por exemplo, ao usar [root fallback](./fallback.html), use `$root.$I18n.locale` ao vez de `$i18n.locale`.
-:::
diff --git a/docs-old/pt/guide/messages.md b/docs-old/pt/guide/messages.md
deleted file mode 100644
index c01a2926b..000000000
--- a/docs-old/pt/guide/messages.md
+++ /dev/null
@@ -1,319 +0,0 @@
-# Sintaxe mensagens locais
-
-## Estrutura
-
-Sintaxe local das mensagens:
-
-```typescript
-// Como definição do Flowtype, a sintaxe das mensagens de tradução é semelhante à anotação BNF
-type LocaleMessages = { [key: Locale]: LocaleMessageObject }
-type LocaleMessageObject = { [key: Path]: LocaleMessage }
-type LocaleMessageArray = LocaleMessage[]
-type MessageContext = {
- list: (index: number) => mixed,
- named: (key: string) => mixed
-};
-type MessageFunction = (ctx: MessageContext) => string;
-type LocaleMessage = string | MessageFunction | LocaleMessageObject | LocaleMessageArray;
-type Locale = string
-type Path = string
-```
-
-Com base na sintaxe acima, você pode configurar a seguinte estrutura de mensagens locais:
-
-```json
-{
- // localização 'pt'
- "pt": {
- "key1": "esta é a mensagem 1", // uso comum
- "nested": {
- // aninhado
- "message1": "esta é a mensagem aninhada 1"
- },
- "errors": [
- // array
- "esta é a mensagem de código de erro 0",
- {
- // um objeto em array
- "internal1": "esta é uma mensagem de código de erro interno 1"
- },
- [
- // array em array
- "este é o erro de array aninhado 1"
- ]
- ]
- },
- // localização 'en'
- "en": {
- // ...
- }
-}
-```
-
-Na estrutura de mensagens locais acima, você pode traduzir usando os caminhos-chave abaixo.
-
-```html
-
-
-
{{ $t('key1') }}
-
-
{{ $t('nested.message1') }}
-
-
{{ $t('errors[0]') }}
-
-
{{ $t('errors[1].internal1') }}
-
-
{{ $t('errors[2][0]') }}
-
-```
-
-O resultado será o seguinte:
-
-```html
-
-
-
esta é a mensagem 1
-
-
esta é a mensagem aninhada 1
-
-
esta é a mensagem de código de erro 0
-
-
esta é uma mensagem de código de erro interno 1
-
-
este é o erro de array aninhado 1
-
-```
-
-## Mensagens de localização relacionadas
-
-Se houver uma chave de tradução que sempre terá o mesmo texto concreto igual outra, você pode simplesmente criar um link para essa. Para vincular a outra chave de tradução, tudo que você precisa fazer é prefixar seu conteúdo com um sinal `@:` seguido pelo nome completo da chave de tradução incluindo o namespace ao qual deseja vincular.
-
-Mensagens de localização a seguir:
-
-```js
-const messages = {
- en: {
- message: {
- the_world: 'the world',
- dio: 'DIO:',
- linked: '@:message.dio @:message.the_world !!!!'
- }
- }
-}
-```
-
-Template:
-
-```html
-
{{ $t('message.linked') }}
-```
-
-O resultado será o seguinte:
-
-```html
-
DIO: the world !!!!
-```
-
-### Formatando mensagens de localização relacionadas
-
-Se o idioma distinguir casos de caracteres, você pode precisar controlar o caso das mensagens de localização relacionadas.
-Mensagens relacionadas podem ser formatadas com o modificador `@.modifier:key`
-
-Mensagens de localização a seguir:
-
-* `upper`: Letras maiúsculas em todos os caracteres na mensagem vinculada.
-* `lower`: Letras minúsculas em todos os caracteres na mensagem vinculada.
-* `capitalize`: Primeiro caractere em maiúsculo da mensagem vinculada.
-
-Mensagens de localização:
-
-```js
-const messages = {
- en: {
- message: {
- homeAddress: 'Home address',
- missingHomeAddress: 'Please provide @.lower:message.homeAddress'
- }
- },
- pt: {
- message: {
- homeAddress: 'Endereço residencial',
- missingHomeAddress: 'Por favor, providencie o @.lower:message.homeAddress'
- }
- }
-}
-```
-
-```html
-
-
-
-```
-
-Você pode adicionar modificadores ou sobrescrever os existentes passando as opções de `modificadores` para o construtor `VueI18n`.
-
-```js
-const i18n = new VueI18n({
- locale: 'pt',
- modifiers: {
- // Adicionando um novo modificador
- snakeCase: str => str.split(' ').join('-')
- },
- messages: {
- // ...
- },
-})
-```
-
-### Agrupando com parêntese
-
-Uma chave de tradução de uma mensagem também pode ser especificada com `@:(message.foo.bar.baz)`, onde a referência a outra chave de tradução está entre parêntese `()`.
-
-Isso pode ser necessário se um ponto `.` for exigido após um link para outra mensagem `@:message.something`, que de outra forma seria considerado parte do link.
-
-Mensagens de localização:
-
-```js
-const messages = {
- en: {
- message: {
- dio: 'DIO',
- linked: "There's a reason, you lost, @:(message.dio)."
- }
- },
- pt: {
- message: {
- dio: 'DIO',
- linked: "Há uma razão pela qual você falhou, @:(message.dio)."
- }
- }
-}
-```
-
-Template:
-
-```html
-
{{ $t('message.linked') }}
-```
-
-O resultado será o seguinte:
-
-```html
-
Há uma razão pela qual você falhou, DIO.
-```
-
-## Mensagem com função
-
-vue-i18n recomenda o uso de strings para formatação de lista ou formatação nomeada como mensagem de localização ao traduzir as mensagens.
-
-No entanto, existem situações em que, devido à sintaxe complexa da linguagem, todo o poder do JavaScript é necessário. Nesse caso, em vez de mensagens de string, você pode usar **uma mensagem com função**.
-
-A função abaixo retorna uma saudação:
-
-```js
-const messages = {
- en: {
- greeting: (ctx) => 'Hello!'
- },
- pt: {
- greeting: (ctx) => 'Olá!'
- }
-}
-```
-
-Usar a função da mensagem é fácil! Você só precisa especificar a chave usando `$t` ou `t`:
-
-```html
-
{{ $t('greeting') }}
-```
-
-O resultado será o seguinte:
-
-```html
-
Olá!
-```
-
-O resultado de retorno da função é usado para a mensagem.
-
-### Formatação nomeada
-
-vue-i18n suporta [formatação nomeada](./formatting.md#named-formatting) como um formato de mensagem baseado em string. vue-i18n interpola os valores dos parâmetros com `$t` ou `t`, e os retorna.
-
-O mesmo pode ser feito com a função da mensagem usando o **contexto de mensagem**:
-
-Aqui está o exemplo de saudação:
-
-```js
-const messages = {
- en: {
- greeting: (ctx) => `Hello, ${ctx.named('name')}!`
- },
- pt: {
- greeting: (ctx) => `Olá, ${ctx.named('name')}!`
- }
-}
-```
-
-Template:
-
-```html
-
{{ $t('greeting', { name: 'DIO' }) }}
-```
-
-O resultado será o seguinte:
-
-```html
-
Olá, DIO!
-```
-
-O contexto da mensagem fornece acesso à função `named`. Você deve especificar a chave especificada para `$t` ou `t`, que resolverá com o valor necessário.
-
-### Formatação de lista
-
-O uso da formatação de lista é semelhante ao formatação nomeada descrito acima.
-
-vue-i18n suporta [formatação de lista](./formatting.md#list-formatting) para mensagens de string. vue-i18n interpola os valores dos parâmetros com `$t` ou `t`, e os retorna.
-
-O mesmo pode ser feito com a função da mensagem usando o **contexto de mensagem**:
-
-Aqui está o exemplo de saudação:
-
-```js
-const messages = {
- en: {
- greeting: (ctx) => `Hello, ${ctx.list(0)}!`
- },
- pt: {
- greeting: (ctx) => `Olá, ${ctx.list(0)}!`
- }
-}
-```
-
-Template:
-
-```html
-
{{ $t('greeting', ['DIO']) }}
-```
-
-O resultado será o seguinte:
-
-```html
-
Olá, DIO!
-```
-
-O contexto da mensagem fornece acesso à função `list`. Você deve especificar a chave especificada para `$t` ou `t`, que resolverá com o valor necessário.
-
-### Limitação
-
-Em uma função para mensagem, os seguintes recursos, que estão disponíveis em uma versão de string, não estarão disponíveis por meio do contexto da mensagem:
-
-- Mensagens de localidade vinculadas
-- Pluralização
diff --git a/docs-old/pt/guide/number.md b/docs-old/pt/guide/number.md
deleted file mode 100644
index a388f386a..000000000
--- a/docs-old/pt/guide/number.md
+++ /dev/null
@@ -1,142 +0,0 @@
-# Localização de números
-
-:::tip Suporta a versão
-:new: 7.0+
-:::
-
-Você pode localizar números com seus formatos de definição.
-
-Formato de exemplo para números:
-
-```js
-const numberFormats = {
- 'en-US': {
- currency: {
- style: 'currency',
- currency: 'USD'
- }
- },
- 'pt-BR': {
- currency: {
- style: 'currency',
- currency: 'BRL',
- currencyDisplay: 'symbol'
- }
- }
-}
-```
-
-Conforme declarado acima, você pode especificar formatos numéricos (por exemplo, `currency` para moeda) usando opções [ECMA-402 Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat).
-
-Depois disso, para poder usar este formato em mensagens de localização, você precisa definir a opção `numberFormats` do construtor na instância `VueI18n`:
-
-```js
-const i18n = new VueI18n({
- numberFormats
-})
-
-new Vue({
- i18n
-}).$mount('#app')
-```
-
-Template:
-
-```html
-
-
{{ $n(100, 'currency') }}
-
{{ $n(100, 'currency', 'pt-BR') }}
-
-```
-
-O resultado será o seguinte:
-
-```html
-
-
$100.00
-
100,00 ₽
-
-```
-
-## Formatação personalizada
-
-:::tip Suporta a versão
-:new: 8.10+
-:::
-
-O método `$n` retorna o resultado como uma string numérica totalmente formatada que só pode ser usada em sua totalidade. Nos casos em que você precisa estilizar alguma parte de um número formatado (por exemplo, uma parte fracionária), `$n` não será suficiente. Nesses casos, é necessário usar o componente funcional `` será útil.
-
-Com um conjunto mínimo de propriedades, `` gera o mesmo resultado que `$n` envolvido em um elemento DOM configurado.
-
-Template:
-
-```html
-
-
-
-
-
-```
-
-O resultado será o seguinte:
-
-```html
-
- 100
- $100.00
- R$ 100,00
-
-```
-
-O verdadeiro poder deste componente entra em ação quando é usado com [slots com escopo](https://br.vuejs.org/v2/guide/components-slots.html#Slots-com-Escopo-Definido).
-
-Digamos que haja um requisito para exibir a parte inteira de um número em negrito. Isso pode ser obtido especificando `integer` no elemento do slot com escopo:
-
-```html
-
-
- {{ slotProps.integer }}
-
-
-```
-
-O resultado será o seguinte:
-
-```html
-$100.00
-```
-
-É possível especificar vários slots com escopo ao mesmo tempo:
-
-```html
-
-
- {{ slotProps.currency }}
-
-
- {{ slotProps.integer }}
-
-
- {{ slotProps.group }}
-
-
- {{ slotProps.fraction }}
-
-
-```
-
-(O HTML de resultado abaixo é formatado para melhor legibilidade)
-
-```html
-
- €
- 1
- ,
- 234
- 00
-
-```
-
-Você pode especificar o tipo do elemento raiz usando o parâmetro de entrada `tag`. Se nenhum parâmetro de entrada for especificado, o padrão é `'span'`. Você também pode defini-lo com o valor booleano `false` para inserir os nós filhos diretamente sem criar um elemento raiz.
-
-A lista completa dos slots de escopo suportados, bem como outras propriedades ``, pode ser encontradas [na página da API](../api/readme.md#i18n-n-functional-component).
diff --git a/docs-old/pt/guide/pluralization.md b/docs-old/pt/guide/pluralization.md
deleted file mode 100644
index db9ed5ab8..000000000
--- a/docs-old/pt/guide/pluralization.md
+++ /dev/null
@@ -1,174 +0,0 @@
-# Pluralização
-
-Você pode usar pluralização para mensagens traduzidas. Para fazer isso, precisa definir a localidade e especificar as strings de tradução para os diferentes casos por meio do separador `|`.
-
-*Seu template precisará usar `$tc()` em vez de `$t()`.*
-
-Mensagens locais abaixo:
-
-```js
-const messages = {
- en: {
- car: 'car | cars',
- apple: 'no apples | one apple | {count} apples'
- },
- pt: {
- car: 'carro | carros',
- apple: 'sem maçãs | uma maçã | {count} maçãs'
- }
-}
-```
-
-Template:
-
-```html
-
{{ $tc('car', 1) }}
-
{{ $tc('car', 2) }}
-
-
{{ $tc('apple', 0) }}
-
{{ $tc('apple', 1) }}
-
{{ $tc('apple', 10, { count: 10 }) }}
-```
-
-O resultado será o seguinte:
-
-```html
-
carro
-
carros
-
-
sem maçãs
-
uma maçã
-
10 maçãs
-```
-
-## Acessando o número por meio do argumento predefinido
-
-Não há necessidade de passar explicitamente o número para pluralização. Em mensagens de localização, um número está disponível através dos argumentos nomeados `{count}` e/ou `{n}`. Você pode substituí-los, se desejar.
-
-Mensagens locais abaixo:
-
-```js
-const messages = {
- en: {
- apple: 'no apples | one apple | {count} apples',
- banana: 'no bananas | {n} banana | {n} bananas'
- },
- pt: {
- apple: 'sem maçãs | uma maçã | {count} maçãs'
- banana: 'sem bananas | {n} banana | {n} bananas'
- }
-}
-```
-
-Template:
-
-```html
-
{{ $tc('apple', 10, { count: 10 }) }}
-
{{ $tc('apple', 10) }}
-
-
{{ $tc('banana', 1, { n: 1 }) }}
-
{{ $tc('banana', 1) }}
-
{{ $tc('banana', 100, { n: 'Muitas' }) }}
-```
-
-O resultado será o seguinte:
-
-```html
-
10 maçãs
-
10 maçãs
-
-
1 banana
-
1 banana
-
Muitas bananas
-```
-
-## Pluralização personalizadas
-
-Essa pluralização, entretanto, não se aplica a todas as línguas (as línguas eslavas, por exemplo, têm regras de pluralização diferentes).
-
-Para implementar essas regras, você pode passar um objeto `pluralizationRules` opcional para as opções do construtor `VueI18n`.
-
-Um exemplo simplificado para idiomas eslavos (russo, ucraniano e outros):
-```js
-new VueI18n({
- // Key - idioma para usar a regra, `'ru'`, neste caso
- // Value - função para escolher a forma plural correta
- pluralizationRules: {
- /**
- * @param choice {number} um índice de escolha dado pela entrada de $tc: `$tc('path.to.rule', choiceIndex)`
- * @param choicesLength {number} quantidade geral de opções disponíveis
- * @returns índice final para selecionar as palavras no plural
- */
- 'ru': function(choice, choicesLength) {
- // this === Instância VueI18n, então a propriedade locale também existe aqui
-
- if (choice === 0) {
- return 0;
- }
-
- const teen = choice > 10 && choice < 20;
- const endsWithOne = choice % 10 === 1;
-
- if (choicesLength < 4) {
- return (!teen && endsWithOne) ? 1 : 2;
- }
- if (!teen && endsWithOne) {
- return 1;
- }
- if (!teen && choice % 10 >= 2 && choice % 10 <= 4) {
- return 2;
- }
-
- return (choicesLength < 4) ? 2 : 3;
- }
- }
-})
-```
-
-Essa implementação permitirá que você use:
-
-```js
-const messages = {
- ru: {
- car: '0 машин | {n} машина | {n} машины | {n} машин',
- banana: 'нет бананов | {n} банан | {n} банана | {n} бананов'
- }
-}
-```
-
-Onde o formato é `0 coisas | número de itens termina em 1 | o número de coisas que termina em 2-4 | o número de coisas que termina com 5-9, 0 e o número coisas que termina de 11 a 19`.
-P.S. A pluralização eslava é complexa, você pode ler mais sobre isso [aqui](http://www.russianlessons.net/lessons/lesson11_main.php).
-
-No template, você ainda precisa usar `$tc()` em vez de `$t()`:
-
-```html
-
{{ $tc('car', 1) }}
-
{{ $tc('car', 2) }}
-
{{ $tc('car', 4) }}
-
{{ $tc('car', 12) }}
-
{{ $tc('car', 21) }}
-
-
{{ $tc('banana', 0) }}
-
{{ $tc('banana', 4) }}
-
{{ $tc('banana', 11) }}
-
{{ $tc('banana', 31) }}
-```
-
-O resultado será o seguinte:
-
-```html
-
1 машина
-
2 машины
-
4 машины
-
12 машин
-
21 машина
-
-
нет бананов
-
4 банана
-
11 бананов
-
31 банан
-```
-
-### Pluralização padrão
-
-Se nenhuma regra de pluralização for fornecida para a localidade em uso, a regra [padrão](#pluralizacao) do idioma inglês será usada.
diff --git a/docs-old/pt/guide/sfc.md b/docs-old/pt/guide/sfc.md
deleted file mode 100644
index d5e06460c..000000000
--- a/docs-old/pt/guide/sfc.md
+++ /dev/null
@@ -1,410 +0,0 @@
-# Componentes de arquivo único
-
-## Uso básico
-
-Se você estiver construindo um componente ou aplicativo Vue usando componentes de arquivo único, você pode gerenciar as mensagens de localização usando um bloco `i18n` personalizado.
-
-Código de componente com [exemplo de componentes de arquivo único](https://github.com/kazupon/vue-i18n/tree/dev/examples/sfc):
-
-```vue
-
-{
- "en": {
- "hello": "Hello World!"
- },
- "pt": {
- "hello": "Olá Mundo!"
- }
-}
-
-
-
-
-
-
-
Mensagem: {{ $t('hello') }}
-
-
-
-
-```
-
-## Instalação vue-i18n-loader
-
-Você precisa instalar `vue-loader` e `vue-i18n-loader` devido ao uso de blocos personalizados ``. Embora [vue-loader](https://github.com/vuejs/vue-loader) provavelmente já seja usado em seu projeto se você estiver trabalhando com componentes de arquivo único, mas você vai precisar instalar [vue-i18n-loader](https://github.com/kazupon/vue-i18n-loader) adicionalmente:
-
-```bash
-npm i --save-dev @kazupon/vue-i18n-loader
-```
-
-## Webpack
-
-O Webpack requer a seguinte configuração:
-
-Para vue-loader v15 ou posterior:
-
-```js
-module.exports = {
- // ...
- module: {
- rules: [
- {
- test: /\.vue$/,
- loader: 'vue-loader'
- },
- {
- resourceQuery: /blockType=i18n/,
- type: 'javascript/auto',
- loader: '@kazupon/vue-i18n-loader'
- }
- // ...
- ]
- }
- // ...
-}
-```
-
-Para vue-loader v14:
-
-```js
-module.exports = {
- // ...
- module: {
- rules: [
- {
- test: /\.vue$/,
- loader: 'vue-loader',
- options: {
- loaders: {
- // você precisa especificar a chave do carregador `i18n` com o `vue-i18n-loader`
- // (https://github.com/kazupon/vue-i18n-loader)
- i18n: '@kazupon/vue-i18n-loader'
- }
- }
- }
- // ...
- ]
- }
- // ...
-}
-```
-
-## Vue CLI 3.0
-
-[Vue CLI 3.0](https://github.com/vuejs/vue-cli) ocultar a configuração do Webpack, portanto, para adicionar suporte para tags `` em componentes de arquivo único, precisamos modificar a configuração existente.
-
-Para fazer isso, temos que criar um `vue.config.js` na raiz do nosso projeto. Depois de fazer isso, devemos incluir o seguinte código:
-
-Para vue-loader v15 ou posterior:
-
-```js
-module.exports = {
- chainWebpack: config => {
- config.module
- .rule('i18n')
- .resourceQuery(/blockType=i18n/)
- .type('javascript/auto')
- .use('i18n')
- .loader('@kazupon/vue-i18n-loader')
- .end()
- }
-}
-```
-
-Para vue-loader v14:
-
-```js
-const merge = require('deepmerge')
-
-module.exports = {
- chainWebpack: config => {
- config.module
- .rule('vue')
- .use('vue-loader')
- .tap(options =>
- merge(options, {
- loaders: {
- i18n: '@kazupon/vue-i18n-loader'
- }
- })
- )
- }
-}
-```
-
-_Não se esqueça de instalar o [deepmerge](https://github.com/KyleAMathews/deepmerge)! (`npm i deepmerge -D` ou `yarn add deepmerge -D`)_
-
-Você pode aprender mais sobre as possibilidades de modificar a configuração do Webpack existente [neste guia](https://cli.vuejs.org/guide/webpack.html).
-
-## Laravel-Mix
-
-Para Laravel-mix 4 com vue-loader v15 ou posterior:
-
-```js
-// Estenda o Mix usando o método "i18n", que carrega o vue-i18n-loader
-mix.extend( 'i18n', new class {
- webpackRules() {
- return [
- {
- resourceQuery: /blockType=i18n/,
- type: 'javascript/auto',
- loader: '@kazupon/vue-i18n-loader',
- },
- ];
- }
- }(),
-);
-
-// Certifique-se de chamar .i18n() para carregar o loader antes do .js(..., ...)
-mix.i18n()
- .js( 'resources/js/App.js', 'public/js/app.js' )
- ...
-```
-
-para Laravel-mix 2 com vue-loader v14:
-
-No Laravel-mix, começando na versão [V2.1](https://github.com/JeffreyWay/laravel-mix/releases/tag/v2.1), você pode adicionar regras personalizadas usando `mix.extend()`. O Laravel-mix já possui suas próprias regras para lidar com arquivos `.vue`. Para adicionar `vue-i18n-loader`, no arquivo `webpack.mix.js` adicione o seguinte código:
-
-```js
-// O código a seguir injetará o i18n Kazupon/vue-18-loader como o loader de arquivos .vue
-mix.extend( 'i18n', function( webpackConfig, ...args ) {
- webpackConfig.module.rules.forEach( ( module ) => {
- // Procure o componente "vue-loader", que processa os arquivos .vue
- if( module.loader !== 'vue-loader' ) {
- return;
- }
-
- // Neste módulo, adicione o vue-i18n-loader para a tag i18n.
- module.options.loaders.i18n = '@kazupon/vue-i18n-loader';
- } );
-} );
-
-// Certifique-se de chamar .i18n() para carregar o loader antes de .js(..., ...)
-mix.i18n()
- .js( 'resources/assets/js/App.js', 'public/js/app.js' )
- ...
-```
-
-## Carregando YAML
-
-Os blocos personalizados `i18n` podem ser especificados no formato `JSON` ou `YAML` usando o recurso de pré-carregador do `vue-loader`.
-
-Os blocos personalizados `i18n` no formato `YAML`:
-
-```vue
-
- en:
- hello: "Hello World!"
- pt:
- hello: "Olá Mundo!"
-
-```
-
-Configuração do Webpack:
-
-Para vue-loader v15 ou posterior:
-
-```js
-// Vue CLI 3.0
-module.exports = {
- chainWebpack: config => {
- config.module
- .rule('i18n')
- .resourceQuery(/blockType=i18n/)
- .type('javascript/auto')
- .use('i18n')
- .loader('@kazupon/vue-i18n-loader')
- .end()
- .use('yaml')
- .loader('yaml-loader')
- .end()
- }
-}
-```
-
-Para vue-loader v14:
-
-```js
-module.exports = {
- // ...
- module: {
- rules: [
- {
- test: /\.vue$/,
- loader: 'vue-loader',
- options: {
- preLoaders: {
- i18n: 'yaml-loader'
- },
- loaders: {
- i18n: '@kazupon/vue-i18n-loader'
- }
- }
- }
- // ...
- ]
- }
- // ...
-}
-```
-
-## Vários blocos personalizados
-
-Você pode usar mensagens de localização com vários blocos personalizados `i18n`.
-
-```vue
-
-
- {
- "en": {
- "hello": "Hello World!"
- },
- "pt": {
- "hello": "Olá Mundo!"
- }
- }
-
-```
-
-No exemplo acima, o primeiro bloco personalizado carrega as mensagens de localização genérica usando o atributo `src`, o segundo bloco personalizado carrega as mensagens de localização que são definidas apenas neste componente de arquivo único. Todos eles serão mesclados com mensagens de localização de componentes.
-
-Desta forma, vários blocos personalizados são úteis quando usados como módulos.
-
-## Estilos Locais
-
-Ao usar `vue-i18n` com estilos locais `style scoped`, é importante lembrar de usar [deep selector](https://vue-loader.vuejs.org/guide/scoped-css.html#deep-selectors) para estilizar o elemento __*dentro*__ da string de tradução.
-
-Por exemplo:
-
-__Quando a tradução contém apenas texto__ (funciona sem deep selector)
-
-```vue
-
- {
- "en": {
- "hello": "Hello World!"
- },
- "pt": {
- "hello": "Olá Mundo!"
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-## Blocos personalizados em componente funcional
-
-Se os componentes de arquivo único têm o template usando um componente funcional, e você definiu blocos personalizados `i18n`, observe que você não pode localizar usando mensagens de local.
-
-Por exemplo, o código a seguir não pode usar mensagens de localização do bloco `i18n`.
-
-```vue
-
- {
- "en": {
- "hello": "Hello World"
- },
- "pt": {
- "hello": "Olá Mundo"
- }
- }
-
-
-
-
-
{{ parent.$t('hello') }}
-
-```
diff --git a/docs-old/pt/guide/tooling.md b/docs-old/pt/guide/tooling.md
deleted file mode 100644
index f05d23595..000000000
--- a/docs-old/pt/guide/tooling.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# Ferramentas
-
-Para suportar os aplicativos i18n do Vue, algumas ferramentas são fornecidas oficialmente.
-
-Existem também ferramentas de terceiros que integram o Vue I18n.
-
-## Ferramentas oficiais
-
-### Plugin para Vue CLI
-
-[vue-cli-plugin-i18n](https://github.com/kazupon/vue-cli-plugin-i18n) é o plugin oficial para o Vue CLI.
-
-Com este plugin, você pode configurar um ambiente i18n para seu aplicativo Vue e oferecer suporte ao ambiente de desenvolvimento i18n.
-
-### Módulo para Nuxt
-
-[nuxt-i18n](https://github.com/nuxt-community/nuxt-i18n/) é o módulo correspondente para Nuxt.js.
-
-### Loader para Webpack
-
-[vue-i18n-loader](https://github.com/kazupon/vue-i18n-loader) — é o loader para webpack oficial.
-
-Com este loader é possível usar blocos `i18n` personalizados em componentes de arquivo único.
-
-Para obter mais informações sobre blocos `i18n` personalizados, consulte [Componentes de arquivo único](./sfc.md)
-
-### Plugin para ESLint
-
-[eslint-plugin-vue-i18n](https://intlify.github.io/eslint-plugin-vue-i18n/) - Plug-in ESLint para Vue I18n.
-
-Permite que você integre facilmente alguns recursos de localização do lint ao seu aplicativo Vue.js.
-
-### Extensões
-
-[vue-i18n-extensions](https://github.com/kazupon/vue-i18n-extensions) fornece algumas extensões para Vue I18n.
-
-Você pode usar esta extensão para habilitar o SSR e melhorar o desempenho do i18n.
-
-## Ferramentas de terceiros
-
-### BabelEdit
-
-[BabelEdit](https://www.codeandweb.com/babeledit) é um editor de tradução para aplicativos da web.
-
-O BabelEdit pode traduzir arquivos `json` e também pode trabalhar com blocos personalizados `i18n` de componentes de arquivo único.
-
-Mais informações sobre o BabelEdit podem ser encontradas na página de [introdução](https://www.codeandweb.com/babeledit/tutorials/how-to-translate-your-vue-app-with-vue-i18n).
-
-### i18n Ally
-
-[i18n Ally] (https://marketplace.visualstudio.com/items?itemName=antfu.i18n-ally) é uma extensão i18n para VSCode.
-
-i18n Ally oferece um DX(Experiência do desenvolvedor) incrível para o desenvolvimento de i18n.
-
-Você pode aprender mais sobre a extensão i18n Ally em [README](https://github.com/antfu/i18n-ally/blob/master/README.md).
-
-### i18nPlugin (plataforma intellij)
-
-[i18nPlugin](https://github.com/nyavro/i18nPlugin) — Plugin de suporte para idea Intellij i18next ([Página do plugin Jetbrains](https://plugins.jetbrains.com/plugin/12981-i18n-support)).
-
-Plugin para i18n typescript/javascript/PHP. Suporta vue-i18n. Para habilitar o suporte a vue-i18n vá em configurações -> Ferramentas -> Configuração do plugin i18n e selecione "Vue-i18n". É necessário instalar os diretórios com os arquivos de tradução (tradução por padrão).
-
-### vue-i18n-extract
-
-[vue-i18n-extract](https://github.com/pixari/vue-i18n-extract) faz uma análise estática de um projeto Vue.js com base em vue-i18n e relata as seguintes informações:
-
-- lista de todas as **chaves vue-i18n não utilizadas** (entradas encontradas nos arquivos de idioma, mas não utilizadas no projeto)
-- lista de todas as **chaves ausentes** (entradas encontradas no projeto, mas não nos arquivos de idioma)
-
-É possível mostrar a saída no console ou gravá-la em um arquivo json.
-
-As chaves ausentes também podem ser adicionadas automaticamente aos arquivos de tradução fornecidos.
diff --git a/docs-old/pt/installation.md b/docs-old/pt/installation.md
deleted file mode 100644
index dc51f35af..000000000
--- a/docs-old/pt/installation.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# Instalação
-
-## Nota de compatibilidade
-
-- Vue.js versões `2.0.0`+
-
-## Download direto / CDN
-
-
-
-O serviço [unpkg.com](https://unpkg.com) fornece links CDN com base em pacotes NPM. O link acima sempre apontará para a versão mais recente do NPM. Você pode usar uma versão ou tag específica usando um URL como este
-
-Ao conectar o vue-i18n após o Vue, o plug-in será instalado automaticamente:
-
-```html
-
-
-```
-
-## NPM
-
-```bash
-npm install vue-i18n
-```
-
-## Yarn
-
-```bash
-yarn add vue-i18n
-```
-
-Ao usar o sistema de módulos, você deve definir explicitamente `vue-i18n`
-via `Vue.use()`:
-
-```js
-import Vue from 'vue'
-import VueI18n from 'vue-i18n'
-
-Vue.use(VueI18n)
-```
-
-Você não precisa fazer isso ao usar tags de script globais `
-
-
-
-
{{ $t("message.hello") }}
-
-```
-
-## JavaScript
-
-```js
-// Se você usa um sistema de módulos (p. ex. via vue-cli)
-// Importe o Vue e VueI18n assim utilize-o Vue.use(VueI18n).
-//
-// import Vue from 'vue'
-// import VueI18n from 'vue-i18n'
-//
-// Vue.use(VueI18n)
-
-// Mensagens traduzidas de suas localidades
-const messages = {
- en: {
- message: {
- hello: 'Hello World'
- }
- },
- pt: {
- message: {
- hello: 'Olá Mundo'
- }
- }
-}
-
-// Crie uma instância do VueI18n com opções
-const i18n = new VueI18n({
- locale: 'pt', // Defina uma localidade
- messages, // Defina as mensagens
-})
-
-
-// Crie uma instância Vue com a opção `i18n`
-new Vue({ i18n }).$mount('#app')
-
-// Pronto agora o aplicativo foi iniciado!
-```
-
-O resultado será o seguinte:
-
-```html
-
Позволяет легко добавить интернационализацию в приложение с помощью простого API
-
-
-
Функциональный
-
В дополнение к переводам, поддерживает плюрализацию, локализацию для чисел, дат ... и т.д.
-
-
-
Ориентированный на компоненты
-
Можно управлять сообщениями локализации в однофайловых компонентах
-
-
diff --git a/docs-old/ru/api/README.md b/docs-old/ru/api/README.md
deleted file mode 100644
index 8b7849243..000000000
--- a/docs-old/ru/api/README.md
+++ /dev/null
@@ -1,922 +0,0 @@
----
-sidebar: auto
----
-
-# Справочник API
-
-## Расширение прототипа Vue
-
-### Опции конструктора Vue
-
-#### i18n
-
-* **Тип:** `I18nOptions`
-
-Опция локализации на основе компонентов.
-
-* **См. также:** Опции конструктора класса `VueI18n`
-
-### Внедряемые методы
-
-#### $t
-
-* **Аргументы:**
-
- * `{Path} key`: обязательный
- * `{Locale} locale`: опционально
- * `{Array | Object} values`: опционально
-
-* **Возвращает:** `TranslateResult`
-
-Получение переведённого сообщения по ключу `key`. Сообщения локализации в компоненте имеют приоритет над глобальными сообщениями. Если сообщений локализации в компоненте нет, то локализация осуществляется с помощью глобальных сообщений локализации. Если указана `locale`, то используются сообщения локализации из `locale`. Если был указан `key` именованного формата / формата списков сообщений локализации, то необходимо указывать также `values`. Подробнее про значения `values` можно изучить в разделе [Формат сообщений локализации](../guide/formatting.md).
-
-:::danger Совет
-Обратите внимание, что в хуках жизненного цикла контекст должен быть экземпляром компонента (например в опции `data`, `const $t = this.$t.bind(this)`).
-:::
-
-#### $tc
-
-* **Аргументы:**
-
- * `{Path} key`: обязательный
- * `{number} choice`: опционально, по умолчанию `1`
- * `{Locale} locale`: опционально
- * `{string | Array | Object} values`: опционально
-
-* **Возвращает:** `TranslateResult`
-
-Получение переведённого сообщения по ключу `key` с использованием плюрализации. Сообщения локализации компонента имеют приоритет над глобальными сообщениями. Если сообщений локализации в компоненте нет, то локализация осуществляется с помощью глобальных сообщений локализации. Если указана `locale`, то используются сообщения локализации из `locale`. Если указано строковое значение для `values`, то локализация выполняется для этого значения. Если указано значение Array или Object в `values`, то необходимо указывать с `values` из $t.
-
-Если вам не подходит реализация плюрализации по умолчанию, смотрите [pluralization rules в опциях конструктора](#pluralizationrules) и [пользовательскую плюрализацию](../guide/pluralization.md).
-
-:::danger Совет
-Обратите внимание, что в хуках жизненного цикла контекст должен быть экземпляром компонента (например в опции `data`, `const $tc = this.$tc.bind(this)`).
-:::
-
-#### $te
-
-* **Аргументы:**
-
- * `{Path} key`: обязательный
- * `{Locale} locale`: опционально
-
-* **Возвращает:** `boolean`
-
-Проверяет существует ли перевод для ключа в сообщениях локализации. Если нет сообщений локализации в компоненте, то проверяет в глобальных сообщениях локализации. Если указана `locale`, то проверяется наличие в сообщениях локализации `locale`.
-
-:::danger Совет
-Обратите внимание, что в хуках жизненного цикла контекст должен быть экземпляром компонента (например в опции `data`, `const $te = this.$te.bind(this)`).
-:::
-
-#### $d
-
-> :new: Добавлено в версии 7.0+
-
-* **Аргументы:**
-
- * `{number | Date} value`: обязательный
- * `{Path | Object} key`: опционально
- * `{Locale | Object} locale`: опционально
-
-* **Возвращает:** `DateTimeFormatResult`
-
-Локализация даты из `value` по указанному формату даты из `key`. Формат указанный в `key` должен быть зарегистрирован в опции `dateTimeFormats` класса `VueI18n`, и зависит от опции `locale` конструктора `VueI18n`. Если указать аргумент `locale`, то он будет иметь приоритет над опцией `locale` конструктора `VueI18n`.
-
-Если формата даты для `key` нет в опции `dateTimeFormats`, то будет использован запасной формат, основываясь на опции `fallbackLocale` конструктора `VueI18n`.
-
-:::danger Совет
-Обратите внимание, что в хуках жизненного цикла контекст должен быть экземпляром компонента (например в опции `data`, `const $d = this.$d.bind(this)`).
-:::
-
-#### $n
-
-> :new: Добавлено в версии 7.0+
-
-* **Аргументы:**
-
- * `{number} value`: обязательный
- * `{Path | Object} format`: опционально
- * `{Locale} locale`: опционально
-
-* **Возвращает:** `NumberFormatResult`
-
-Локализация числа `value` с помощью формата чисел `format`. Числовой формат из `format` должен быть зарегистрирован в опции `numberFormats` класса `VueI18n`, и зависит от опции `locale` конструктора `VueI18n`. Если указать аргумент `locale`, то он будет иметь приоритет над опцией `locale` конструктора `VueI18n`.
-
-Если формат чисел для `format` не указан в опции `numberFormats`, будет использован запасной формат, основываясь на опции `fallbackLocale` конструктора `VueI18n`.
-
-Если второй аргумент `format` указан объектом, то в нём должны быть следующие свойства:
-
-* `key {Path}`: опционально, форматируемое число
-* `locale {Locale}`: опционально, локализация
-* `compactDisplay {string}`: опционально, опция форматирования чисел
-* `currency {string}`: опционально, опция форматирования чисел
-* `currencyDisplay {string}`: опционально, опция форматирования чисел
-* `currencySign {string}`: опционально, опция форматирования чисел
-* `localeMatcher {string}`: опционально, опция форматирования чисел
-* `notation {string}`: опционально, опция форматирования чисел
-* `numberingSystem {string}`: опционально, опция форматирования чисел
-* `signDisplay {string}`: опционально, опция форматирования чисел
-* `style {string}`: опционально, опция форматирования чисел
-* `unit {string}`: опционально, опция форматирования чисел
-* `unitDisplay {string}`: опционально, опция форматирования чисел
-* `useGrouping {string}`: опционально, опция форматирования чисел
-* `minimumIntegerDigits {string}`: опционально, опция форматирования чисел
-* `minimumFractionDigits {string}`: опционально, опция форматирования чисел
-* `maximumFractionDigits {string}`: опционально, опция форматирования чисел
-* `minimumSignificantDigits {string}`: опционально, опция форматирования чисел
-* `maximumSignificantDigits {string}`: опционально, опция форматирования чисел
-
-Любые указанные опции форматирования числа будут иметь приоритет над значениями `numberFormats` из конструктора `VueI18n`.
-
-:::danger Совет
-Обратите внимание, что в хуках жизненного цикла контекст должен быть экземпляром компонента (например в опции `data`, `const $n = this.$n.bind(this)`).
-:::
-
-### Внедряемые свойства
-
-#### $i18n
-
-* **Тип:** `I18n`
-
-* **Только для чтения**
-
-Получение экземпляра `VueI18n`, если был определён.
-
-Если в компоненте указана опция `i18n`, то получение экземпляра `VueI18n` компонента. В противном случае, получение корневого экземпляра `VueI18n`.
-
-## Класс `VueI18n`
-
-Класс `VueI18n` реализует интерфейс `I18n` из [определений flowtype](https://github.com/kazupon/vue-i18n/blob/dev/decls/i18n.js)
-
-### Статические свойства
-
-#### version
-
-* **Тип:** `string`
-
-Версия `vue-i18n`.
-
-#### availabilities
-
-> :new: Добавлено в версии 7.0+
-
-* **Тип:** `IntlAvailability`
-
-Проверка доступности следующих возможностей интернационализации:
-
-* `{boolean} dateTimeFormat`: форматирование дат для локалей
-
-* `{boolean} numberFormat`: форматирование чисел для локалей
-
-Указанные выше возможности интернационализации зависят от [окружения браузера](http://kangax.github.io/compat-table/esintl/), в котором реализован ECMAScript Internationalization API (ECMA-402).
-
-### Опции конструктора
-
-Можно указывать некоторые опции конструктора `I18nOptions`, основываясь на [определениях flowtype](https://github.com/kazupon/vue-i18n/blob/dev/decls/i18n.js)
-
-#### locale
-
-* **Тип:** `Locale`
-
-* **По умолчанию:** `'en-US'`
-
-Локаль используемая для локализации. Если локаль содержит территорию и диалект, то эта локаль явно определяет запасную локализацию.
-
-#### fallbackLocale
-
-* **Тип:** `FallbackLocale`
-
-* **По умолчанию:** `false`
-
-Запасная локаль для локализации. Подробнее в разделе [Запасная локализация](../guide/fallback.md).
-
-#### messages
-
-* **Тип:** `LocaleMessages`
-
-* **По умолчанию:** `{}`
-
-Сообщения локализации для локали.
-
-#### dateTimeFormats
-
-> :new: Добавлено в версии 7.0+
-
-* **Тип:** `DateTimeFormats`
-
-* **По умолчанию:** `{}`
-
-Форматы дат для локализации.
-
-* **См. также:** тип `DateTimeFormats` в [определениях flowtype](https://github.com/kazupon/vue-i18n/blob/dev/decls/i18n.js)
-
-#### numberFormats
-
-> :new: Добавлено в версии 7.0+
-
-* **Тип:** `NumberFormats`
-
-* **По умолчанию:** `{}`
-
-Форматы чисел для локализации.
-
-* **См. также:** тип `NumberFormats` в [определениях flowtype](https://github.com/kazupon/vue-i18n/blob/dev/decls/i18n.js)
-
-#### availableLocales
-
-> :new: Добавлено в версии 8.9.0+
-
-* **Тип:** `Locale[]`
-
-* **По умолчанию:** `[]`
-
-* **Примеры:** `["en", "ru"]`
-
-Список доступных локалей в `messages` в лексическом порядке.
-
-#### formatter
-
-* **Тип:** `Formatter`
-
-* **По умолчанию:** Встроенный formatter
-
-Метод форматирования, реализующий интерфейс `Formatter`.
-
-#### modifiers
-
-> :new: Добавлено в версии 8.15.0+
-
-* **Тип:** `Modifiers`
-
-* **По умолчанию:** модификаторы `lower` и `upper`
-
-Функции модификаторов для связанных сообщений
-
-#### missing
-
-* **Тип:** `MissingHandler`
-
-* **По умолчанию:** `null`
-
-Обработчик для отсутствующих сообщений локализации. Обработчик будет вызван с локалью, ключом сообщения локализации и значениями values.
-
-Если указан этот обработчик и произойдёт попытка доступа к отсутствующему сообщению локализации, то предупреждения в консоли не будет.
-
-#### fallbackRoot
-
-* **Тип:** `Boolean`
-
-* **По умолчанию:** `true`
-
-При использовании локализации в компонентах определяет обращаться ли к локализации корневого уровня (глобальной) при неудаче.
-
-При значении `false` будет выбрасываться предупреждение и возвращаться ключ.
-
-#### sync
-
-* **Тип:** `Boolean`
-
-* **По умолчанию:** `true`
-
-Синхронизировать ли локализацию корневого уровня с локализацией компонента.
-
-При значении `false`, независимо от локали определённой на корневом уровне, будет использоваться локаль установленная в компоненте.
-
-#### silentTranslationWarn
-
-> 6.1+, :up: 8.13
-
-* **Тип:** `Boolean | RegExp`
-
-* **По умолчанию:** `false`
-
-Отключение предупреждений, отображаемых при неудаче локализации.
-
-При значении `true`, отключаются предупреждения об ошибках локализации. Если использовать регулярное выражение, то можно отключать предупреждения об ошибках, которые будут соответствовать `key` (например, `$t`).
-
-#### silentFallbackWarn
-
-> :new: Добавлено в версии 8.8+, :up: 8.13
-
-* **Тип:** `Boolean | RegExp`
-
-* **По умолчанию:** `false`
-
-Отключение предупреждений при использовании запасной локали из `fallbackLocale` или `root`.
-
-При значении `true` предупреждения будут генерироваться только если недоступна локализация вообще, а не для случаев использования запасной локали. При использовании регулярного выражения можно отключать предупреждения которые будут соответствовать `key` (например, `$t`).
-
-#### pluralizationRules
-
-> 8.5+
-
- * **Тип:** `PluralizationRules`
-
- * **По умолчанию:** `{}`
-
- Набор правил для плюрализации в следующем формате:
- ```js
- {
- // Ключ - локаль для которой будет применяться правило.
- // Value - функция для получения индекса варианта плюрализации от текущего числа и заданного количества вариантов. (См. функцию getChoiceIndex)
- 'pt': function(choice, choiceIndex) => Number/* index of the plural word */;
- 'ru': function(choice, choiceIndex) => Number/* index of the plural word */;
- 'en': function(choice, choiceIndex) => Number/* index of the plural word */;
- 'jp': function(choice, choiceIndex) => Number/* index of the plural word */;
- }
- ```
-
-#### preserveDirectiveContent
-
-> Добавлено в версии 8.7+
-
-* **Тип:** `Boolean`
-
-* **По умолчанию:** `false`
-
-Определяет должен ли элемент директивы `v-t` сохранять `textContent` после того как директива будет снята с элемента.
-
-#### warnHtmlInMessage
-
-> Добавлено в версии 8.11+
-
-* **Тип:** `WarnHtmlInMessageLevel`
-
-* **По умолчанию:** `off`
-
-Разрешить ли использование HTML-форматирования в сообщениях локализации. См. также свойство `warnHtmlInMessage`.
-
-:::danger Внимание!
-Со следующей мажорной версии значение по умолчанию `warnHtmlInMessage` будет `warn`.
-:::
-
-#### sharedMessages
-
-> Добавлено в версии 8.12+
-
-* **Тип:** `LocaleMessages`
-
-* **По умолчанию:** `undefined`
-
-Общие сообщения локализации при локализации в компонентах. Подробнее в разделе [Локализация на основе компонентов](../guide/component.md#локаnизация-на-основе-компонентов).
-
-#### postTranslation
-
-> Добавлено в версии 8.16+
-
-* **Тип:** `PostTranslationHandler`
-
-* **По умолчанию:** `null`
-
-Пост-обработчик локализации. Выполняется после вызова `$t`, `t`, `$tc` и `tc`.
-
-Может пригодиться при необходимости дополнительно обработать итоговый текст перевода, например избавиться от висящих пробелов.
-
-#### componentInstanceCreatedListener
-
-> Добавлено в версии 8.18+
-
-* **Тип:** `ComponentInstanceCreatedListener`
-
-* **По умолчанию:** `null`
-
-Обработчик получения уведомления о создании локального экземпляра компонента. Вызывается с новым и старым (корневыми) экземплярами VueI18n.
-
-Обработчик может потребоваться при расширении корневого экземпляра VueI18n и необходимости ожидания для применения этих расширений к локальному экземпляру компонента.
-
-#### escapeParameterHtml
-
-> Добавлено в версии 8.22+
-
- * **Тип:** `Boolean`
-
- * **По умолчанию:** `false`
-
-Если `escapeParameterHtml` установлен в значение `true`, то параметры интерполяции будут экранированы перед переводом сообщения. Это полезно, когда результат перевода используется в `v-html` и текст для перевода содержит HTML-разметку (например, `` вокруг предоставленного пользователем значения). Этот шаблон в основном предназначен для случаев, когда передаются предварительно скомпилированные текстовые строки в компоненты UI.
-
-Процесс экранирования включает в себя замену следующих символов на соответствующие HTML-сущности: `<`, `>`, `"`, `'`.
-
-Установка `escapeParameterHtml` в значение `true` не должна нарушать существующую функциональность, а предоставит защиту от векторов атаки типа XSS.
-
-### Свойства
-
-#### locale
-
-* **Тип:** `Locale`
-
-* **Чтение/Запись**
-
-Локаль используемая для локализации. Если локаль содержит территорию и диалект, то эта локаль неявно указывает на запасные варианты.
-
-#### fallbackLocale
-
-* **Тип:** `FallbackLocale`
-
-* **Чтение/Запись**
-
-Локаль используемая для запасной локализации. Способы определения и переключения на запасную локализацию можно изучить в разделе [Запасная локализация](../guide/fallback.md).
-
-#### messages
-
-* **Тип:** `LocaleMessages`
-
-* **Только для чтения**
-
-Переведённые сообщения используемые для локализации.
-
-#### dateTimeFormats
-
-> :new: Добавлено в версии 7.0+
-
-* **Тип:** `DateTimeFormats`
-
-* **Только для чтения**
-
-Форматы форматирования дат для локализации.
-
-#### numberFormats
-
-> :new: Добавлено в версии 7.0+
-
-* **Тип:** `NumberFormats`
-
-* **Только для чтения**
-
-Форматы форматирования чисел для локализации.
-
-#### missing
-
-* **Тип:** `MissingHandler`
-
-* **Чтение/Запись**
-
-Обработчик для отсутствующих ключей локализаций.
-
-#### formatter
-
-* **Тип:** `Formatter`
-
-* **Чтение/Запись**
-
-Метод форматирования, который реализует интерфейс `Formatter`.
-
-#### silentTranslationWarn
-
-> 6.1+, :up: 8.13
-
-* **Тип:** `Boolean | RegExp`
-
-* **Чтение/Запись**
-
-Отключение предупреждений выводимых при ошибке локализации.
-
-#### silentFallbackWarn
-
-> :new: Добавлено в версии 8.8+, :up: 8.13
-
-* **Тип:** `Boolean | RegExp`
-
-* **Чтение/Запись**
-
-Отключение предупреждений выводимых при ошибке использования запасной локализации.
-
-#### pluralizationRules
-
-> 8.5+
-
-* **Тип:** `PluralizationRules`
-
-* **Чтение/Запись**
-
-Набор зависимых от локали правил плюрализации.
-
-#### preserveDirectiveContent
-
-> Добавлено в версии 8.7+
-
-* **Тип:** `Boolean`
-
-* **Чтение/Запись**
-
-Должен ли элемент директивы `v-t` сохранять `textContent` после того как директива снята с элемента.
-
-#### warnHtmlInMessage
-
-> Добавлено в версии 8.11+
-
-* **Тип:** `WarnHtmlInMessageLevel`
-
-* **Чтение/Запись**
-
-Разрешить ли использование HTML-форматирования в сообщениях локализации.
-
-
-При установке `warn` или `error` проверяются сообщения локализации экземпляра VueI18n.
-
-При установке `warn` выводятся предупреждения в консоль.
-
-При установке `error` генерируется Error.
-
-В качестве значения по умолчанию в экземпляре VueI18n установлено `off`.
-
-#### postTranslation
-
-> Добавлено в версии 8.16+
-
-* **Тип:** `PostTranslationHandler`
-
-* **Чтение/Запись**
-
-Обработчик для пост-обработки перевода.
-
-### Методы
-
-#### getChoiceIndex
-
-* **Аргументы:**
-
- * `{number} choice`
- * `{number} choicesLength`
-
-* **Возвращает:** `finalChoice {number}`
-
-Получение индекса для плюрализации текущего числа и заданного количества вариантов. Реализация может быть переопределена через изменение прототипа:
-
-```js
-VueI18n.prototype.getChoiceIndex = /* пользовательская реализация */
-```
-
-Однако в большинстве случаев достаточно передать нужную функцию в [pluralizationRules опцию конструктора](#pluralizationrules).
-
-#### getLocaleMessage( locale )
-
-* **Аргументы:**
-
- * `{Locale} locale`
-
-* **Возвращает:** `LocaleMessageObject`
-
-Получение сообщений локализации для локали.
-
-#### setLocaleMessage( locale, message )
-
-* **Аргументы:**
-
- * `{Locale} locale`
- * `{LocaleMessageObject} message`
-
-Установка сообщений локализации для локали.
-
-:::tip ПРИМЕЧАНИЕ
-
-> Добавлено в версии 8.11+
-
-При использовании `warn` или `error` в свойстве `warnHtmlInMessage`, при выполнении этого метода будет проверено используется ли HTML-форматирование для сообщения локализации.
-:::
-
-#### mergeLocaleMessage( locale, message )
-
-> 6.1+
-
-* **Аргументы:**
-
- * `{Locale} locale`
- * `{LocaleMessageObject} message`
-
-Объединение указанных сообщений локализации с сообщениями локализации локали.
-
-:::tip ПРИМЕЧАНИЕ
-
-> Добавлено в версии 8.11+
-
-При использовании `warn` или `error` в свойстве `warnHtmlInMessage`, при выполнении этого метода будет проверено используется ли HTML-форматирование для сообщения локализации.
-:::
-
-#### t( key, [locale], [values] )
-
-* **Аргументы:**
-
- * `{Path} key`: обязательный
- * `{Locale} locale`: опционально
- * `{Array | Object} values`: опционально
-
-* **Возвращает:** : `TranslateResult`
-
-Аналогично функции возвращаемой методом `$t`. Подробнее см. [$t](#t).
-
-#### tc( key, [choice], [values] )
-
-* **Аргументы:**
-
- * `{Path} key`: обязательный
- * `{number} choice`: опционально, по умолчанию `1`
- * `{string | Array | Object} values`: опционально
-
-* **Возвращает:** `TranslateResult`
-
-Аналогично функции возвращаемой методом `$tc`. Подробнее см. [$tc](#tc).
-
-#### te( key, [locale] )
-
-* **Аргументы:**
-
- * `{string} key`: обязательный
- * `{Locale} locale`: опционально
-
-* **Возвращает:** `boolean`
-
-Проверяет существует ли указанный ключ в глобальных сообщениях локализации. Если указать `locale`, проверка будет осуществляться в сообщениях локализации `locale`.
-
-#### getDateTimeFormat ( locale )
-
-> :new: Добавлено в версии 7.0+
-
-* **Аргументы:**
-
- * `{Locale} locale`
-
-* **Возвращает:** `DateTimeFormat`
-
-Получение форматов форматирования дат локализации.
-
-#### setDateTimeFormat ( locale, format )
-
-> :new: Добавлено в версии 7.0+
-
-* **Аргументы:**
-
- * `{Locale} locale`
- * `{DateTimeFormat} format`
-
-Установка форматов форматирования дат для локализации.
-
-#### mergeDateTimeFormat ( locale, format )
-
-> :new: Добавлено в версии 7.0+
-
-* **Аргументы:**
-
- * `{Locale} locale`
- * `{DateTimeFormat} format`
-
-Объединение указанных форматов форматирования дат с форматами локализации.
-
-#### d( value, [key], [locale] )
-
-> :new: Добавлено в версии 7.0+
-
-* **Аргументы:**
-
- * `{number | Date} value`: обязательный
- * `{Path | Object} key`: опционально
- * `{Locale | Object} locale`: опционально
-
-* **Возвращает:** `DateTimeFormatResult`
-
-Аналогично функции возвращаемой методом `$d`. Подробнее см. [$d](#d).
-
-#### getNumberFormat ( locale )
-
-> :new: Добавлено в версии 7.0+
-
-* **Аргументы:**
-
- * `{Locale} locale`
-
-* **Возвращает:** `NumberFormat`
-
-Получение форматов форматирования чисел для локализации.
-
-#### setNumberFormat ( locale, format )
-
-> :new: Добавлено в версии 7.0+
-
-* **Аргументы:**
-
- * `{Locale} locale`
- * `{NumberFormat} format`
-
-Установка форматов форматирования чисел для локализации.
-
-#### mergeNumberFormat ( locale, format )
-
-> :new: Добавлено в версии 7.0+
-
-* **Аргументы:**
-
- * `{Locale} locale`
- * `{NumberFormat} format`
-
-Объединение указанных форматов форматирования чисел с форматами локализации.
-
-#### n( value, [format], [locale] )
-
-> :new: Добавлено в версии 7.0+
-
-* **Аргументы:**
-
- * `{number} value`: обязательный
- * `{Path | Object} format`: опционально
- * `{Locale} locale`: опционально
-
-* **Возвращает:** `NumberFormatResult`
-
-Аналогично функции возвращаемой методом `$n`. Подробнее см. [$n](#n).
-
-## Директивы
-
-> :new: Добавлено в версии 7.3+
-
-### v-t
-
-* **Ожидает:** `string | Object`
-
-* **Модификаторы:**
-
- * `.preserve`: (8.7.0+) сохраняет `textContent` элемента при снятии директивы с элемента.
-
-* **Подробности:**
-
-Обновление `textContent` элемента, который был переведён с помощью сообщений локализации. Можно использовать строковый или объектный синтаксис. Строковый синтаксис может быть задан в качестве пути к сообщению локализации. При использовании объектного синтаксиса необходимо указать следующие свойства:
-
- * `path`: обязательный, ключ сообщения локализации
- * `locale`: опционально, локализация
- * `args`: опционально, для списка или именованного форматирования
-
-:::tip ПРИМЕЧАНИЕ
-По умолчанию значение `textContent` элемента удаляется при снятии директивы `v-t`. Это может быть нежелательной ситуацией например при [анимировании списков](https://ru.vuejs.org/v2/guide/transitions.html). Для сохранения данных `textContent` после снятия директивы следует использовать модификатор `.preserve` или глобальную опцию [`preserveDirectiveContent`](#preservedirectivecontent).
-:::
-
-* **Примеры:**
-
-```html
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-* **См. также:** [Пользовательская директива для локализации](../guide/directive.md)
-
-## Компоненты
-
-### Функциональный компонент i18n
-
-> :new: Добавлено в версии 7.0+
-
-#### Входные параметры:
-
-* `path {Path}`: обязательный, путь к сообщению локализации
-* `locale {Locale}`: опционально, локализация
-* `tag {string | boolean | Object}`: опционально, по умолчанию `'span'`
-* `places {Array | Object}`: опционально (7.2+)
-
-:::danger Внимание!
-Со следующей мажорной версии опция `places` будет удалена. Используйте синтаксис слотов.
-:::
-
-#### Использование:
-
-```html
-
-```
-
-```js
-var numberFormats = {
- 'en-US': {
- currency: {
- style: 'currency',
- currency: 'USD'
- }
- },
- 'ru-RU': {
- currency: {
- style: 'currency',
- currency: 'RUB'
- }
- }
-}
-
-const i18n = new VueI18n({
- locale: 'en-US',
- numberFormats
-})
-
-new Vue({
- i18n,
- data: {
- money: 10234
- }
-}).$mount('#app')
-```
-
-#### Слоты с ограниченной областью видимости
-
-Функциональный компонент `` может принимать различные слоты с ограниченной областью видимости. Список поддерживаемых имён слотов основан на [выходных типах `Intl.NumberFormat.formatToParts()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/formatToParts):
-
-* `currency`
-* `decimal`
-* `fraction`
-* `group`
-* `infinity`
-* `integer`
-* `literal`
-* `minusSign`
-* `nan`
-* `plusSign`
-* `percentSign`
-
-Каждый из слотов предоставляет доступ к значениям трёх параметров:
-
-* `[slotName] {FormattedNumberPartType}`: параметр с тем же именем, что и имя слота (например, `integer`)
-* `index {Number}`: индекс конкретной части в массиве частей числа
-* `parts {Array}`: массив со всеми отформатированными частями числа
-
-#### См. также:
-
-[Локализация чисел](../guide/number.md#custom-formatting)
-
-## Специальные атрибуты
-
-### place
-
-> :new: Добавлено в версии 7.2+
-
-#### Ожидает: `{number | string}`
-
-Используется при интерполяции компонента для указания индекса при форматировании списком или ключа при именованном форматировании.
-
-Подробнее об использовании в разделе по ссылке ниже.
-
-#### См. также:
-
-[Интерполяция компонента](../guide/interpolation.md)
diff --git a/docs-old/ru/guide/component.md b/docs-old/ru/guide/component.md
deleted file mode 100644
index 52057d8eb..000000000
--- a/docs-old/ru/guide/component.md
+++ /dev/null
@@ -1,152 +0,0 @@
-# Локализация на основе компонентов
-
-В основном данные для локализации (например, `locale`,`messages`, и т.д.) задаются опциями конструктора экземпляра `VueI18n` и устанавливаются через свойство `i18n` в корневой экземпляр Vue.
-
-Поэтому можно глобально выполнять переводы, используя методы `$t` или `$tc` в корневом экземпляре Vue и любом из компонентов в нём. Но также возможно указывать данные для локализации в каждом компоненте в отдельности, что может быть удобнее благодаря компонентно-ориентированному дизайну.
-
-Пример локализации на основе компонентов:
-
-```js
-// Установка локализации в корневой экземпляр Vue
-const i18n = new VueI18n({
- locale: 'ru',
- messages: {
- en: {
- message: {
- hello: 'hello world',
- greeting: 'good morning'
- }
- },
- ru: {
- message: {
- hello: 'привет мир',
- greeting: 'доброе утро'
- }
- }
- }
-})
-
-// Определение компонента
-const Component1 = {
- template: `
-
-```
-
-Если компонент не имеет собственного сообщения для локализации, то в качестве запасного выхода он обратится к глобальным данным для локализации. Компонент использует локаль, установленную в корневом экземпляре (в примере выше установлена: `locale: 'ru'`).
-
-Обратите внимание, по умолчанию при обращении к данным корневой локализации будут генерироваться предупреждения в консоли:
-
-```
-[vue-i18n] Value of key 'message.greeting' is not a string!
-[vue-i18n] Fall back to translate the keypath 'message.greeting' with root locale.
-```
-
-Чтобы скрыть эти предупреждения (оставив те, что предупреждают о полном отсутствии перевода для данного ключа) установите опцию `silentFallbackWarn: true` при инициализации экземпляра `VueI18n`.
-
-Если необходимо осуществлять перевод, основываясь на локали компонента, то это можно сделать с помощью опции `sync: false` и `locale` в настройках `i18n`.
-
-## Общие сообщения локализации для компонентов
-
-Иногда может потребоваться импортировать сообщения локализации в определённых компонентах, чтобы не обращаться к глобальным сообщениям локализации (например, общие сообщения для определённых функций компонентов).
-
-Для этого можно использовать опцию `sharedMessages` в свойстве `i18n` компонента.
-
-Пример использования общих сообщений локализации:
-
-```js
-export default {
- en: {
- buttons: {
- save: 'Save'
- // ...
- }
- },
- ru: {
- buttons: {
- save: 'Сохранить'
- // ...
- }
- }
-}
-```
-
-Компонент:
-
-```js
-import commonMessage from './locales/common' // импорт общих сообщений локализации
-
-export default {
- name: 'ServiceModal',
- template: `
-
-
-
Это хороший сервис
-
-
-
- `,
- i18n: {
- messages: { ... },
- sharedMessages: commonMessages
- }
-}
-```
-
-Если указаны опции `sharedMessages` и `messages`, то их сообщения будут объединены в сообщения локализации в экземпляре VueI18n этого компонента.
-
-## Локализация в функциональных компонентах
-
-При использовании функционального компонента все данные (включая `props`, `children`, `slots`, `parent`, и т.д.) передаются через `context`, в котором содержатся все эти атрибуты. Кроме того отсутствует возможность использовать `this`, поэтому при использовании vue-i18n с функциональными компонентами следует обращаться к `$t` как к `parent.$t`, например так:
-
-```html
-...
-
-```
-
-## Использование с transition
-
-:::tip Поддержка с версии
-:new: 8.7+
-:::
-
-При использовании директивы `v-t` на элементе внутри [компонента ``](https://ru.vuejs.org/v2/api/#transition), можно заметить как переведённое сообщение исчезает во время анимации перехода. Это поведение связано с реализацией самого компонента `` — все директивы в исчезающем элементе внутри компонента `` должны быть уничтожены **до начала анимации**. Это может привести к мерцанию содержимого на коротких анимациях, но наиболее заметно при длинных анимациях переходов.
-
-Чтобы сохранить содержимое директивы во время анимации перехода, необходимо добавить [модификатор `.preserve`](../api/#v-t) при определении директивы `v-t`.
-
-Javascript:
-
-```js
-new Vue({
- i18n: new VueI18n({
- locale: 'en',
- messages: {
- en: { preserve: 'with preserve' }
- }
- }),
- data: { toggle: true }
-}).$mount('#in-transitions')
-```
-
-Шаблон:
-
-```html
-
-
-
-
-
-
-```
-
-Также можно глобально установить настройку `preserveDirectiveContent` в экземпляре `VueI18n`, что повлияет на все директивы `v-t` без добавления модификатора к ним.
-
-JavaScript:
-
-```js
-new Vue({
- i18n: new VueI18n({
- locale: 'en',
- messages: {
- en: { preserve: 'with preserve' }
- },
- preserveDirectiveContent: true
- }),
- data: { toggle: true }
-}).$mount('#in-transitions')
-```
-
-Шаблон:
-
-```html
-
-
-
-
-
-
-```
-
-Подробнее о примерах выше можно изучить [здесь](https://github.com/kazupon/vue-i18n/tree/dev/examples/directive)
-
-## `$t` или `v-t`
-
-### `$t`
-
-`$t` — это метод, добавленный в экземпляр Vue. У него следующие плюсы и минусы:
-
-#### Плюсы
-
-Предоставляет **гибкость** в использовании синтаксиса фигурных скобок `{{}}` в шаблонах, а также применять в вычисляемых свойствах и методах экземпляра Vue.
-
-#### Минусы
-
-`$t` выполняется **каждый раз** когда происходит перерисовка, поэтому у него есть расходы на осуществление перевода.
-
-### `v-t`
-
-`v-t` — пользовательская директива. У неё следующие плюсы и минусы:
-
-#### Плюсы
-
-`v-t` имеет **лучшую производительность** в сравнении с методом `$t`, благодаря кэшу в пользовательской директиве после выполнения перевода. Также можно реализовать предварительный перевод с помощью модуля для компилятора Vue, который предоставляет плагин [`vue-i18n-extensions`](https://github.com/kazupon/vue-i18n-extensions).
-
-Таким образом, можно достичь **большей оптимизации производительности**.
-
-#### Минусы
-
-`v-t` нельзя использовать также гибко, как `$t`, и это добавляет **сложности**. Перевод с помощью `v-t` вставляется в `textContent` элемента. Также, при использовании рендеринга на стороне сервера необходимо установить [пользовательскую директиву](https://github.com/kazupon/vue-i18n-extensions#directive-v-t-custom-directive-for-server-side) через опцию `directives` функции `createRenderer`.
diff --git a/docs-old/ru/guide/fallback.md b/docs-old/ru/guide/fallback.md
deleted file mode 100644
index b1b3fef59..000000000
--- a/docs-old/ru/guide/fallback.md
+++ /dev/null
@@ -1,145 +0,0 @@
-# Запасная локализация
-
-*Вкратце: указывайте `fallbackLocale: ''` для определения языка, который будет использоваться, если нет перевода в выбранной локализации.*
-
-## Неявное определение запасных локализаций при использовании локалей
-
-Если `locale` содержит территорию и опционально диалект, то неявно будут определены автоматически запасные локали.
-
-Например для `de-DE-bavarian` в качестве запасных будут считаться следующие:
-1. `de-DE-bavarian`
-2. `de-DE`
-3. `de`
-
-Для отключения автоматического определения запасных локалей укажите символ `!`, например `de-DE!`
-
-## Явное определение одной локали запасной локализации
-
-Иногда не все ключи сообщений переведены на другие языки. В примере ниже, сообщение для ключа `hello` доступно в английской локали, но отсутствует в русской:
-
-```js
-const messages = {
- en: {
- hello: 'Hello, world!'
- },
- ru: {
- // упс, не все переведено
- }
-}
-```
-
-Если хочется использовать сообщения локализации из `en`, когда перевод отсутствует в нужной локализации, то следует указать опцию `fallbackLocale` в конструкторе VueI18n:
-
-```js
-const i18n = new VueI18n({
- locale: 'ru',
- fallbackLocale: 'en',
- messages
-})
-```
-
-Шаблон:
-
-```html
-
{{ $t('hello') }}
-```
-
-Результат:
-
-```html
-
Hello, world!
-```
-
-По умолчанию, если использовались сообщения запасной локализации из `fallbackLocale`, то в консоли будут выведены соответствующие предупреждения:
-
-```
-[vue-i18n] Value of key 'hello' is not a string!
-[vue-i18n] Fall back to translate the keypath 'hello' with 'en' locale.
-```
-
-Чтобы скрыть такие предупреждения (оставив при этом те, в случаях полного отсутствия переводов для данного ключа) установите `silentFallbackWarn: true` при инициализации экземпляра `VueI18n`.
-
-## Явное определение запасной локали с помощью массива
-
-Можно указать более одной запасной локализации с помощью массива. Например:
-
-```js
-fallbackLocale: ['ru', 'en'],
-```
-
-## Явное определение запасной локали с помощью объекта
-
-Более сложный алгоритм принятия решений для определения запасной локали можно реализовать с помощью карты принятия решений в виде объекта.
-
-Например для подобного объекта:
-
-```js
-fallbackLocale: {
- /* 1 */ 'de-CH': ['fr', 'it'],
- /* 2 */ 'zh-Hant': ['zh-Hans'],
- /* 3 */ 'es-CL': ['es-AR'],
- /* 4 */ 'es': ['en-GB'],
- /* 5 */ 'pt': ['es-AR'],
- /* 6 */ 'default': ['en', 'ru']
-},
-```
-
-Будут следующие цепочки выбора запасной локали:
-
-| Локаль | Цепочка выбора |
-| ----------- | ----------------------------------------- |
-| `'de-CH'` | de-CH > fr > it > en > ru |
-| `'de'` | de > en > ru |
-| `'zh-Hant'` | zh-Hant > zh-Hans > zh > en > ru |
-| `'es-SP'` | es-SP > es > en-GB > en > ru |
-| `'es-SP!'` | es-SP > en > ru |
-| `'fr'` | fr > en > ru |
-| `'pt-BR'` | pt-BR > pt > es-AR > es > en-GB > en > ru |
-| `'es-CL'` | es-CL > es-AR > es > en-GB > en > ru |
-
-## Резервная интерполяция
-
-_Вкратце: установите `formatFallbackMessages: true` чтобы выполнять интерполяции шаблона по ключам перевода, когда в выбранном языке отсутствует данный ключ для перевода._
-
-Так как ключи переводов являются строками, то можно использовать само сообщение в качестве ключа (для определённого языка). Например:
-
-```js
-const messages = {
- ru: {
- 'Hello, world!': 'Привет мир!'
- }
-}
-```
-
-Это может быть полезным, потому что не нужно будет указывать перевод для строки "Hello, world!" в английской локализации.
-
-Фактически, можно указывать даже параметры в ключе. Вместе с `formatFallbackMessages: true` это позволит опустить создание шаблонов для «базового» языка; потому что его ключи _уже находятся_ в шаблоне.
-
-```js
-const messages = {
- ru: {
- 'Hello {name}': 'Здравствуйте {name}'
- }
-}
-
-const i18n = new VueI18n({
- locale: 'ru',
- fallbackLocale: 'en',
- formatFallbackMessages: true,
- messages
-})
-```
-
-Шаблон:
-
-```html
-
-```
-
-Форматирование списков также принимает объекты, соответствующие по структуре массиву:
-
-```html
-
{{ $t('message.hello', {'0': 'привееет'}) }}
-```
-
-Результат:
-
-```html
-
привееет мир
-```
-
-## HTML формат
-
-:::warning Обратите внимание
-:warning: Динамическая локализация произвольного HTML на вебсайте очень опасна, потому что легко может привести к XSS-уязвимостям. Используйте HTML-интерполяцию только для доверенного контента и никогда для пользовательского.
-
-Рекомендуем в таких случаях использовать возможности [интерполяции компонента](interpolation.md).
-:::
-
-:::warning Обратите внимание
-
-> :new: Добавлено в версии 8.11+
-
-Можно управлять использованием HTML форматирования. Для подробностей см. опцию конструктора `warnHtmlInMessage` и свойства API.
-:::
-
-Иногда требуется отобразить сообщение локализации HTML-кодом, а не статической строкой.
-
-```js
-const messages = {
- en: {
- message: {
- hello: 'hello world'
- }
- },
- ru: {
- message: {
- hello: 'привет мир'
- }
- }
-}
-```
-
-Шаблон:
-
-```html
-
-```
-
-Результат (вместо отформатированного сообщения)
-
-```html
-
-```
-
-Для такого сообщения, если хотим использовать `$t`, то, вероятно, попробуем достичь скомпоновав из следующих сообщений локализации:
-
-```js
-const messages = {
- en: {
- term1: "I Accept xxx's",
- term2: 'Terms of Service Agreement'
- }
-}
-```
-
-И в итоге шаблон станет выглядеть так:
-
-```html
-
-```
-
-Подробнее о примере можно изучить [здесь](https://github.com/kazupon/vue-i18n/tree/dev/examples/interpolation/places)
-
-Потомки функционального компонента `i18n` интерполируют сообщения локализации по входному параметру `path`.
-
-В примере выше:
-:::v-pre
-`{{ $t('tos') }}`
-:::
-интерполируется с сообщением локализации `term`.
-
-В примере выше интерполяция компонента использует **формат в виде списка**. Потомки функционального компонента `i18n` интерполируются по порядку их появления.
-
-Определить тип корневого элемента можно указать с помощью входного параметра `tag`. Если входной параметр не указан, то по умолчанию будет `'span'`. Также можно указать значение `false`, чтобы вставлять дочерние элементы без создания и оборачивания в корневой.
-
-## Использование синтаксиса слотов
-
-:::tip Поддержка с версии
-:new: 8.14+
-:::
-
-Гораздо удобнее использовать синтаксис именованных слотов. Например:
-
-```html
-
-```
-
-:::warning Ограничение
-:warning: В компоненте `i18n` входные параметры слота не поддерживаются.
-:::
-
-## Использование синтаксиса places
-
-:::danger Внимание!
-В следующей мажорной версии входные параметры `place` и `places` будут объявлены устаревшими. Рекомендуем использовать синтаксис слотов.
-:::
-
-:::tip Поддержка с версии
-:new: 7.2+
-:::
-
-:::warning Обратите внимание
-:warning: В компоненте `i18n` содержимое, состоящее только из пробелов, будет опущено.
-:::
-
-Именованное форматирование поддерживается с помощью атрибута `place`. Например:
-
-```html
-
-```
-
-:::warning Обратите внимание
-:warning: Для использования именованного форматирования все потомки компонента `i18n` должны иметь установленный атрибут `place`. В противном случае будет использовано форматирование списком.
-:::
-
-Если всё же необходимо интерполировать текстовое содержимое с помощью именованного форматирования, можно определить свойство `places` на компоненте `i18n`. Например:
-
-```html
-
-```
diff --git a/docs-old/ru/guide/lazy-loading.md b/docs-old/ru/guide/lazy-loading.md
deleted file mode 100644
index d63ff0332..000000000
--- a/docs-old/ru/guide/lazy-loading.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# Ленивая загрузка переводов
-
-Одновременная загрузка всех файлов переводов может быть излишней и ненужной.
-
-Ленивая или асинхронная загрузка файлов переводов очень просто реализуется при использовании Webpack.
-
-Предположим, что у нас есть каталог проекта следующей структуры:
-
-```
-наш-проект-отлично
--dist
--src
---routes
---store
---setup
----i18n-setup.js
---lang
----en.js
----it.js
-```
-
-В каталоге `lang` располагаются все файлы переводов. В каталоге `setup` сгруппированы различные файлы настроек, например настройки i18n, регистрация глобальных компонентов, инициализации плагинов и другое.
-
-```js
-// i18n-setup.js
-import Vue from 'vue'
-import VueI18n from 'vue-i18n'
-import messages from '@/lang/en'
-import axios from 'axios'
-
-Vue.use(VueI18n)
-
-export const i18n = new VueI18n({
- locale: 'en', // установка локализации
- fallbackLocale: 'en',
- messages // установка сообщений локализации
-})
-
-const loadedLanguages = ['en'] // список локализаций, которые пред-загружены
-
-function setI18nLanguage(lang) {
- i18n.locale = lang
- axios.defaults.headers.common['Accept-Language'] = lang
- document.querySelector('html').setAttribute('lang', lang)
- return lang
-}
-
-export function loadLanguageAsync(lang) {
- // Если локализация та же
- if (i18n.locale === lang) {
- return Promise.resolve(setI18nLanguage(lang))
- }
-
- // Если локализация уже была загружена
- if (loadedLanguages.includes(lang)) {
- return Promise.resolve(setI18nLanguage(lang))
- }
-
- // Если локализация ещё не была загружена
- return import(
- /* webpackChunkName: "lang-[request]" */ `@/i18n/messages/${lang}.js`
- ).then(messages => {
- i18n.setLocaleMessage(lang, messages.default)
- loadedLanguages.push(lang)
- return setI18nLanguage(lang)
- })
-}
-```
-
-Для начала создаём новый экземпляр VueI18n как обычно. Затем определяем массив `loadedLanguages` в котором будем хранить список загруженных языков. Далее создаём функцию `setI18nLanguage`, которая будет переключать локализацию в экземпляре vueI18n, axios и где ещё это необходимо.
-
-Функция `loadLanguageAsync` будет использоваться для изменения языка. Загрузка новых файлов осуществляется функцией `import`, которую предоставляет Webpack и позволяет загружать файлы динамически, а поскольку она возвращает Promise, то можем легко дождаться окончания загрузки.
-
-Подробнее о динамических импортах можно изучить в [документации Webpack](https://webpack.js.org/guides/code-splitting/#dynamic-imports).
-
-Использовать `loadLanguageAsync` очень просто. Например, в хуке beforeEach vue-router.
-
-```js
-router.beforeEach((to, from, next) => {
- const lang = to.params.lang
- loadLanguageAsync(lang).then(() => next())
-})
-```
-
-Можно доработать реализацию, например добавив проверку поддерживается ли переданный `lang` или нет и вызывать `reject` чтобы отловить подобные случаи в хуке `beforeEach` и остановить навигацию.
diff --git a/docs-old/ru/guide/locale.md b/docs-old/ru/guide/locale.md
deleted file mode 100644
index 53aba5259..000000000
--- a/docs-old/ru/guide/locale.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# Переключение локализации
-
-Обычно используют корневой экземпляр Vue в качестве точки истины, а все дочерние компоненты используют свойство `locale` от класса `VueI18n` передаваемого по ссылке.
-
-Иногда может потребоваться динамически переключать локализацию. Для этого нужно изменить значение свойства `locale` экземпляра `VueI18n`.
-
-```js
-const i18n = new VueI18n({
- locale: 'ru', // устанавливаем локализацию по умолчанию
- ...
-})
-
-// Создаём корневой экземпляр Vue
-new Vue({
- i18n,
- ...
-}).$mount('#app')
-
-// Переключаем на другую локализацию
-i18n.locale = 'en'
-```
-
-Каждый компонент содержит экземпляр `VueI18n`, ссылающийся на свойство `$i18n`, которое также можно использовать для переключения локализации.
-
-Пример:
-
-```vue
-
-
-
-
-
-
-
-```
-
-:::warning Обратите внимание
-:warning: Изменение локализации игнорируется компонентами с опцией `sync: false`.
-:::
-
-:::warning Компонент vs. корневая область видимости
-:warning: Изменение `$i18n.locale` внутри компонента не приводит к изменению корневой локализации. Если вы полагаетесь на корневую локализацию, например, при использовании [корневой запасной локализации](./fallback.html), используйте `$root.$i18n.locale` вместо `$i18n.locale`.
-:::
diff --git a/docs-old/ru/guide/messages.md b/docs-old/ru/guide/messages.md
deleted file mode 100644
index 2c307b8c0..000000000
--- a/docs-old/ru/guide/messages.md
+++ /dev/null
@@ -1,318 +0,0 @@
-# Синтаксис сообщений локализации
-
-## Структура
-
-Синтаксис сообщений локализации:
-
-```typescript
-// Как определение Flowtype, синтаксис сообщений перевода аналогичен аннотации BNF
-type LocaleMessages = { [key: Locale]: LocaleMessageObject }
-type LocaleMessageObject = { [key: Path]: LocaleMessage }
-type LocaleMessageArray = LocaleMessage[]
-type MessageContext = {
- list: (index: number) => mixed,
- named: (key: string) => mixed
-};
-type MessageFunction = (ctx: MessageContext) => string;
-type LocaleMessage = string | MessageFunction | LocaleMessageObject | LocaleMessageArray;
-type Locale = string
-type Path = string
-```
-
-Используя синтаксис выше, можно создать следующую структуру сообщений локализации:
-
-```json
-{
- // локализация 'ru'
- "ru": {
- "key1": "это сообщение 1", // обычное использование
- "nested": {
- // вложенное
- "message1": "это вложенное сообщение 1"
- },
- "errors": [
- // массив
- "это сообщение кода ошибки 0",
- {
- // объект в массиве
- "internal1": "это внутреннее сообщение кода ошибки 1"
- },
- [
- // массив в массиве
- "это вложенный массив ошибки 1"
- ]
- ]
- },
- // локализация 'en'
- "en": {
- // ...
- }
-}
-```
-
-Для такой структуры сообщений локализации, можно переводить сообщения используя ключи:
-
-```html
-
-
-
{{ $t('key1') }}
-
-
{{ $t('nested.message1') }}
-
-
{{ $t('errors[0]') }}
-
-
{{ $t('errors[1].internal1') }}
-
-
{{ $t('errors[2][0]') }}
-
-```
-
-Результат:
-
-```html
-
-
-
это сообщение 1
-
-
это вложенное сообщение 1
-
-
это сообщение кода ошибки 0
-
-
это внутреннее сообщение кода ошибки 1
-
-
это вложенный массив ошибки 1
-
-```
-
-## Связанные сообщения локализации
-
-Когда есть ключ с сообщением перевода, которое в точности повторяется в сообщении по другому ключу, то вместо дублирования можно поставить ссылку на него. Для этого к его содержимому нужно добавить префикс `@:` после которого указать полное имя ключа к сообщению перевода, включая пространство имён, к которому делаем ссылку.
-
-Сообщения локализации:
-
-```js
-const messages = {
- en: {
- message: {
- the_world: 'the world',
- dio: 'DIO:',
- linked: '@:message.dio @:message.the_world !!!!'
- }
- }
-}
-```
-
-Шаблон:
-
-```html
-
{{ $t('message.linked') }}
-```
-
-Результат:
-
-```html
-
DIO: the world !!!!
-```
-
-### Форматирование связанных сообщений локализации
-
-Если важен регистр символов в переводе, то можно управлять регистром связанного сообщения локализации. Связанные сообщения можно отформатировать используя модификатор `@.modifier:key`
-
-Доступны следующие модификаторы:
-
-* `upper`: Форматирование в верхний регистр всех символов в связанном сообщении.
-* `lower`: Форматирование в нижний регистр всех символов в связанном сообщении.
-* `capitalize`: Форматирование заглавной первой буквы в связанном сообщении.
-
-Сообщения локализации:
-
-```js
-const messages = {
- en: {
- message: {
- homeAddress: 'Home address',
- missingHomeAddress: 'Please provide @.lower:message.homeAddress'
- }
- },
- ru: {
- message: {
- homeAddress: 'Домашний адрес',
- missingHomeAddress: 'Пожалуйста укажите @.lower:message.homeAddress'
- }
- }
-}
-```
-
-```html
-
-
-
{{ $t('message.missingHomeAddress') }}
-```
-
-Результат:
-
-```html
-
-
-
Пожалуйста укажите домашний адрес
-```
-
-При необходимости можно добавлять новые модификаторы или перезаписывать существующие через опцию `modifiers` в конструкторе `VueI18n`.
-
-```js
-const i18n = new VueI18n({
- locale: 'ru',
- modifiers: {
- // Добавление нового модификатора
- snakeCase: str => str.split(' ').join('-')
- },
- messages: {
- // ...
- },
-})
-```
-
-### Группировка с помощью скобок
-
-Ключ связанного сообщения также можно указывать в виде `@:(message.foo.bar.baz)`, где ссылка на другой ключ перевода обрамляется в скобки `()`.
-
-Подобное может потребоваться, если за ссылкой на другое сообщение `@:message.something` требуется поставить точку `.`, которая в противном случае считалась бы частью ссылки.
-
-Сообщения локализации:
-
-```js
-const messages = {
- en: {
- message: {
- dio: 'DIO',
- linked: "There's a reason, you lost, @:(message.dio)."
- }
- },
- ru: {
- message: {
- dio: 'DIO',
- linked: "Есть причина по которой ты проиграл, @:(message.dio)."
- }
- }
-}
-```
-
-Шаблон:
-
-```html
-
{{ $t('message.linked') }}
-```
-
-Результат:
-
-```html
-
There's a reason, you lost, DIO.
-```
-
-## Функция для сообщения
-
-vue-i18n рекомендует использовать строки для формата списком или именованного формата в качестве сообщения локализации при переводе сообщений.
-
-Однако бывают ситуации, когда из-за сложного синтаксиса языка, необходима полная мощь возможностей JavaScript. В таком случае, вместо строковых сообщений можно использовать **функцию для сообщения**.
-
-Функция ниже просто возвращает приветствие:
-
-```js
-const messages = {
- en: {
- greeting: (ctx) => 'hello!'
- },
- ru: {
- greeting: (ctx) => 'привет!'
- }
-}
-```
-
-Использовать функцию для сообщения очень просто! Необходимо просто указать ключ с помощью `$t` или `t`:
-
-```html
-
{{ $t('greeting') }}
-```
-
-Результат будет таким:
-
-```html
-
привет!
-```
-
-Используется возвращаемый результат из функции для сообщения.
-
-### Именованный формат
-
-vue-i18n поддерживает [именованный формат](./formatting.md#именованный-формат) для строковых сообщений. vue-i18n интерполирует значения с помощью `$t` или `t` и выводит их.
-
-Тоже самое можно сделать и с функцией для сообщения, используя **контекст сообщения**:
-
-Пример приветствия:
-
-```js
-const messages = {
- en: {
- greeting: (ctx) => `hello, ${ctx.named('name')}!`
- },
- ru: {
- greeting: (ctx) => `привет, ${ctx.named('name')}!`
- }
-}
-```
-
-Шаблон:
-
-```html
-
{{ $t('greeting', { name: 'DIO' }) }}
-```
-
-Результат:
-
-```html
-
привет, DIO!
-```
-
-Контекст сообщения предоставляет доступ к функции `named`. Необходимо указать ключ, указываемым для `$t` или `t`, который разрешится требуемым значением.
-
-### Формат списков
-
-Использование формата списков аналогично именованному формату, описанному выше.
-
-vue-i18n поддерживает [формат списков](./formatting.md#формат-списков) для строковых сообщений. vue-i18n интерполирует значения с помощью `$t` или `t` и выводит их.
-
-Тоже самое можно сделать и с функцией для сообщения, используя **контекст сообщения**:
-
-Пример приветствия:
-
-```js
-const messages = {
- en: {
- greeting: (ctx) => `hello, ${ctx.list(0)}!`
- },
- ru: {
- greeting: (ctx) => `привет, ${ctx.list(0)}!`
- }
-}
-```
-
-Шаблон:
-
-```html
-
{{ $t('greeting', ['DIO']) }}
-```
-
-Результат:
-
-```html
-
привет, DIO!
-```
-
-Контекст сообщения предоставляет доступ к функции `list`. Необходимо указать ключ, указываемым для `$t` или `t`, который разрешится требуемым значением.
-
-### Ограничение
-
-В функции для сообщения следующие возможности, которые доступны в строковом варианте, не будут доступны через контекст сообщения:
-
-- Связанные сообщения локализации
-- Плюрализация
diff --git a/docs-old/ru/guide/number.md b/docs-old/ru/guide/number.md
deleted file mode 100644
index b9bb04f1d..000000000
--- a/docs-old/ru/guide/number.md
+++ /dev/null
@@ -1,142 +0,0 @@
-# Локализация чисел
-
-:::tip Поддержка с версии
-:new: 7.0+
-:::
-
-Можно выполнять локализацию чисел по соответствующему формату.
-
-Пример формата для чисел:
-
-```js
-const numberFormats = {
- 'en-US': {
- currency: {
- style: 'currency',
- currency: 'USD'
- }
- },
- 'ru-RU': {
- currency: {
- style: 'currency',
- currency: 'RUB',
- currencyDisplay: 'symbol'
- }
- }
-}
-```
-
-Как указано выше, можно задать числовые форматы (например, `currency` для валюты) используя [опции ECMA-402 Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat).
-
-После этого, для возможности использования данного формата в сообщениях локализации, необходимо задать опцию `numberFormats` конструктора `VueI18n`:
-
-```js
-const i18n = new VueI18n({
- numberFormats
-})
-
-new Vue({
- i18n
-}).$mount('#app')
-```
-
-Шаблон:
-
-```html
-
-
{{ $n(100, 'currency') }}
-
{{ $n(100, 'currency', 'ru-RU') }}
-
-```
-
-Результат:
-
-```html
-
-
$100.00
-
100,00 ₽
-
-```
-
-## Пользовательское форматирование
-
-:::tip Поддержка с версии
-:new: 8.10+
-:::
-
-Метод `$n` возвращает результат в виде строки с полностью отформатированным числом, которую можно использовать лишь целиком. В случаях, когда нужно стилизовать некоторую часть отформатированного числа (например, дробную часть), `$n` будет недостаточно. В таких случаях необходимо использовать функциональный компонент ``.
-
-При минимальном наборе свойств `` генерирует тот же результат, что и `$n` обернутый в сконфигурированный DOM-элемент.
-
-Шаблон:
-
-```html
-
-
-
-
-
-```
-
-Результат:
-
-```html
-
- 100
- $100.00
- 100,00 ₽
-
-```
-
-Но по-настоящему оценить удобство компонента можно лишь тогда, когда он применяется с использованием [слотов с ограниченной областью видимости](https://ru.vuejs.org/v2/guide/components-slots.html#%D0%A1%D0%BB%D0%BE%D1%82%D1%8B-%D1%81-%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C%D1%8E-%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8).
-
-Допустим, есть требование выводить целую часть числа полужирным шрифтом. Реализовать это можно с помощью слота `integer`:
-
-```html
-
-
- {{ slotProps.integer }}
-
-
-```
-
-Результат:
-
-```html
-$100.00
-```
-
-Можно использовать несколько слотов одновременно:
-
-```html
-
-
- {{ slotProps.currency }}
-
-
- {{ slotProps.integer }}
-
-
- {{ slotProps.group }}
-
-
- {{ slotProps.fraction }}
-
-
-```
-
-(Полученный HTML ниже отформатирован для лучшей читаемости)
-
-```html
-
- €
- 1
- ,
- 234
- 00
-
-```
-
-Определить тип корневого элемента можно указать с помощью входного параметра `tag`. Если входной параметр не указан, то по умолчанию будет `'span'`. Также можно указать значение `false`, чтобы вставлять дочерние элементы без создания и оборачивания в корневой.
-
-Полный список поддерживаемых слотов, а также другие свойства `` можно найти [на странице справочника API](../api/readme.md#i18n-n-functional-component).
diff --git a/docs-old/ru/guide/pluralization.md b/docs-old/ru/guide/pluralization.md
deleted file mode 100644
index cc1920c98..000000000
--- a/docs-old/ru/guide/pluralization.md
+++ /dev/null
@@ -1,174 +0,0 @@
-# Плюрализация
-
-Для переводимых сообщений есть возможность использовать плюрализацию. Для этого необходимо указывать строки переводов для различных случаев через разделитель `|`.
-
-*В шаблоне в таких случаях необходимо использовать метод `$tc()` вместо `$t()`.*
-
-Сообщения локализации:
-
-```js
-const messages = {
- en: {
- car: 'car | cars',
- apple: 'no apples | one apple | {count} apples'
- },
- ru: {
- car: 'машина | машины',
- apple: 'нет яблок | одно яблоко | {count} яблок'
- }
-}
-```
-
-Шаблон:
-
-```html
-
{{ $tc('car', 1) }}
-
{{ $tc('car', 2) }}
-
-
{{ $tc('apple', 0) }}
-
{{ $tc('apple', 1) }}
-
{{ $tc('apple', 10, { count: 10 }) }}
-```
-
-Результат:
-
-```html
-
машина
-
машины
-
-
нет яблок
-
одно яблоко
-
10 яблок
-```
-
-## Аргумент для доступа к числу
-
-Нет необходимости явно передавать число для плюрализации. В сообщениях локализации число доступно через именованные аргументы `{count}` и/или `{n}`. При желании их можно переопределить.
-
-Сообщения локализации:
-
-```js
-const messages = {
- en: {
- apple: 'no apples | one apple | {count} apples',
- banana: 'no bananas | {n} banana | {n} bananas'
- },
- ru: {
- apple: 'нет яблок | одно яблоко | {count} яблок',
- banana: 'нет бананов | {n} банан | {n} бананов'
- }
-}
-```
-
-Шаблон:
-
-```html
-
{{ $tc('apple', 10, { count: 10 }) }}
-
{{ $tc('apple', 10) }}
-
-
{{ $tc('banana', 1, { n: 1 }) }}
-
{{ $tc('banana', 1) }}
-
{{ $tc('banana', 100, { n: 'слишком много' }) }}
-```
-
-Результат:
-
-```html
-
10 яблок
-
10 яблок
-
-
1 банан
-
1 банан
-
слишком много бананов
-```
-
-## Пользовательская плюрализация
-
-Стандартная реализация плюрализации не подходит для некоторых языков (к примеру, в славянских языках другие правила множественности).
-
-Можно предоставить собственную реализацию, передав `pluralizationRules` в конструктор `VueI18n`.
-
-Упрощенный пример для славянских языков (Русский, Украинский и другие):
-```js
-new VueI18n({
- // Ключ - язык, для которого будет применяться правило, в этом примере - `'ru'`
- // Value - функция плюрализации
- pluralizationRules: {
- /**
- * @param choice {number} индекс выбора, переданный в $tc: `$tc('path.to.rule', choiceIndex)`
- * @param choicesLength {number} общее количество доступных вариантов
- * @returns финальный индекс для выбора соответственного варианта слова
- */
- 'ru': function(choice, choicesLength) {
- // this === VueI18n экземпляра, так что свойство locale также существует здесь
-
- if (choice === 0) {
- return 0;
- }
-
- const teen = choice > 10 && choice < 20;
- const endsWithOne = choice % 10 === 1;
-
- if (choicesLength < 4) {
- return (!teen && endsWithOne) ? 1 : 2;
- }
- if (!teen && endsWithOne) {
- return 1;
- }
- if (!teen && choice % 10 >= 2 && choice % 10 <= 4) {
- return 2;
- }
-
- return (choicesLength < 4) ? 2 : 3;
- }
- }
-})
-```
-
-Такая реализация позволит использовать:
-
-```js
-const messages = {
- ru: {
- car: '0 машин | {n} машина | {n} машины | {n} машин',
- banana: 'нет бананов | {n} банан | {n} банана | {n} бананов'
- }
-}
-```
-
-Для такого формата вариантов `0 вещей | количество вещей заканчивается на 1 | количество вещей заканчивается на 2-4 | количество вещей заканчивается на 5-9, 0 и числа от 11 до 19`.
-P.S. Славянское множественное число - сложное явление, подробнее о нем можно прочитать [здесь](http://www.russianlessons.net/lessons/lesson11_main.php).
-
-В шаблоне, по-прежнему, необходимо использовать `$tc()` вместо `$t()`:
-
-```html
-
{{ $tc('car', 1) }}
-
{{ $tc('car', 2) }}
-
{{ $tc('car', 4) }}
-
{{ $tc('car', 12) }}
-
{{ $tc('car', 21) }}
-
-
{{ $tc('banana', 0) }}
-
{{ $tc('banana', 4) }}
-
{{ $tc('banana', 11) }}
-
{{ $tc('banana', 31) }}
-```
-
-Результат:
-
-```html
-
1 машина
-
2 машины
-
4 машины
-
12 машин
-
21 машина
-
-
нет бананов
-
4 банана
-
11 бананов
-
31 банан
-```
-
-### Плюрализация по умолчанию
-
-Если для используемой локали не предоставить правило плюрализации, [по умолчанию](#плюрализация) будет использовано правило для английского языка
diff --git a/docs-old/ru/guide/sfc.md b/docs-old/ru/guide/sfc.md
deleted file mode 100644
index 321f84a94..000000000
--- a/docs-old/ru/guide/sfc.md
+++ /dev/null
@@ -1,408 +0,0 @@
-# Однофайловые компоненты
-
-## Базовое использование
-
-В компоненте Vue или приложении Vue с использованием однофайловых компонентов, можно управлять сообщениями локализации с помощью пользовательского блока `i18n`.
-
-Код компонента из [примера использования с однофайловыми компонентами](https://github.com/kazupon/vue-i18n/tree/dev/examples/sfc):
-
-```vue
-
-{
- "en": {
- "hello": "hello world!"
- },
- "ru": {
- "hello": "Привет мир!"
- }
-}
-
-
-
-
-
-
-
Сообщение: {{ $t('hello') }}
-
-
-
-
-```
-
-## Установка vue-i18n-loader
-
-Требуется установить `vue-loader` и `vue-i18n-loader` чтобы использовать пользовательские блоки ``. Скорее всего [vue-loader](https://github.com/vuejs/vue-loader) уже используется в проекте, если уже работаете с однофайловыми компонентами, но необходимо дополнительно установить [vue-i18n-loader](https://github.com/kazupon/vue-i18n-loader):
-
-```bash
-npm i --save-dev @kazupon/vue-i18n-loader
-```
-
-## Webpack
-
-Для Webpack требуется следующая конфигурация:
-
-Для vue-loader v15 или более поздних версий:
-
-```js
-module.exports = {
- // ...
- module: {
- rules: [
- {
- test: /\.vue$/,
- loader: 'vue-loader'
- },
- {
- resourceQuery: /blockType=i18n/,
- type: 'javascript/auto',
- loader: '@kazupon/vue-i18n-loader'
- }
- // ...
- ]
- }
- // ...
-}
-```
-
-Для vue-loader v14:
-
-```js
-module.exports = {
- // ...
- module: {
- rules: [
- {
- test: /\.vue$/,
- loader: 'vue-loader',
- options: {
- loaders: {
- // необходимо указать ключ `i18n` для загрузчика `vue-i18n-loader`
- // (https://github.com/kazupon/vue-i18n-loader)
- i18n: '@kazupon/vue-i18n-loader'
- }
- }
- }
- // ...
- ]
- }
- // ...
-}
-```
-
-## Vue CLI 3.0
-
-[Vue CLI 3.0](https://github.com/vuejs/vue-cli) скрывает конфигурацию Webpack, поэтому для добавления поддержки тегов `` в однофайловых компонентах необходимо изменить существующую конфигурацию.
-
-Для этого нужно создать файл `vue.config.js` в корне проекта и добавить в него следующее:
-
-Для vue-loader v15 или более поздних версий:
-
-```js
-module.exports = {
- chainWebpack: config => {
- config.module
- .rule('i18n')
- .resourceQuery(/blockType=i18n/)
- .type('javascript/auto')
- .use('i18n')
- .loader('@kazupon/vue-i18n-loader')
- .end()
- }
-}
-```
-
-Для vue-loader v14:
-
-```js
-const merge = require('deepmerge')
-
-module.exports = {
- chainWebpack: config => {
- config.module
- .rule('vue')
- .use('vue-loader')
- .tap(options =>
- merge(options, {
- loaders: {
- i18n: '@kazupon/vue-i18n-loader'
- }
- })
- )
- }
-}
-```
-
-_Не забудьте установить [deepmerge](https://github.com/KyleAMathews/deepmerge)! (`npm i deepmerge -D` или `yarn add deepmerge -D`)_
-
-Подробнее о возможностях изменения существующей конфигурации Webpack можно изучить [здесь](https://cli.vuejs.org/ru/guide/webpack.html).
-
-## Laravel-Mix
-
-Для Laravel-mix 4 с vue-loader v15 или более поздней версии:
-
-```js
-// Расширяем Mix с помощью метода "i18n", который загрузит vue-i18n-loader
-mix.extend( 'i18n', new class {
- webpackRules() {
- return [
- {
- resourceQuery: /blockType=i18n/,
- type: 'javascript/auto',
- loader: '@kazupon/vue-i18n-loader',
- },
- ];
- }
- }(),
-);
-
-// Убедитесь что вызвали .i18n() (для загрузки загрузчика) перед .js(..., ...)
-mix.i18n()
- .js( 'resources/js/App.js', 'public/js/app.js' )
- ...
-```
-
-Для Laravel-mix 2 с vue-loader v14:
-
-В Laravel-mix, начиная с версии [V2.1](https://github.com/JeffreyWay/laravel-mix/releases/tag/v2.1), можно добавлять пользовательские правила с помощью `mix.extend()`. Laravel-mix уже имеет собственные правила для обработки `.vue` файлов. Чтобы добавить `vue-i18n-loader`, нужно добавить в `webpack.mix.js` следующее:
-
-```js
-// Код ниже внедрит загрузчик i18n (@kazupon/vue-i18n-loader) в качестве загрузчика .vue файлов.
-mix.extend( 'i18n', function( webpackConfig, ...args ) {
- webpackConfig.module.rules.forEach( ( module ) => {
- // Поиск компонента "vue-loader", который обрабатывает .vue файлы.
- if( module.loader !== 'vue-loader' ) {
- return;
- }
-
- // В этом модуле добавляем vue-i18n-loader для тега i18n.
- module.options.loaders.i18n = '@kazupon/vue-i18n-loader';
- } );
-} );
-
-// Убедитесь что вызвали .i18n() (для загрузки загрузчика) перед .js(..., ...)
-mix.i18n()
- .js( 'resources/assets/js/App.js', 'public/js/app.js' )
- ...
-```
-
-## Загрузка YAML
-
-Пользовательские блоки `i18n` можно указывать в формате `JSON` или `YAML` (используя функцию предварительного загрузчика `vue-loader`).
-
-Пользовательский блок `i18n` в формате `YAML`:
-
-```vue
-
- en:
- hello: "hello world!"
- ru:
- hello: "привет мир!"
-
-```
-
-Конфигурация Webpack:
-
-Для vue-loader v15 или более поздних версий:
-
-```js
-// Vue CLI 3.0
-module.exports = {
- chainWebpack: config => {
- config.module
- .rule('i18n')
- .resourceQuery(/blockType=i18n/)
- .type('javascript/auto')
- .use('i18n')
- .loader('@kazupon/vue-i18n-loader')
- .end()
- .use('yaml')
- .loader('yaml-loader')
- .end()
- }
-}
-```
-
-Для vue-loader v14:
-
-```js
-module.exports = {
- // ...
- module: {
- rules: [
- {
- test: /\.vue$/,
- loader: 'vue-loader',
- options: {
- preLoaders: {
- i18n: 'yaml-loader'
- },
- loaders: {
- i18n: '@kazupon/vue-i18n-loader'
- }
- }
- }
- // ...
- ]
- }
- // ...
-}
-```
-
-## Несколько пользовательских блоков
-
-Можно использовать сообщения локализации из нескольких пользовательских блоков `i18n`.
-
-```vue
-
-
- {
- "en": {
- "hello": "hello world!"
- },
- "ru": {
- "hello": "Привет мир!"
- }
- }
-
-```
-
-В примере выше, первый пользовательский блок загружает общие сообщения локализации с помощью атрибута `src`, второй пользовательский блок загружает сообщения локализации, которые определены только в этом однофайловом компоненте. Все они будут объединены в качестве сообщений локализации компонента.
-
-Несколько пользовательских блоков полезны, когда использовать их в качестве модулей.
-
-## Локальные стили
-
-При использовании `vue-i18n` с локальными стилями (`style scoped`) необходимо помнить и использовать [глубокий селектор](https://vue-loader.vuejs.org/ru/guide/scoped-css.html#%D0%BA%D0%BE%D1%80%D0%BD%D0%B5%D0%B2%D0%BE%D0%B9-%D1%8Dn%D0%B5%D0%BC%D0%B5%D0%BD%D1%82-%D0%B4%D0%BE%D1%87%D0%B5%D1%80%D0%BD%D0%B5%D0%B3%D0%BE-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0) для стилизации элемента __*внутри*__ строки перевода. Например:
-
-__Когда перевод содержит только текст__ (работает без глубокого селектора)
-
-```vue
-
- {
- "en": {
- "hello": "hello world!"
- },
- "ru": {
- "hello": "Привет мир!"
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-## Пользовательские блоки в функциональном компоненте
-
-Если в шаблоне однофайловых компонентов используется функциональный компонент и определены пользовательские блоки `i18n`, то обратите внимание что невозможно локализовать с помощью сообщений локализации.
-
-Например, следующий код не может использовать сообщения локализации из блока `i18n`.
-
-```vue
-
- {
- "en": {
- "hello": "hello world"
- },
- "ru": {
- "hello": "привет мир"
- }
- }
-
-
-
-
-
{{ parent.$t('hello') }}
-
-```
diff --git a/docs-old/ru/guide/tooling.md b/docs-old/ru/guide/tooling.md
deleted file mode 100644
index 92fa19a93..000000000
--- a/docs-old/ru/guide/tooling.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# Инструментарий
-
-Для поддержки i18n приложений Vue некоторые инструменты предоставляются официально.
-
-Также есть инструменты от сторонних разработчиков, которые интегрируются в Vue I18n.
-
-## Официальный инструментарий
-
-### Плагин для Vue CLI
-
-[vue-cli-plugin-i18n](https://github.com/kazupon/vue-cli-plugin-i18n) — официальный плагин для Vue CLI.
-
-С помощью этого плагина можно настроить среду i18n для приложения Vue и поддерживать среду разработки i18n.
-
-### Модуль для Nuxt
-
-[nuxt-i18n](https://github.com/nuxt-community/nuxt-i18n/) — соответствующий модуль для Nuxt.js.
-
-### Загрузчик для Webpack
-
-[vue-i18n-loader](https://github.com/kazupon/vue-i18n-loader) — официальный загрузчик для webpack.
-
-С помощью этого загрузчика можно использовать пользовательские блоки `i18n` в однофайловых компонентах.
-
-Подробнее о пользовательских блоках `i18n` можно изучить в разделе [Однофайловых компонентов](./sfc.md)
-
-### Плагин для ESLint
-
-[eslint-plugin-vue-i18n](https://intlify.github.io/eslint-plugin-vue-i18n/) — ESLint-плагин для Vue I18n.
-
-Позволяет легко интегрировать функции проверки локализацией в ваше приложение Vue.js.
-
-### Расширения
-
-[vue-i18n-extensions](https://github.com/kazupon/vue-i18n-extensions) — предоставляет некоторые расширения дляVue I18n.
-
-Эти расширения позволяет использовать в рендеринге на стороне сервера (SSR) и улучшить производительность i18n.
-
-## Сторонние разработки
-
-### BabelEdit
-
-[BabelEdit](https://www.codeandweb.com/babeledit) — редактор переводов для веб-приложений.
-
-BabelEdit может переводить файлы `json`, а также умеет работать с пользовательскими блоками `i18n` однофайловых компонентов.
-
-Подробнее про BabelEdit можно узнать [на странице введения](https://www.codeandweb.com/babeledit/tutorials/how-to-translate-your-vue-app-with-vue-i18n).
-
-### i18n Ally
-
-[i18n Ally](https://marketplace.visualstudio.com/items?itemName=antfu.i18n-ally) — расширение i18n для VSCode.
-
-i18n Ally предоставляет потрясающий DX для разработки с использованием i18n.
-
-Подробнее о расширении i18n Ally можно изучить в [README](https://github.com/antfu/i18n-ally/blob/master/README.md).
-
-### i18nPlugin (платформа intellij)
-
-[i18nPlugin](https://github.com/nyavro/i18nPlugin) — плагин Intellij idea для поддержки i18next ([Jetbrains plugin page](https://plugins.jetbrains.com/plugin/12981-i18n-support)).
-
-Плагин для i18n typescript/javascript/PHP. Поддерживает vue-i18n. Для включения поддержки vue-i18n в настройках -> Tools -> i18n Plugin configuration выберите "Vue-i18n". Необходимо установить каталоги с файлами локализаций (по умолчанию locales).
-
-### vue-i18n-extract
-
-[vue-i18n-extract](https://github.com/pixari/vue-i18n-extract) выполняет статический анализ проекта Vue.js на основе vue-i18n и сообщает следующую информацию:
-
-- список всех **неиспользуемых ключей vue-i18n** (записи, найденные в файлах перевода, но не использованные в проекте)
-- список всех **пропущенных ключей** (записи, найденные в проекте, но отсутствующие в файлах перевода)
-
-Имеется возможность отобразить результат в консоли или записать его в файл json.
-
-Пропущенные ключи также могут быть автоматически добавлены в заданные файлы переводов.
diff --git a/docs-old/ru/installation.md b/docs-old/ru/installation.md
deleted file mode 100644
index 2df4d851d..000000000
--- a/docs-old/ru/installation.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# Установка
-
-## Примечание совместимости
-
-- Vue.js версии `2.0.0`+
-
-## Загрузка файла / CDN
-
-
-
-Сервис [unpkg.com](https://unpkg.com) предоставляет CDN-ссылки на основе NPM-пакетов. Ссылка выше будет всегда указывать на последнюю версию на NPM. Можно использовать конкретную версию или тег с помощью URL следующего вида
-
-При подключении vue-i18n после Vue плагин установит себя автоматически:
-
-```html
-
-
-```
-
-## NPM
-
-```bash
-npm install vue-i18n
-```
-
-## Yarn
-
-```bash
-yarn add vue-i18n
-```
-
-При использовании системы модулей нужно явно устанавливать `vue-i18n`
-через `Vue.use()`:
-
-```js
-import Vue from 'vue'
-import VueI18n from 'vue-i18n'
-
-Vue.use(VueI18n)
-```
-
-Подобного не требуется делать при подключении через глобальный тег `
-
-
-
-
{{ $t("message.hello") }}
-
-```
-
-## JavaScript
-
-```js
-// При использовании модульной системы (например, через vue-cli)
-// нужно импортировать Vue и VueI18n и вызвать Vue.use(VueI18n).
-//
-// import Vue from 'vue'
-// import VueI18n from 'vue-i18n'
-//
-// Vue.use(VueI18n)
-
-// Готовые переводы сообщений локализаций
-const messages = {
- en: {
- message: {
- hello: 'hello world'
- }
- },
- ru: {
- message: {
- hello: 'Привет мир'
- }
- }
-}
-
-// Создание экземпляра VueI18n с настройками
-const i18n = new VueI18n({
- locale: 'ru', // установка локализации по умолчанию
- messages // установка сообщений локализаций
-})
-
-// Создание экземпляра Vue с опцией `i18n`
-new Vue({ i18n }).$mount('#app')
-
-// Теперь можно запускать приложение!
-```
-
-Результат будет таким:
-
-```html
-
-
Привет мир
-
-```
diff --git a/docs-old/started.md b/docs-old/started.md
deleted file mode 100644
index 7b0256a4f..000000000
--- a/docs-old/started.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# Getting started
-
-:::tip NOTE
-We will be using [ES2015](https://github.com/lukehoban/es6features) in the
-code samples in the guide.
-:::
-
-## HTML
-
-```html
-
-
-
-
-
{{ $t("message.hello") }}
-
-```
-
-## JavaScript
-
-```js
-// If using a module system (e.g. via vue-cli), import Vue and VueI18n and then call Vue.use(VueI18n).
-// import Vue from 'vue'
-// import VueI18n from 'vue-i18n'
-//
-// Vue.use(VueI18n)
-
-// Ready translated locale messages
-const messages = {
- en: {
- message: {
- hello: 'hello world'
- }
- },
- ja: {
- message: {
- hello: 'こんにちは、世界'
- }
- }
-}
-
-// Create VueI18n instance with options
-const i18n = new VueI18n({
- locale: 'ja', // set locale
- messages, // set locale messages
-})
-
-
-// Create a Vue instance with `i18n` option
-new Vue({ i18n }).$mount('#app')
-
-// Now the app has started!
-```
-
-Output the following:
-
-```html
-