An open API service indexing awesome lists of open source software.

https://github.com/csbun/fis-prepackager-i18n

A i18n preprocessor for fis
https://github.com/csbun/fis-prepackager-i18n

Last synced: 10 days ago
JSON representation

A i18n preprocessor for fis

Awesome Lists containing this project

README

          

# fis-prepackager-i18n

A i18n prepackager for [fis](http://fex-team.github.io/fis-site/)/[Scrat](http://scrat.io) using [ejs](https://www.npmjs.com/package/ejs)

## Usage

### i18n

```
src
├── fis-conf.js
├── i18n-folder-name
│   ├── en.json
│   ├── zh.json
│   └── ...
├── components
│ ├── header
│ │   └── header.html
│ ├── some-section
│ │   └── some-section.html
│   └── ...
├── package.json
└── views
├── index
│   ├── index.less
│   ├── index.js
│   ├── index.html
│   └── ...
├── some
│   ├── some.html
│   └── ...
└── ...(more views)
```

### fis-conf.js

```javascript
fis.config.set('settings.prepackager.i18n', {
folder: 'i18n-folder-name',
defaultI18n: 'en',
connector: '_',
// You can use all [Ejs Options](https://www.npmjs.com/package/ejs#options) here.
ejs: {
delimiter: '%'
}
});
```

#### fis2

```javascript
fis.config.set('modules.prepackager', 'i18n');
fis.config.set('roadmap.path', [
{
// source html
reg: 'views/**/*.html',
// `isLayout` should be `TRUE`
isLayout: true
},
{
// other html `isLayout` != `TRUE`
reg: '**/*.html'
}
]);
```

#### fis3

```javascript
fis.match('*.html', {
release: '$0'
// other html `isLayout` != `TRUE`
});
fis.match('views/**/*.html', {
release: '$0',
// `isLayout` should be `TRUE`
isLayout: true
});
fis.match('::package', {
prepackager: fis.plugin('i18n')
});
```

## Example

### i18n

- en.json

```
{
"id": "EN",
"hello": "hello",
"world": "world"
}
```

- zh.json

```
{
"id": "ZH",
"hello": "你好",
"world": "世界"
}
```

### html

- components/header/header.html

```html


<%= hello %>

```

- components/some-section/some-section.html

```html


<%= world %>

```

- views/index/index.html

```html

view - index


<% if (id === 'en') { %>
here is `<%= id %>`
<% } else { %>
这里是 `<%= id %>`
<% } %>


{{{unit name="header"}}}
{{{unit name="some-section"}}}

```

### output

- views/index/index.html (defaultI18n == 'en')
- views/index/index_en.html

```html

view - index


here is `EN`



hello



world

```

- views/index/index_zh.html

```html

view - index


这里是 `ZH`



你好



世界

```