Repository: vuejs/vue-loader
Pull request #650 (2017-02-17 03:38:26)

Missing word
I think a word is missing.


Patch:
diff --git a/docs/LANGS.md b/docs/LANGS.md
index ab4640e..da850e1 100644
--- a/docs/LANGS.md
+++ b/docs/LANGS.md
@@ -1,4 +1,4 @@
 * [English](en/)
 * [한국어](kr/)
 * [Русский](ru/)
-* [Português](pt/)
\ No newline at end of file
+* [Português](pt_BR/)
\ No newline at end of file
diff --git a/docs/en/README.md b/docs/en/README.md
index 21e3008..ed4480e 100644
--- a/docs/en/README.md
+++ b/docs/en/README.md
@@ -35,4 +35,4 @@ But Webpack can do more than that. With "loaders", we can teach Webpack to trans
 - Transpile SASS files into plain CSS, then convert it into a JavaScript snippet that insert the resulting CSS as a `<style>` tag;
 - Process an image file referenced in HTML or CSS, moved it to the desired destination based on the path configurations, and naming it using its md5 hash.
 
-Webpack is so powerful that when you understand how it works, it can dramatically improve your front-end workflow. Its primary drawback is verbose and complex configuration; but with this guide you should be able to find solutions for most common issues when using Webpack with Vue.js and `vue-loader`.
+Webpack is so powerful that when you understand how it works, it can dramatically improve your front-end workflow. Its primary drawback is its verbose and complex configuration; but with this guide you should be able to find solutions for most common issues when using Webpack with Vue.js and `vue-loader`.
diff --git a/docs/en/workflow/production.md b/docs/en/workflow/production.md
index a540810..ef0bc66 100644
--- a/docs/en/workflow/production.md
+++ b/docs/en/workflow/production.md
@@ -24,8 +24,8 @@ module.exports = {
         warnings: false
       }
     }),
-    // optimize module ids by occurence count
-    new webpack.optimize.OccurenceOrderPlugin()
+    // optimize module ids by occurrence count
+    new webpack.optimize.OccurrenceOrderPlugin()
   ]
 }
 ```
diff --git a/docs/pt/README.md b/docs/pt_BR/README.md
similarity index 81%
rename from docs/pt/README.md
rename to docs/pt_BR/README.md
index c3fe247..83829de 100644
--- a/docs/pt/README.md
+++ b/docs/pt_BR/README.md
@@ -9,13 +9,13 @@
 Existem muitos recursos interessantes fornecidos por `vue-loader`:
 
 - ES2015 habilitado por padrão;
-- Permite usar outros carregadores Webpack para cada pedaço de um componente Vue, por exemplo SASS para `<style>` e Jade para `<template>`;
+- Permite usar outros carregadores Webpack para cada parte de um componente Vue, por exemplo SASS para `<style>` e Jade para `<template>`;
 - Permite seções customizadas em um arquivo .vue que pode ter carregadores encadeados personalizados aplicados a eles;
 - Trata ativos estáticos referenciado em `<style>` e `<template>` como dependência de módulo e então manipula com carregadores Webpack;
 - Pode simular escopo CSS para cada componente;
 - Suporta componente hot-reloading durante desenvolvimento;
 
-Em poucas palavras, a combinação de Webpack e `vue-loader` dá-lhe um moderno, flexível e extremamente poderoso fluxo de trabalho front-end para criação de aplicações Vue.js.
+Em poucas palavras, a combinação de Webpack e `vue-loader` oferece um moderno, flexível e extremamente poderoso fluxo de trabalho front-end para criação de aplicações Vue.js.
 
 ### O que é Webpack?
 
@@ -27,12 +27,12 @@ Se você já está familiarizado com Webpack, sinta-se livre para pular está ex
 
 Para um exemplo básico, imagine que nós temos um monte de módulos CommonJs. Eles não podem rodar diretamente dentro do navegador, então precisamos empacotá-los dentro de um único arquivo que pode ser incluído através de uma tag `<script>`. Webpack pode seguir as dependências das chamadas  `require()` e fazer isso para nós.
 
-Mas Webpack pode fazer mais do que isso. Com "carregadores", podemos ensinar Webpack a transformar todos os tipos de arquivos dá maneira que quisermos antes da saída final do pacote. Alguns exemplos incluem:
+Mas Webpack pode fazer mais do que isso. Com "loaders", podemos ensinar Webpack a transformar todos os tipos de arquivos dá maneira que quisermos antes da saída final do pacote. Alguns exemplos incluem:
 
 - Transpilar módulos ES2015, CoffeScript ou TypeScript em módulos simples CommonJs ES5;
 - Opcionalmente você pode canalizar o código fonte através de um linter \(analisador de código\) antes de fazer a compilação;
 - Transpilar modelos Jade em HTML simples em seguida colocá-lo como uma sequência de string JavaScript;
-- Traspilar arquivos SASS em CSS simples, em seguida os converte em trechos de código JavaScript que insere o resultado CSS como uma tag `<style>`;
+- Traspilar arquivos SASS em CSS simples, em seguida os converter em trechos de código JavaScript que insere o resultado CSS como uma tag `<style>`;
 - Processar um arquivo de imagem referenciado em HTML ou CSS, movê-la para o destino desejado baseado no arquivo de configuração, e nomeá-la usando seu hash md5; 
 
-Webpack é tão poderoso que quando você entender como ele funciona, poderá melhorar drasticamente seu fluxo de trabalho front-end. Sua principal desvantagem é a configuração excessiva e complexa; Mas com este guia você deve se capaz de encontrar solução para muitas questões comuns usando Webpack com Vue.js e `Vue-loader`.
\ No newline at end of file
+Webpack é tão poderoso que quando você entender como ele funciona, poderá melhorar drasticamente seu fluxo de trabalho front-end. Sua principal desvantagem é a configuração excessiva e complexa; Mas com este guia você deve se capaz de encontrar solução para muitas questões comuns usando Webpack com Vue.js e `vue-loader`.
\ No newline at end of file
diff --git a/docs/pt/SUMMARY.md b/docs/pt_BR/SUMMARY.md
similarity index 77%
rename from docs/pt/SUMMARY.md
rename to docs/pt_BR/SUMMARY.md
index 6696576..95e289b 100644
--- a/docs/pt/SUMMARY.md
+++ b/docs/pt_BR/SUMMARY.md
@@ -10,12 +10,12 @@
   - [Hot Reload](features/hot-reload.md)
 - Configurações
   - [Pré-Processadores](configurations/pre-processors.md)
-  - [Manipulação de URls de ativos](configurations/asset-url.md)
+  - [Manipulação de recurso de URL](configurations/asset-url.md)
   - [Configuração avançado do loader](configurations/advanced.md)
-  - [Extraindo arquivos css](configurations/extract-css.md)
+  - [Extraindo arquivos CSS](configurations/extract-css.md)
   - [Blocos customizados](configurations/custom-blocks.md)
 - Fluxo de trabalho
-  - [Produção](workflow/production.md)
+  - [Construir Produção](workflow/production.md)
   - [Análise estática do código \(Linting\)](workflow/linting.md)
   - [Testando](workflow/testing.md)
   - [Testando com Mocks](workflow/testing-with-mocks.md)
diff --git a/docs/pt/configurations/advanced.md b/docs/pt_BR/configurations/advanced.md
similarity index 95%
rename from docs/pt/configurations/advanced.md
rename to docs/pt_BR/configurations/advanced.md
index f073094..631186f 100644
--- a/docs/pt/configurations/advanced.md
+++ b/docs/pt_BR/configurations/advanced.md
@@ -12,8 +12,6 @@ Para fazer isto, especifique a opção `loaders` para `vue-loader`:
 
 > Observe que `preLoaders` e`postLoaders` são suportados apenas em verões >=10.3.0
 
-
-
 ### Webpack 2.x
 
 ```js
@@ -36,7 +34,7 @@ module.exports = {
           
           // `preLoaders` são anexados antes dos carregadores padrões
           // Você pode usar isso para pré-processar blocos de linguagem 
-          // - um caso de uso comum seria i18n em tempo de construção.
+          // - um caso de uso comum seria intercionalização (i18n)  em tempo de construção.
           preLoaders: {
             js: '/caminho/personalizado/para/carregador'
           },
diff --git a/docs/pt/configurations/asset-url.md b/docs/pt_BR/configurations/asset-url.md
similarity index 60%
rename from docs/pt/configurations/asset-url.md
rename to docs/pt_BR/configurations/asset-url.md
index 2f3c086..21ea4a5 100644
--- a/docs/pt/configurations/asset-url.md
+++ b/docs/pt_BR/configurations/asset-url.md
@@ -1,6 +1,6 @@
-# Manipulação de recursos de URL
+# Manipulação de recurso de URL
 
-Por padrão, `vue-loader` automaticamente processa seus arquivos de estilos [css-loader](https://github.com/webpack/css-loader) e seus templates com o compilador de template Vue. Neste processo de compilação, todos os recursos de URLs como `<img src="...">`, `background: url(...)` e CSS `@import` são **resolvidos como dependência de módulo**.
+Por padrão, `vue-loader` automaticamente processa seus arquivos de estilos com[css-loader](https://github.com/webpack/css-loader) e seus templates com o compilador de template Vue. Neste processo de compilação, todos os recursos de URLs como `<img src="...">`, `background: url(...)` e CSS `@import` são **resolvidos como dependência de módulo**.
 
 Por exemplo, `url(./image.png)` irá ser traduzido em `require('./image.png')`, e
 
@@ -14,10 +14,10 @@ será compilado em:
 createElement('img', { attrs: { src: require('../image.png') }})
 ```
 
-Como `.png` não é um arquivo JavaScript, você precisará configurar o Webpack para usar [file-loader](https://github.com/webpack/file-loader) ou [url-loader](https://github.com/webpack/url-loader) para lidar com eles. O projeto estruturado com `vue-cli` também configurou isso pra você.
+Como `.png` não é um arquivo JavaScript, você precisará configurar o Webpack para usar [file-loader](https://github.com/webpack/file-loader) ou [url-loader](https://github.com/webpack/url-loader) para lidar com eles. O projeto estruturado com `vue-cli` também configurou isso para você.
 
 Os benefícios de tudo isso são:
 
-1. `file-loader` permite a você configurar onde copiar e colar os arquivos de ativos \(assets\), e como nomeá-lo usando hashes de versão para melhorar o cache. Mas, isso também significa que **você pode simplesmente colocar imagens ao lado de seus arquivos `.vue` e usar o caminho relativo com base na estrutura de pastas em vez de se preocupar com URLs de implantação**. Com a configuração apropriada, Webpack irá automaticamente escrever o caminho dos arquivos em URLs corretas na saída empacotada.
+1. `file-loader` permite a você designar onde copiar e colar os arquivos de recursos \(assets\), e como nomeá-lo usando hashes de versão para melhorar o cache. Mas, isso também significa que **você pode simplesmente colocar imagens ao lado de seus arquivos `.vue` e usar o caminho relativo com base na estrutura de pastas em vez de se preocupar com URLs de implantação**. Com a configuração apropriada, Webpack irá automaticamente reescrever o caminho dos arquivos em URLs corretas na saída empacotada.
 
 2. `url-loader` permite a você colocar condicionalmente em linha um arquivo de dados URL base64 se eles forem menor que um determinado limite. Se o arquivo for maior do que o limite ele automaticamente será jogado para `file-loader`.
\ No newline at end of file
diff --git a/docs/pt/configurations/custom-blocks.md b/docs/pt_BR/configurations/custom-blocks.md
similarity index 71%
rename from docs/pt/configurations/custom-blocks.md
rename to docs/pt_BR/configurations/custom-blocks.md
index ab55766..518a419 100644
--- a/docs/pt/configurations/custom-blocks.md
+++ b/docs/pt_BR/configurations/custom-blocks.md
@@ -2,7 +2,7 @@
 
 > Requer versão 10.2.0+
 
-Você pode definir um bloco de linguagem customizado dentro de arquivos `*.vue`. O conteúdo do bloco customizado será processado por carregadores especificado na opção `loaders` do objeto de configuração `vue-loader` e então requerido pelo módulo componente. A configuração é semelhante a descrita em [Configurações Avançada do Carregador](../configurations/advanced.md). exceto o uso padrão do nome da tag em vez do atributo `lang`;
+Você pode definir blocos de linguagem customizados dentro de arquivos `*.vue`. O conteúdo do bloco customizado será processado ppelos carregadores especificados na opção `loaders` do objeto de configuração `vue-loader` e então requerido pelo módulo componente. A configuração é semelhante a descrita em [Configurações Avançada do Carregador](../configurations/advanced.md), exceto o uso padrão do nome da tag em vez do atributo `lang`;
 
 Se for encontrado um carregador correspondente para um bloco customizado, ele será processado. Caso contrário o bloco customizado será simplesmente ignorado.
 
diff --git a/docs/pt/configurations/extract-css.md b/docs/pt_BR/configurations/extract-css.md
similarity index 93%
rename from docs/pt/configurations/extract-css.md
rename to docs/pt_BR/configurations/extract-css.md
index b64f9ec..dce8c64 100644
--- a/docs/pt/configurations/extract-css.md
+++ b/docs/pt_BR/configurations/extract-css.md
@@ -2,10 +2,10 @@
 
 Exemplo de configuração para extrair todo CSS processado de todos componentes Vue em um único arquivo CSS:
 
-### Webpack 1.x
+### Webpack 2.x
 
 ```bash
-npm install extract-text-webpack-plugin --save-dev
+npm install extract-text-webpack-plugin@2.x --save-dev
 ```
 
 ```js
@@ -15,30 +15,31 @@ var ExtractTextPlugin = require("extract-text-webpack-plugin")
 module.exports = {
   // outras opções...
   module: {
-    loaders: [
+    rules: [
       {
         test: /\.vue$/,
-        loader: 'vue'
-      },
+        loader: 'vue-loader',
+        options: {
+          loaders: {
+            css: ExtractTextPlugin.extract({
+              loader: 'css-loader',
+              fallbackLoader: 'vue-style-loader' // <- isto é uma dependência de vue-loader, então não é necessário instalar explicitamente se estiver usando npm3
+            })
+          }
+        }
+      }
     ]
   },
-  vue: {
-    loaders: {
-      css: ExtractTextPlugin.extract("css"),
-      // você também pode incluir <style lang="less"> ou outras linguagens
-      less: ExtractTextPlugin.extract("css!less")
-    }
-  },
   plugins: [
     new ExtractTextPlugin("style.css")
   ]
 }
 ```
 
-### Webpack 2.x \(^2.1.0-beta.25\)
+### Webpack 1.x
 
 ```bash
-npm install extract-text-webpack-plugin@2.x --save-dev
+npm install extract-text-webpack-plugin
 ```
 
 ```js
@@ -48,21 +49,20 @@ var ExtractTextPlugin = require("extract-text-webpack-plugin")
 module.exports = {
   // outras opções...
   module: {
-    rules: [
+    loaders: [
       {
         test: /\.vue$/,
-        loader: 'vue-loader',
-        options: {
-          loaders: {
-            css: ExtractTextPlugin.extract({
-              loader: 'css-loader',
-              fallbackLoader: 'vue-style-loader' // <- isto é uma dependência de vue-loader, então não é necessário instalar explicitamente se estiver usando npm3
-            })
-          }
-        }
-      }
+        loader: 'vue'
+      },
     ]
   },
+  vue: {
+    loaders: {
+      css: ExtractTextPlugin.extract("css"),
+      // você também pode incluir <style lang="less"> ou outras linguagens
+      less: ExtractTextPlugin.extract("css!less")
+    }
+  },
   plugins: [
     new ExtractTextPlugin("style.css")
   ]
diff --git a/docs/pt/configurations/pre-processors.md b/docs/pt_BR/configurations/pre-processors.md
similarity index 82%
rename from docs/pt/configurations/pre-processors.md
rename to docs/pt_BR/configurations/pre-processors.md
index 77fe43d..ab48881 100644
--- a/docs/pt/configurations/pre-processors.md
+++ b/docs/pt_BR/configurations/pre-processors.md
@@ -1,6 +1,6 @@
 # Unsando Pré-Processadores
 
-No Webpack, todos os pré-processadores precisam ser aplicados com um carregador \(loader\) correspondente. `vue-loader` permite que você use outros carregadores para processar parte do seu componente Vue. Ele irá automaticamente indicar os carregadores apropriados para usar a partir do atributo `lang` de um bloco de linguagem.
+No Webpack, todos os pré-processadores precisam ser aplicados com um carregador \(loader\) correspondente. `vue-loader` permite que você use outros carregadores Webpack para processar uma parte de um componente Vue. Ele irá automaticamente indicar os carregadores apropriados para usar a partir do atributo `lang` de um bloco de linguagem.
 
 ### CSS
 
@@ -20,9 +20,9 @@ Por baixo do capô, o conteúdo de texto dentro da tag `<style>` será primeiram
 
 #### Advertências de sass-loader
 
-Ao contrário do que seu nome indica, [sass-loader](https://github.com/jtangelder/sass-loader) analisa a sintaxe SCSS por padrão. Se você atualmente deseja usar a indentação da sintaxe SASS, você tem que configurar as opções de vue-loader para sass-loader adequadamente.
+Ao contrário do que seu nome indica, [sass-loader](https://github.com/jtangelder/sass-loader) analisa a sintaxe *SCSS* por padrão. Se você atualmente deseja usar a indentação da sintaxe *SASS*, você tem que configurar as opções de vue-loader para sass-loader adequadamente.
 
-```javascript
+```js
 {
   test: /\.vue$/,
   loader: 'vue-loader',
diff --git a/docs/pt/features/css-modules.md b/docs/pt_BR/features/css-modules.md
similarity index 100%
rename from docs/pt/features/css-modules.md
rename to docs/pt_BR/features/css-modules.md
diff --git a/docs/pt/features/es2015.md b/docs/pt_BR/features/es2015.md
similarity index 84%
rename from docs/pt/features/es2015.md
rename to docs/pt_BR/features/es2015.md
index 34e7d63..5a5a218 100644
--- a/docs/pt/features/es2015.md
+++ b/docs/pt_BR/features/es2015.md
@@ -2,9 +2,9 @@
 
 Quando `vue-loader` detecta a presença de `babel-loader` ou `buble-loader` no mesmo projeto, ele irá usá-los para processar pedaços `<script>` de todos os arquivos `*.vue`, permitindo-nos usar ES2015 em nossos componentes Vue. Se você ainda não conhece estes novos recursos, você definitivamente deve. Alguns bons recursos para aprendizagem:
 
-* [Babel - Learn ES2015](https://babeljs.io/docs/learn-es2015/)
-* [ES6 Features](https://github.com/lukehoban/es6features)
-* [Exploring ES6 \(book\)](https://leanpub.com/exploring-es6)
+- [Babel - Learn ES2015](https://babeljs.io/docs/learn-es2015/)
+- [ES6 Features](https://github.com/lukehoban/es6features)
+- [Exploring ES6 \(book\)](https://leanpub.com/exploring-es6)
 
 Aqui está um padrão típico que você irá ver quando importar outros componentes Vue:
 
@@ -26,7 +26,7 @@ Estamos usando a abreviação de objeto literal do ES2015 para definir component
 
 ### ES2015 em Templates
 
-`<template>` em arquivos `*.vue` são compilados em funções de renderização do JavaScript e então processados por uma compilação personalizada de [Buble](https://buble.surge.sh/guide/) para suportar características ES2015. Isso permite que você use recursos como p[ropriedade de abreviatura do objeto](https://buble.surge.sh/guide/#object-shorthand-methods-and-properties-transforms-concisemethodproperty-) e [propriedades computadas](https://buble.surge.sh/guide/#computed-properties-transforms-computedproperty-):
+`<template>` em arquivos `*.vue` são compilados em funções de renderização do JavaScript e então processados por uma compilação personalizada de [Buble](https://buble.surge.sh/guide/) para suportar características ES2015. Isso permite que você use recursos como [propriedade de abreviatura do objeto](https://buble.surge.sh/guide/#object-shorthand-methods-and-properties-transforms-concisemethodproperty-) e [propriedades computadas](https://buble.surge.sh/guide/#computed-properties-transforms-computedproperty-):
 
 ```html
 <div :class="[{ active: active }, isButton ? prefix + '-button' : null]">
@@ -58,7 +58,7 @@ Você também pode personalizar os recursos suportados em template usando as [op
 
 ### Transpilação normal de arquivos `.js`
 
-Uma vez que `vue-loader` apenas processa arquivos `*.vue`, você precisa informar ao Webpack para processar arquivos `*.js` normais com `babel-loader` ou `buble-loader` em seu arquivo de configuração Webpack. O projeto modelo criado com `vue-cli` já faz isso pra você.
+Uma vez que `vue-loader` processa apenas arquivos `*.vue`, você precisa informar ao Webpack para processar arquivos `*.js` normais com `babel-loader` ou `buble-loader` em seu arquivo de configuração Webpack. O projeto esqueleto criado com `vue-cli` já faz isso pra você.
 
 ### Configurando Babel com `.babelrc`
 
diff --git a/docs/pt/features/hot-reload.md b/docs/pt_BR/features/hot-reload.md
similarity index 100%
rename from docs/pt/features/hot-reload.md
rename to docs/pt_BR/features/hot-reload.md
diff --git a/docs/pt/features/postcss.md b/docs/pt_BR/features/postcss.md
similarity index 57%
rename from docs/pt/features/postcss.md
rename to docs/pt_BR/features/postcss.md
index 1a85bdb..eace1a8 100644
--- a/docs/pt/features/postcss.md
+++ b/docs/pt_BR/features/postcss.md
@@ -1,6 +1,20 @@
 # PostCSS
 
-Qualquer saída CSS processada por `vue-loader` é canalizada através de [PostCSS](https://github.com/postcss/postcss) para escrever o escopo CSS. Você também pode adicionar plugins PostCSS personalizado ao processador, por exemplo [autoprefixer](https://github.com/postcss/autoprefixer) or [CSSNext](http://cssnext.io/).
+Qualquer saída CSS processada por `vue-loader` é canalizada através de [PostCSS](https://github.com/postcss/postcss) para escrever o escopo CSS. Você também pode adicionar plugins PostCSS personalizado ao processador, por exemplo [autoprefixer](https://github.com/postcss/autoprefixer) ou [CSSNext](http://cssnext.io/).
+
+## Usando um Arquivo de Configuração
+
+A partir da versão 11.0, `vue-loader` suporta o carregamento automático dos mesmo arquivos de configuração do PostCss suportados por [`postcss-loader`](https://github.com/postcss/postcss-loader#usage):
+
+- `postcss.config.js`
+- `.postcssrc`
+- Opção `postcss` em `package.json`
+
+O uso de um arquivo de configuração permite que você compartilhe a mesma configuração entre seus arquivos CSS normais processados por `postcss-loader` e os arquivos CSS dentro de arquivos `*.vue`, isto é o recomendado.
+
+## Opções em Linha
+
+Como alternativa, você pode especificar configurações postcss especificamente para arquivos `*.vue` usando a opção `postcss` para `vue-loader`.
 
 Exemplo de uso no Webpack 1.x:
 
@@ -40,9 +54,9 @@ module.exports = {
 
 Além de fornecer uma coleção de plugins, a opção de `postcss` também aceita:
 
-* Uma função que retorna uma coleção de plugins:
+- Uma função que retorna uma coleção de plugins:
 
-* Um objeto que contém opções para ser passado para o processador PostCSS. Isto é útil quando você está usando projetos com PostCSS que depende de analisadores/stringifiers personalizados:
+- Um objeto que contém opções para ser passado para o processador PostCSS. Isto é útil quando você está usando projetos com PostCSS que depende de analisadores/stringifiers personalizados:
 
   ```js
   postcss: {
diff --git a/docs/pt/features/scoped-css.md b/docs/pt_BR/features/scoped-css.md
similarity index 100%
rename from docs/pt/features/scoped-css.md
rename to docs/pt_BR/features/scoped-css.md
diff --git a/docs/pt/options.md b/docs/pt_BR/options.md
similarity index 75%
rename from docs/pt/options.md
rename to docs/pt_BR/options.md
index 3b78b95..a6db98a 100644
--- a/docs/pt/options.md
+++ b/docs/pt_BR/options.md
@@ -34,13 +34,13 @@ module.exports = {
 
 ### loaders
 
-* tipo: `{ [lang: string]: string }`
+- tipo: `{ [lang: string]: string }`
 
   Um objeto especificando carregadores de Webpack para substituir carregadores padrão usados para blocos de linguagem dentro de arquivos `*.vue`. A chave corresponde ao atributo `lang` para o bloco de linguagem, se especificado. O padrão `lang` para cada tipo é:
 
-  * `<template>`: `html`
-  * `<script>`:`js`
-  * `<style>`: `css`
+  - `<template>`: `html`
+  - `<script>`:`js`
+  - `<style>`: `css`
 
   Por exemplo, para usar `babel-loader` e `eslint-loader` para processar todos os blocos `<script>`:
 
@@ -61,21 +61,27 @@ module.exports = {
 
 ### preLoaders
 
-* tipo: `{ [lang: string]: string }`
-* suportado apenas em &gt;=10.3.0
+- tipo: `{ [lang: string]: string }`
+- suportado apenas em >=10.3.0
 
-  O formato de configuração é o mesmo que `loaders`, mas `preLoaders` são aplicados depois dos carregadores padrões. Você pode usar isto para pós-processar blocos de linguagem. No entanto observe que isso é um pouco mais complicado:
-  
-  * Para `html`, o resultado retornado pelo carregador padrão será compilado em código de função de renderização JavaScript.
+  O formato de configuração é o mesmo que `loaders`, mas `preLoaders` são aplicados aos blocos de linguagem correspodentes antes dos carregadores padrões. Você pode usar isto para pré-processar blocos de linguagem - um caso de uso comum seria contruir em [internacionalização (i18n)](https://pt.wikipedia.org/wiki/Internacionaliza%C3%A7%C3%A3o_(inform%C3%A1tica)) tempo real.
+
+### postLoaders
 
-  * Para `css`, o resultado será retornado por `vue-style-loader` que não é particularmente útil na maioria dos casos. Usando um plugin postcss será uma opção melhor.
+- tipo: `{ [lang: string]: string }`
+- suportado apenas em >= 10.3.0
+
+  O formato de configuração é o mesmo que `loaders`, mas `postLoaders` são aplicados depois dos carregadores padrões. Você pode usar para pós-processar blocos de linguagem. No entanto note que isso é um pouco mais complicado:
+  
+  - Para `html`, o resultado retornado pelo carregador padrão será compilado em código de função de renderização JavaScript.
 
+  - Para `css`, o resultado será retornado por `vue-style-loader` que não é particularmente útil na maioria dos casos. Usando um plugin postcss será uma opção melhor.
 
 ### postcss
 
-> Nota: em versões &gt;=11.0.0 é recomendável usar um arquivo de configuração PostCSS em vez disso. O uso é o mesmo que [postcss-loader](https://github.com/postcss/postcss-loader#usage).
+> Nota: em versões >= 11.0.0 é recomendável usar um arquivo de configuração PostCSS em vez disso. O uso é o mesmo que [postcss-loader](https://github.com/postcss/postcss-loader#usage).
 
-* tipo: `Array` ou `Function` ou `Object`
+- tipo: `Array`, `Function` ou `Object`
 
   Especifica plugins PostCSS personalizados para serem aplicado a CSS dentro de arquivos `*.vue`. Se estiver usando uma função, a função irá ser chamada usando o mesmo contexto do loader e deve retornar uma coleção de plugins.
 
@@ -106,8 +112,8 @@ module.exports = {
 
 ### cssSourceMap
 
-* tipo: `Boolean`
-* padrão: `true`
+- tipo: `Boolean`
+- padrão: `true`
 
   Se deve habilitar mapas de origem para CSS. Desativar isso pode evitar alguns erros relacionado a caminho relativo em `css-loader` e fazer a construção um pouco mais rápida.
 
@@ -115,29 +121,29 @@ module.exports = {
 
 ### esModule
 
-* tipo: `Boolean`
-* padrão: `undefined`
+- tipo: `Boolean`
+- padrão: `undefined`
 
   Se deve emitir código compatível esModule. Por padrão vue-loader irá emitir a exportação padrão em formato CommonJs como `module.exports = ...`. Quando `esModule` estiver definido como true, a exportação padrão irá ser transpilada em `exports.__esModule = true; exports = ...`. Útil para interoperação com transpiladores diferente de Babel, como TypeScript.
 
 ### preserveWhitespace
 
-* tipo: `Boolean`
-* padrão: `true`
+- tipo: `Boolean`
+- padrão: `true`
 
   Se definido para `false`, os espaços em branco entre as tags HTML em templates serão ignorados.
 
 ### transformToRequire
 
-* tipo: `{ [tag: string]: string | Array<string> }`
-* padrão: `{ img: 'src' }`
+- tipo: `{ [tag: string]: string | Array<string> }`
+- padrão: `{ img: 'src', image: 'xlink:href' }`
 
   Durante a compilação do template, o compilador pode transformar certos atributos, tais como URLs `src`, em chamadas `require`, para que o recurso de destino possa ser manipulado pelo Webpack. A configuração padrão transforma o atributo `src` em tags `<img>` e atributos `xlink:href` em tags `<image>` de SVG.
 
 ### buble
 
-* tipo: `Object`
-* padrão: `{}`
+- tipo: `Object`
+- padrão: `{}`
 
   Opções de configuração para o `buble-loader` \(Se estiver presente\), E a compilação buble passa para o template as funções de renderização.
 
@@ -155,7 +161,7 @@ module.exports = {
       // NOTA: Você precisa fornecer o polyfill Object.assign por si mesmo!
       objectAssign: 'Object.assign',
 
-      // desliga a remoção 'com'
+      // desliga a remoção 'with'
       transforms: {
         stripWith: false
       }
diff --git a/docs/pt/start/setup.md b/docs/pt_BR/start/setup.md
similarity index 68%
rename from docs/pt/start/setup.md
rename to docs/pt_BR/start/setup.md
index 9a66675..0d972fe 100644
--- a/docs/pt/start/setup.md
+++ b/docs/pt_BR/start/setup.md
@@ -6,8 +6,8 @@ Recomenda-se o gerador de esqueleto do projeto usando `vue-loader` com `vue-cli`
 
 ``` bash
 npm install -g vue-cli
-vue init webpack-simple hello-vue
-cd hello-vue
+vue init webpack-simple ola-vue
+cd ola-vue
 npm install
-npm run dev # pronto para ir!
+npm run dev # pronto para começar!
 ```
\ No newline at end of file
diff --git a/docs/pt/start/spec.md b/docs/pt_BR/start/spec.md
similarity index 62%
rename from docs/pt/start/spec.md
rename to docs/pt_BR/start/spec.md
index cf5823e..e1391b6 100644
--- a/docs/pt/start/spec.md
+++ b/docs/pt_BR/start/spec.md
@@ -1,6 +1,6 @@
 # Especificação do componente Vue
 
-Um arquivo `*.vue` é um formato de arquivo personalizado que usa sintaxe semelhante HTML para descrever um componente Vue. Cada arquivo `*.vue` consiste em três tipos de bloco de linguagem de nível superior: `<template>`, `<script>` e `<style>`:
+Um arquivo `*.vue` é um formato de arquivo personalizado que usa sintaxe semelhante HTML para descrever um componente Vue. Cada arquivo `*.vue` consiste em três tipos de bloco de linguagem de nível superior: `<template>`, `<script>`, `<style>` e opcionalmente blocos customizados adicionais:
 
 ```html
 <template>
@@ -22,9 +22,13 @@ Um arquivo `*.vue` é um formato de arquivo personalizado que usa sintaxe semelh
     color: red;
   }
 </style>
+
+<custom1>
+  Iso poderia ser a documentação do componente.
+</custom1>
 ```
 
-`vue-loader` analisará o arquivo, em seguida extrair cada bloco de linguagem e canaliza-lo através de outros carregadores se necessário, e finalmente montá-lo  de volta em um módulo CommonJs cujo `module.exports` seja um objeto de opções de componente Vue.js.
+`vue-loader` analisará o arquivo, extrair cada bloco de linguagem canalizá-lo através de outros carregadores se necessário, e finalmente montá-lo de volta em um módulo CommonJs cujo `module.exports` seja um objeto de opções do componente Vue.js.
 
 `vue-loader` suporta o uso de linguagens não-padrão, tais como pré-processadores CSS e linguagem que compila para HTML a partir de um template, especificando o atributo `lang` para um bloco de linguagem. Por exemplo, você pode usar SASS para o estilo do seu componente como este:
 
@@ -40,31 +44,39 @@ Mais detalhes podem ser encontrados em [Usando Pré-Processadores](../configurat
 
 #### `<template>`
 
-* Linguagem padrão: `html`.
+- Linguagem padrão: `html`.
 
-* Cada arquivo `*.vue` pode conter no máximo um bloco `<template>` por vez.
+- Cada arquivo `*.vue` pode conter no máximo um bloco `<template>` por vez.
 
-* O Conteúdo será extraído como uma string e usado como a opção `template` para o componente Vue compilado.
+- O Conteúdo será extraído como uma string e usado como a opção `template` para o componente Vue compilado.
 
 #### `<script>`
 
-* Linguagem padrão: `js` \(ES2015 é suportado automaticamente se `babel-loader` ou `buble-loader` for detectado\).
+- Linguagem padrão: `js` \(ES2015 é suportado automaticamente se `babel-loader` ou `buble-loader` for detectado\).
 
-* Cada arquivo `*.vue` pode conter no máximo um bloco de `<script>` por vez.
+- Cada arquivo `*.vue` pode conter no máximo um bloco de `<script>` por vez.
 
-* O script é executado em um ambiente CommonJs \(Como um módulo `.js` normal manipulado via webpack\), o que significa que você pode usar `require()` para requisitar outras dependências. E com ES2015 suportado, você também pode usar a sintaxe `import` e `export`.
+- O script é executado em um ambiente CommonJs \(Como um módulo `.js` normal manipulado via webpack\), o que significa que você pode usar `require()` para requisitar outras dependências. E com ES2015 suportado, você também pode usar a sintaxe `import` e `export`.
 
-* O script deve exportar um objeto de opções de componente Vue. Também é suportador exportar um construtor estendido criado por `Vue.extend()`, mas um objeto simples é preferível.
+- O script deve exportar um objeto de opções de componente Vue. Também é suportador exportar um construtor estendido criado por `Vue.extend()`, mas um objeto simples é preferível.
 
 #### `<style>`
 
-* Linguagem padrão: `css`.
+- Linguagem padrão: `css`.
+
+- Várias tags `<style>` são suportadas em um único arquivo `*.vue`.
+
+- Uma tag `<style>` pode ter atributos `scoped` ou `module` \(consulte [CSS com Escopo](../features/scoped-css.md) e [Módulos CSS](../features/css-modules.md)\)\) para ajudar encapsular o estilo para o seu componente atual. Várias tags `<style>` com diferente modos de encapsulamento pode ser misturados em um mesmo componente.
+
+- Por padrão, o conteúdo será extraído e inserido dinamicamente no `<head>` do documento atual como uma tag `<style>` usando `style-loader`. Também é possível [configurar o Webpack para que todos os estilos em todos os componentes sejam extraídos em um único arquivo CSS](../configurations/extract-css.md).
 
-* Várias tags `<style>` são suportadas em um único arquivo `*.vue`.
+### Blocos customizados
 
-* Uma tag `<style>` pode ter atributos `scoped`ou `module` \(consulte [CSS Escopado](../features/scoped-css.md) e [Módulos CSS](../features/css-modules.md)\)\) para ajudar encapsular o estilo para o seu componente atual. Várias tags `<style>` com diferente modos de encapsulamento pode ser misturados em um mesmo componente.
+> Suportado apenas em vue-loader 10.2.0+
 
-* Por padrão, o conteúdo será extraído e inserido dinamicamente no `<head>` do documento atual como uma tag `<style>` usando `style-loader`. Também é possível [configurar o Webpack para que todos os estilos em todos os componentes sejam extraídos em um único arquivo CSS](../configurations/extract-css.md).
+Blocos customizados adicionais pode ser incluídos em um arquivo `*.vue` para qualquer necessidade específica do projeto, por exemplo um bloco `<docs>`. `vue-loader` usará o nome da tag para procurar por carregadores de Webpack. Os carregadores dever ser adicionados na opção `loaders` de `vue-loader`.
+
+Para mais detalhes, veja [Blocos Customizados](../configurations/custom-blocks.md).
 
 ### Importações src
 
@@ -80,7 +92,13 @@ Tenha em mente que as importações `src` seguem as mesmas regras de resolução
 
 ```html
 <!-- importa um arquivo do pacote npm "todomvc-app-css" instalado -->
-<style src="todomvc-app-css/index.css">
+<style src="todomvc-app-css/index.css"></style>
+```
+
+As importações `src` também funcionam com blocos customizados, por exemplo:
+
+``` html
+<unit-test src="./unit-test.js"></unit-test>
 ```
 
 ### Realce de Sintaxe
diff --git a/docs/pt/workflow/linting.md b/docs/pt_BR/workflow/linting.md
similarity index 95%
rename from docs/pt/workflow/linting.md
rename to docs/pt_BR/workflow/linting.md
index 2f1865a..647c729 100644
--- a/docs/pt/workflow/linting.md
+++ b/docs/pt_BR/workflow/linting.md
@@ -2,7 +2,7 @@
 
 Você pode ter se perguntado como você analisa seu código dentro dos seus arquivos `*.vue`, uma vez que eles não são JavaScript. Vamos supor que você está usando [ESLint](http://eslint.org/) \(se você não está, deveria\).
 
-Você também precisará do [eslint-html-plugin](https://github.com/BenoitZugmeyer/eslint-plugin-html) com suporte de extração e análise estática \(linting\) do JavasScript dentro dos arquivos `*.vue`.
+Você também precisará do [eslint-plugin-html](https://github.com/BenoitZugmeyer/eslint-plugin-html) que suporte de extração e análise estática \(linting\) do JavasScript dentro dos arquivos `*.vue`.
 
 Certifique-se de incluir o plugin dentro de suas configurações ESLint:
 
diff --git a/docs/pt/workflow/production.md b/docs/pt_BR/workflow/production.md
similarity index 88%
rename from docs/pt/workflow/production.md
rename to docs/pt_BR/workflow/production.md
index c9a7e5e..2f454b8 100644
--- a/docs/pt/workflow/production.md
+++ b/docs/pt_BR/workflow/production.md
@@ -24,8 +24,8 @@ module.exports = {
         warnings: false
       }
     }),
-    // otimiza ids de módulos por contagem de ocorrência
-    new webpack.optimize.OccurenceOrderPlugin()
+    // Otimizar ids de módulo por contagem de ocorrências
+    new webpack.optimize.OccurrenceOrderPlugin()
   ]
 }
 ```
@@ -36,4 +36,4 @@ Obviamente não queremos usar estás configurações durante o desenvolvimento,
 
 2. Ou use dois arquivos de configuração do Webpack separados,  um para o desenvolvimento e outro para produção. E talvez compartilhe algumas opções comuns entre eles em um terceiro arquivo, como mostrado em [vue-hackernews-2.0](https://github.com/vuejs/vue-hackernews-2.0).
 
-Isto é com você, desde que o objetivo seja atingido
\ No newline at end of file
+Isto é com você, desde que o objetivo seja atingido.
\ No newline at end of file
diff --git a/docs/pt/workflow/testing.md b/docs/pt_BR/workflow/testing.md
similarity index 100%
rename from docs/pt/workflow/testing.md
rename to docs/pt_BR/workflow/testing.md
diff --git a/lib/gen-id.js b/lib/gen-id.js
index 1919293..e09733d 100644
--- a/lib/gen-id.js
+++ b/lib/gen-id.js
@@ -5,9 +5,9 @@ var hash = require('hash-sum')
 var cache = Object.create(null)
 var sepRE = new RegExp(path.sep.replace('\\', '\\\\'), 'g')
 
-module.exports = function genId (file, context) {
+module.exports = function genId (file, context, key) {
   var contextPath = context.split(path.sep)
   var rootId = contextPath[contextPath.length - 1]
-  file = rootId + '/' + path.relative(context, file).replace(sepRE, '/')
+  file = rootId + '/' + path.relative(context, file).replace(sepRE, '/') + (key || '')
   return cache[file] || (cache[file] = hash(file))
 }
diff --git a/lib/loader.js b/lib/loader.js
index 46aea10..dc91df6 100644
--- a/lib/loader.js
+++ b/lib/loader.js
@@ -62,7 +62,7 @@ module.exports = function (content) {
   var fileName = path.basename(filePath)
 
   var context = (this._compiler && this._compiler.context) || this.options.context || process.cwd()
-  var moduleId = 'data-v-' + genId(filePath, context)
+  var moduleId = 'data-v-' + genId(filePath, context, options.hashKey)
 
   var cssLoaderOptions = ''
   if (!isProduction && this.sourceMap && options.cssSourceMap !== false) {
diff --git a/lib/style-rewriter.js b/lib/style-rewriter.js
index b645664..ece7e0b 100644
--- a/lib/style-rewriter.js
+++ b/lib/style-rewriter.js
@@ -59,7 +59,7 @@ module.exports = function (css, map) {
   }
 
   // use the same config loading interface as postcss-loader
-  loadPostcssConfig({ webpack: this }).catch(() => {
+  loadPostcssConfig({ webpack: this }, null, { argv: false }).catch(() => {
     // postcss-load-config throws error when no config file is found,
     // but for us it's optional.
   }).then(config => {
diff --git a/lib/template-loader.js b/lib/template-loader.js
index 57a5968..02207f6 100644
--- a/lib/template-loader.js
+++ b/lib/template-loader.js
@@ -6,6 +6,9 @@ module.exports = function (content) {
   this.cacheable && this.cacheable()
   var callback = this.async()
   var opt = loaderUtils.parseQuery(this.query)
+
+  // this is never documented and should be deprecated
+  // but we'll keep it so we don't break stuff
   var vue = this.options.__vueOptions__
   if (vue && vue.template) {
     for (var key in vue.template) {
diff --git a/package.json b/package.json
index 8486354..1561546 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "vue-loader",
-  "version": "11.0.0",
+  "version": "11.1.0",
   "description": "Vue single-file component loader for Webpack",
   "main": "index.js",
   "repository": {


Test patch:
diff --git a/docs/pt/workflow/testing-with-mocks.md b/docs/pt_BR/workflow/testing-with-mocks.md
similarity index 94%
rename from docs/pt/workflow/testing-with-mocks.md
rename to docs/pt_BR/workflow/testing-with-mocks.md
index d38bd33..0b9193b 100644
--- a/docs/pt/workflow/testing-with-mocks.md
+++ b/docs/pt_BR/workflow/testing-with-mocks.md
@@ -41,8 +41,8 @@ const ExemploInjecao = require('!!vue?inject!./exemplo.vue')
 
 Observe que ele requer uma sequência de caracteres - nós estamos usando algumas [requisições de carregador webpack](https://webpack.github.io/docs/loaders.html) em linha aqui. Uma explicação rápida:
 
-* `!!` no início significa "desative todos os carregadores da configuração global";
-* `vue?inject!` significa "use o carregador de `vue`, e passe o `?inject` na consulta". Isso informa ao `vue-loader` para compilar o componente no modo injeção de dependência.
+- `!!` no início significa "desative todos os carregadores da configuração global";
+- `vue?inject!` significa "use o carregador de `vue`, e passe o `?inject` na consulta". Isso informa ao `vue-loader` para compilar o componente no modo injeção de dependência.
 
 O retorno de `ExemploInjecao` é uma função de fábrica que pode ser chamada para criar instâncias do módulo `exemplo.vue`.
 
diff --git a/test/test.js b/test/test.js
index 579789a..6153927 100644
--- a/test/test.js
+++ b/test/test.js
@@ -162,9 +162,12 @@ describe('vue-loader', function () {
 
   it('scoped style', done => {
     test({
-      entry: './test/fixtures/scoped-css.vue'
+      entry: './test/fixtures/scoped-css.vue',
+      vue: {
+        hashKey: 'foo'
+      }
     }, (window, module) => {
-      var id = 'data-v-' + hash('vue-loader/test/fixtures/scoped-css.vue')
+      var id = 'data-v-' + hash('vue-loader/test/fixtures/scoped-css.vue' + 'foo')
       expect(module._scopeId).to.equal(id)
 
       var vnode = mockRender(module, {