Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple Language Support + Complete Chinese Translation #48

Merged
merged 56 commits into from
Apr 18, 2018
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
0494566
dropdown - init
ulivz Apr 14, 2018
121e6ca
add nav link component to distinguish internal and external link
ulivz Apr 14, 2018
3ddca36
enhance the active state of dropdown link
ulivz Apr 14, 2018
72be30c
beautify font weight for dropdown link and clean code
ulivz Apr 14, 2018
4bccf3a
clean code
ulivz Apr 14, 2018
5ac3c2a
update doc
ulivz Apr 14, 2018
dbb7a08
update README
ulivz Apr 14, 2018
50689ea
address comments
ulivz Apr 14, 2018
6de2efa
fix jumpy link
ulivz Apr 14, 2018
a760d59
i18n - init
ulivz Apr 14, 2018
7eb2563
address comments
ulivz Apr 14, 2018
94c2236
use exact match mode for route link
ulivz Apr 14, 2018
0c53333
Merge branch 'dropdown' into i18n
ulivz Apr 14, 2018
e30c580
support configurable i18n
ulivz Apr 14, 2018
c6188b9
translate README of guide
ulivz Apr 14, 2018
d414794
tweaks translations and update the actionLink
ulivz Apr 14, 2018
8a131a9
add sidebar config for zh
ulivz Apr 14, 2018
711e772
translate basic-config and getting-started
ulivz Apr 14, 2018
34d8d78
refactor code
ulivz Apr 14, 2018
6c9e1a4
implement nested links in dropdown
ulivz Apr 14, 2018
5ca1d02
clean dropdown type
ulivz Apr 14, 2018
7c6d462
fix cursor status
ulivz Apr 14, 2018
96c30c5
chore: tweaks
ulivz Apr 15, 2018
3397dc2
Merge branch 'master' into dropdown
ulivz Apr 15, 2018
f8e10cf
Merge branch 'dropdown' into i18n
ulivz Apr 15, 2018
7ea050e
zh - translate guide/assets
ulivz Apr 15, 2018
00e6430
zh - translate guide/markdown
ulivz Apr 15, 2018
dbf07fb
zh - translate guide/using-vue
ulivz Apr 15, 2018
9506184
zh - translate guide/custom-themes
ulivz Apr 15, 2018
8a900a4
zh - translate guide/deploy
ulivz Apr 15, 2018
79eff60
zh - translate /config/
ulivz Apr 15, 2018
01ab22e
zh - translate /default-theme-config/
ulivz Apr 15, 2018
08d80b1
correct some mistakes in Chinses translation.
ulivz Apr 15, 2018
6ebbd88
refactor docs
ulivz Apr 15, 2018
eee3ac7
style: tweaks style of navbar to fully follow sidebar at mobile side.
ulivz Apr 15, 2018
a811af5
refactor Chinese translations
ulivz Apr 15, 2018
5030421
Merge branch 'master' into dropdown
ulivz Apr 16, 2018
96a6cc6
refactor: address comments and clean duplicate code due to merging.
ulivz Apr 16, 2018
7f440d0
style: use more exact class selector, and clean old element selector …
ulivz Apr 16, 2018
069d677
Merge branch 'dropdown' into multiple-language-support
ulivz Apr 16, 2018
645c22d
chore: fix merge conflict
ulivz Apr 16, 2018
028669b
Merge branch 'master' into multiple-language-support
ulivz Apr 16, 2018
2d76589
support multiple langs for title and homepage link
ulivz Apr 17, 2018
ddf759f
handle for lang and description - dev & build
ulivz Apr 17, 2018
c779dde
handle description meta at dev mode
ulivz Apr 17, 2018
5c7190d
Merge branch 'master' into multiple-language-support
ulivz Apr 17, 2018
e64fd82
translate latest updated doc
ulivz Apr 17, 2018
4e769a6
Complete proofreading
ulivz Apr 17, 2018
beac14f
feat: Auto-generated language dropdown if user configured langs
ulivz Apr 17, 2018
b8dc3f0
feat: Try to stay on the current page When user switch the language
ulivz Apr 17, 2018
f2fb2d9
chore: clean code
ulivz Apr 17, 2018
4f1b004
chore: clean code
ulivz Apr 17, 2018
c5a2079
fix: typo
ulivz Apr 17, 2018
961cf2d
feat: support override description meta with yaml front matter
ulivz Apr 18, 2018
1c31f82
replace those IE11-incompatible API with ES5
ulivz Apr 18, 2018
b794126
docs: document config.host for zh-CN
ulivz Apr 18, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
correct some mistakes in Chinses translation.
  • Loading branch information
ulivz committed Apr 15, 2018
commit 08d80b14006f186d11117d5e39e4e25ed17ad5fc
6 changes: 3 additions & 3 deletions docs/zh/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ features:
- title: 简洁至上
details: 以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。
- title: Vue驱动
details: 享受 Vue + webpack 的开发体验, Markdown 中使用 Vue 组件,同时可以使用 Vue 来开发自定义主题。
details: 享受 Vue + webpack 的开发体验,可以在 Markdown 中使用 Vue 组件,又可以使用 Vue 来开发自定义主题。
- title: 高性能
details: VuePress 为每个页面预渲染生成静态的 HTML,同时在页面被加载的时候,将作为 SPA 运行。
details: VuePress 会为每个页面预渲染生成静态的 HTML,同时,每个页面被加载的时候,将作为 SPA 运行。
footer: MIT Licensed | Copyright © 2018-present Evan You
---

Expand All @@ -25,6 +25,6 @@ echo "# Hello VuePress!" > README.md
# 开始写作
vuepress dev .

# build 静态文件
# 构建静态文件
vuepress build .
```
4 changes: 2 additions & 2 deletions docs/zh/config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ sidebar: auto
- 类型: `string`
- 默认值: `undefined`

网站的标题,它将会被用作所有页面标题的前缀,同时,默认主题它将显示在 navbar 上。
网站的标题,它将会被用作所有页面标题的前缀,同时,默认主题下,它将显示在导航栏(navbar上。

### description

Expand Down Expand Up @@ -108,7 +108,7 @@ module.exports = {

**也可以参考:**

- [默认主题配置](../default-theme-config/)。
- [默认主题](../default-theme-config/)。

## Markdown

Expand Down
16 changes: 8 additions & 8 deletions docs/zh/default-theme-config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ sidebar: auto

## Homepage

默认的主题提供了一个 homepage 的布局 (用于 [这个网站的主页](/))。想要使用它,需要在你的根级 `README.md` 的 YAML front matter 指定 `home: true`。以下是这个网站实际使用的数据:
默认的主题提供了一个 homepage 的布局 (用于 [这个网站的主页](/zh/))。想要使用它,需要在你的根级 `README.md` 的 YAML front matter 指定 `home: true`。以下是这个网站实际使用的数据:

``` yaml
---
Expand All @@ -29,7 +29,7 @@ footer: MIT Licensed | Copyright © 2018-present Evan You
---
```

任何 front matter 之后额外的内容将会以普通的 markdown 被渲染,并插入到 `features` 的后面。
任何 `YAML frontmatter` 之后额外的内容将会以普通的 markdown 被渲染,并插入到 `features` 的后面。

## Navbar Links

Expand Down Expand Up @@ -68,7 +68,7 @@ module.exports = {

## Sidebar

想要使 sidebar 生效, 需要设置 `themeConfig.sidebar`. 基本的配置,需要一个包含了多个链接的数组:
想要使 sidebar 生效需要设置 `themeConfig.sidebar`基本的配置,需要一个包含了多个链接的数组:

``` js
// .vuepress/config.js
Expand All @@ -83,11 +83,11 @@ module.exports = {
}
```

你可以省略 `.md` 拓展名,同时以 `/` 结尾的路径将会被视为 `*/README.md`,这个链接的文字将会自动获取到(无论你是声明为页面的第一个 header,还是明确地在 YAML frontmatter 中指定页面的标题)。如果你想要显示地指定链接的文字,使用一个格式为 `[link, text]` 的数组。
你可以省略 `.md` 拓展名,同时以 `/` 结尾的路径将会被视为 `*/README.md`,这个链接的文字将会被自动获取到(无论你是声明为页面的第一个 header,还是明确地在 `YAML frontmatter` 中指定页面的标题)。如果你想要显示地指定链接的文字,使用一个格式为 `[link, text]` 的数组。

### Nested Header Links

默认情况下,侧边栏(sidebar)会自动地显示由当前页面标题(header)组成的的链接,并按照页面本身的结构进行嵌套,你可以通过 `themeConfig.sidebarDepth` 来修改它的行为。默认的深度是 `1`,它将提取到 `h2` 的标题,设置成 `0` 将会禁用标题(header)链接,同时,最大的深度为 `2`,它将同时提取 `h2` 和 `h3` 标题。
默认情况下,侧边栏(sidebar)会自动地显示由当前页面标的题(headers)组成的的链接,并按照页面本身的结构进行嵌套,你可以通过 `themeConfig.sidebarDepth` 来修改它的行为。默认的深度是 `1`,它将提取到 `h2` 的标题,设置成 `0` 将会禁用标题(headers)链接,同时,最大的深度为 `2`,它将同时提取 `h2` 和 `h3` 标题。

也可以使用 `YAML frontmatter` 来为某个页面重写此值:

Expand Down Expand Up @@ -141,7 +141,7 @@ module.exports = {
└─ four.md
```

接着, 配置以下的侧边栏(sidebar)配置:
接着,遵循以下的侧边栏(sidebar)配置:

``` js
// .vuepress/config.js
Expand Down Expand Up @@ -232,12 +232,12 @@ $codeBgColor = #282c34

## Custom Layout for Specific Pages

默认情况下,每个 `*.md` 文件将会被渲染在一个 `<div class="page">` 容器中,同时还有 sidebar自动生成的编辑链接,以及上一页/下一页的链接。如果你想要使用一个完全自定义的组件来代替当前的页面(而只保留导航栏),你可以再次使用 YAML front matter 来指定这个组件。
默认情况下,每个 `*.md` 文件将会被渲染在一个 `<div class="page">` 容器中,同时还有侧边栏(sidebar)、自动生成的编辑链接,以及上一篇 / 下一篇文章的链接。如果你想要使用一个完全自定义的组件来代替当前的页面(而只保留导航栏),你可以再次使用 `YAML frontmatter` 来指定这个组件。

``` yaml
---
layout: SpecialLayout
---
```

这将会会当前的页面渲染 `.vuepress/components/SpecialLayout/vue` 布局。
这将会为当前的页面渲染 `.vuepress/components/SpecialLayout/vue` 布局。
18 changes: 9 additions & 9 deletions docs/zh/guide/README.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
# 介绍

VuePress 由两部分组成:一个是由 Vue 驱动的主题系统带来的静态网站生成器,一个是为书写技术而优化的默认主题它的诞生初衷是为了助力 Vue 以及其子项目书写文档的需求
VuePress 由两部分组成:一个是由 Vue 驱动的极简主题系统带来的静态网站生成器,一个是为书写技术而优化的默认主题它的诞生初衷是为了助力 Vue 及其子项目书写文档的需求

每一个由 VuePress 生成的页面都有自己预渲染好的 HTML,因此提供了非常好的加载性能和搜索引擎优化(SEO)。同时,一旦页面被加载,Vue 将接管这些静态内容,并将其转换成一个完整的单页应用程序(SPA),其他的页面都将在用户浏览到的时候按需加载。
每一个由 VuePress 生成的页面都有自己预渲染好的 HTML,因此带来了非常好的加载性能和搜索引擎优化(SEO)。同时,一旦页面被加载,Vue 将接管这些静态内容,并将其转换成一个完整的单页应用程序(SPA),其他的页面都将在用户浏览到的时候按需加载。

## 它是如何工作的?

事实上,一个 VuePress 网站是一个由 [Vue](http://vuejs.org/)、[Vue Router](https://github.com/vuejs/vue-router) 和 [webpack](http://webpack.js.org/) 驱动的单页应用。如果你以前使用过 Vue 的话,当你在开发一个自定义主题的时候,你将会回到曾经那非常熟悉的开发体验,你甚至可以使用 Vue DevTools 去调试你的自定义主题。
事实上,一个 VuePress 网站是一个由 [Vue](http://vuejs.org/)、[Vue Router](https://github.com/vuejs/vue-router) 和 [Webpack](http://webpack.js.org/) 驱动的单页应用。如果你以前使用过 Vue 的话,当你在开发一个自定义主题的时候,你将会回到曾经那非常熟悉的开发体验,你甚至可以使用 Vue DevTools 去调试你的自定义主题。

在构建过程中,我们创建了一个服务端渲染(SSR)版本的应用,同时在访问每一个路由的时候会渲染对应的HTML,这种做法的灵感来源于 [Nuxt](https://nuxtjs.org/) 的 `nuxt generate` 命令,以及其他的一些项目,如 [Gatsby](https://www.gatsbyjs.org/).

## 特性

- [内置的 Markdown 拓展](./markdown.md),为技术文档而生
- [在 Markdown 文件使用 Vue 的能力](./using-vue.md)
- [在 Markdown 文件使用 Vue 组件的能力](./using-vue.md)
- [Vue 驱动的自定义主题系统](./custom-themes)
- 支持 PWA
- 集成了 Google Analytics
- 一个默认的主题包含:
- 响应式布局
- 可选的主页
- 简洁的开箱即用的标题搜索
- 可以自定义的 navbarsidebar
- 可以自定义的导航栏(navbar)和侧边栏(sidebar
- 自动生成的 GitHub 链接和页面的编辑链接

## 待实现的特性
## Todo Features

VuePress 仍然处于开发中,这里有一个目前还不支持,但已经在计划中的特性:
VuePress 仍然处于开发中,这里有一些目前还不支持、但已经在计划中的特性:

- 多语言的支持
- 集成 Algolia DocSearch
Expand All @@ -38,13 +38,13 @@ VuePress 仍然处于开发中,这里有一个目前还不支持,但已经

### Nuxt

VuePress 能做的事情,Nuxt 同样能胜任,但它是为构建应用程序而生的,而 VuePress 则专注在以内容为中心的静态网站上,同时提供了一些为技术文档定制的开箱即用的特性。
VuePress 能做的事情,Nuxt 同样能胜任,但 Nuxt 是为构建应用程序而生的,而 VuePress 则专注在以内容为中心的静态网站上,同时提供了一些为技术文档定制的开箱即用的特性。

### Docsify / Docute

这两个项目同样都是 Vue 驱动的,然而它们都是完全的运行时驱动,因此对 SEO 不够友好。如果你并不关注 SEO,同时也不想因为安装依赖而弄糊涂,它们仍然是非常好的选择!

### Hexo

Hexo 一直驱动着 Vue 的文档 ———— 事实上,在决定开始从 Hexo 迁移到 VuePress 之前,我们还有很长的路要走。Hexo 最大的问题在于他的主题系统太过于静态以及过度地依赖纯字符串,而我们十分希望能够好好利用 Vue 来处理我们的布局和交互,同时,Hexo 的 markdown 渲染的配置也不是最灵活的。
Hexo 一直驱动着 Vue 的文档 —— 事实上,在决定开始从 Hexo 迁移到 VuePress 之前,我们还有很长的路要走。Hexo 最大的问题在于他的主题系统太过于静态以及过度地依赖纯字符串,而我们十分希望能够好好地利用 Vue 来处理我们的布局和交互,同时,Hexo 的 Markdown 渲染的配置也不是最灵活的。

8 changes: 4 additions & 4 deletions docs/zh/guide/assets.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

## Relative URLs

所有的 Markdown 文件将会被 webpack 编译成 Vue 组件,因此你可以,并且**应该更倾向于**使用相对路径来引用所有的静态资源:
所有的 Markdown 文件都会被 webpack 编译成 Vue 组件,因此你可以,并且**应该更倾向于**使用相对路径来引用所有的静态资源:

``` md
![An image](./image.png)
```

同样地, `*.vue` 文件的模板中将一样的方式工作,图片将会被 `url-loader` 和 `file-loader` 处理,在运行生成静态文件的构建任务时,文件会被复制到正确的位置。
同样地,这在 `*.vue` 文件的模板中一样可以工作,图片将会被 `url-loader` 和 `file-loader` 处理,在运行生成静态文件的构建任务时,文件会被复制到正确的位置。

除此之外,你也使用 `-` 前缀来明确地指出这是一个 webpack 的模块请求,这将允许你通过 webpack 别名来引用文件或者 npm 的依赖:
除此之外,你也使用 `~` 前缀来明确地指出这是一个 webpack 的模块请求,这将允许你通过 webpack 别名来引用文件或者 npm 的依赖:

``` md
![Image from alias](~@alias/image.png)
Expand Down Expand Up @@ -47,4 +47,4 @@ module.exports = {

值得一提的是,你不仅可以在你组件中使用上述的语法,在 Markdown 文件中亦是如此。

补充一句,一个 `base` 路径一旦被设置,它将会自动地作为前缀插入到所有 `.vuepress/config.js` 中的资源路径中
补充一句,一个 `base` 路径一旦被设置,它将会自动地作为前缀插入到 `.vuepress/config.js` 中所有以 `/` 开始的资源路径中
14 changes: 7 additions & 7 deletions docs/zh/guide/basic-config.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# 配置
# 基本配置

## 配置文件

如果没有任何配置,页面将会是非常小的,用户也无法浏览你的网站。为了自定义你的网站,让我们首先在你的文档目录下创建一个 `.vuepress` 目录,所以 VuePress 相关的文件将会被放在这里。
如果没有任何配置,这个网站将会是非常局限的,用户也无法在网站上自由导航。为了自定义你的网站,让我们首先在你的文档目录下创建一个 `.vuepress` 目录,所有 VuePress 相关的文件将会被放在这里。

配置 VuePress 必要的文件是 `.vuepress/config.js`,它应该导出一个 JavaScript 对象
一个 VuePress 网站必要的配置文件是 `.vuepress/config.js`,它应该导出一个 JavaScript 对象

``` js
module.exports = {
Expand All @@ -13,13 +13,13 @@ module.exports = {
}
```

如果你运行起开发服务器,你应该能看到一个页面,它有一个 header,里面包含一个标题和一个搜索框。VuePress 内置了标题搜索 —— 它自动为所有页面的标题、`h2` 和 `h3` 构建了一个简单的搜索索引。
如果你运行起开发服务器,你应该能看到一个页面,它包含一个页头,里面包含一个标题和一个搜索框。VuePress 内置了基于 headers 的搜索 —— 它自动为所有页面的标题(`h1`,或者是通过 `YAML frontmatter` 设置的 `title`)、`h2` 和 `h3` 构建了一个简单的搜索索引。

参见 [配置](../../config/) 来查看所有可配置的选项。
参见 [配置](../config/) 来查看所有可配置的选项。


## 主题配置

一个 VuePress 应该负责整个网站的布局和交互细节。VuePress 自带了一个默认的主题(正是你现在再看的),它是为技术文档而设计的。同时,它提供了一些选项,让你可以去自定义 navbar、 sidebar 和 homepage 等,详情请参见 [默认主题配置](../../default-theme-config/) 。
一个 VuePress 主题应该负责整个网站的布局和交互细节。VuePress 自带了一个默认的主题(正是你现在所看到的),它是为技术文档而设计的。同时,默认主题提供了一些选项,让你可以去自定义 navbar、 sidebar 和 homepage 等,详情请参见 [默认主题](../default-theme-config/) 。

如果你想去开发一个自定义主题,参见 [自定义主题](./custom-themes.md)。
如果你想开发一个自定义主题,可以参考 [自定义主题](./custom-themes.md)。
12 changes: 6 additions & 6 deletions docs/zh/guide/custom-themes.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# 自定义主题

::: tip
主题组件受到同样的 [浏览器的 API 访问限制](./using-vue.md#browser-api-access-restrictions)
主题组件受到同样的 [浏览器的 API 访问限制](./using-vue.md#browser-api-access-restrictions)
:::

VuePress 使用单文件组件来构建自定义主题。想要使用一个自定义主题,首先在你的文档根目录新建一个 `.vuepress/theme` 文件夹,然后新建一个 `Layout.vue` 文件:
VuePress 使用单文件组件来构建自定义主题。想要开发一个自定义主题,首先在你的文档根目录新建一个 `.vuepress/theme` 文件夹,然后新建一个 `Layout.vue` 文件:

```
.
Expand All @@ -17,9 +17,9 @@ VuePress 使用单文件组件来构建自定义主题。想要使用一个自

## 网站和页面的元数据

`Layout` 组件将会对每一个文档目录下的 `.md` 执行以此,同时,整个网站以及特定页面的元数据将分别暴露为 `this.$site` 和 `this.$page` 属性,它们将会被注入到每一个当前应用的组件中。
`Layout` 组件将会对每一个文档目录下的 `.md` 执行一次,同时,整个网站以及特定页面的元数据将分别暴露为 `this.$site` 和 `this.$page` 属性,它们将会被注入到每一个当前应用的组件中。

这是这个特有的网站的 `$site` 的值:
这是你现在看到的这个网站的 `$site` 的值:

``` json
{
Expand All @@ -37,7 +37,7 @@ VuePress 使用单文件组件来构建自定义主题。想要使用一个自
}
```

`title`, `description` 和 `base` 会从对应的 `.vuepress/config.js` 分别赋值过来,`pages` 是一个包含了每个页面元数据对象的数据,包括它的路径、页面标题(明确地通过 YAML frontmatter 指定,或者通过该页面的第一个标题取到),以及所有源文件中的 YAML frontmatter 的数据。
`title`, `description` 和 `base` 会从对应的 `.vuepress/config.js` 分别复制过来,`pages` 是一个包含了每个页面元数据对象的数据,包括它的路径、页面标题(明确地通过 YAML frontmatter 指定,或者通过该页面的第一个标题取到),以及所有源文件中的 YAML frontmatter 的数据。

下面的这个对象是你正在看的这个页面的 `$page` 的值:

Expand Down Expand Up @@ -70,7 +70,7 @@ VuePress 使用单文件组件来构建自定义主题。想要使用一个自

主题可以以 Vue 单文件组件的格式、以 `vuepress-theme-xxx` 的名称发布到 npm 上。

想要使用一个来自 npm dependency 的主题,需要在 `.vuepress/config.js` 完善 `theme` 的选项
想要使用一个来自 npm dependency 的主题,需要在 `.vuepress/config.js` 完善 `theme` 选项

``` js
module.exports = {
Expand Down
8 changes: 4 additions & 4 deletions docs/zh/guide/deploy.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# 部署

下述的指南,假定你将文档放置在项目的 `docs` 目录中,并使用默认的构建输出位置。
下述的指南,将假定你将文档放置在项目的 `docs` 目录中,并使用默认的构建输出位置。

## GitHub Pages

1. 将 `.vuepress/config.js` 的 `base` 设置成你仓库的名字,举个例子,如果你的仓库是 `https://github.com/foo/bar`, 部署的页面将会通过 `https://foo.github.io/bar` 来访问,此时,你应该将 `base` 设置为 `"/bar/"`。
2. 在你的项目中运行:

``` bash
# build
# 构建静态文件
vuepress build docs

# 导航到你 build 输出的的目录
# 切换到你的输出目录
cd docs/.vuepress/dist

git init
Expand Down Expand Up @@ -42,4 +42,4 @@ git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages
- **Build Command:** `npm run build-docs` 或者 `yarn build-docs`
- **Publish directory:** `docs/.vuepress/dist`

3. 点击 deploy 按钮!
3. 点击 deploy 按钮
Loading