unimal-jp / spear

The spear OSS repository
https://late-cloud-6411.spearly.app
MIT License
10 stars 1 forks source link

Fix: Support i18n's default fallback. #153

Closed mantaroh closed 1 year ago

mantaroh commented 1 year ago

What is this ?

This PR fix the #151 issue.

Current Spear doesn't generate the i18n default fallback page.
After landing this PR, the generated result page structure is the following:

tests/i18n-test/dist
├── en
│   ├── articles
│   │   └── index.html
│   ├── assets
│   │   ├── css
│   │   │   └── main.css
│   │   ├── fonts
│   │   │   └── OpenSans-Regular.ttf
│   │   └── js
│   │       └── main.js
│   ├── images
│   │   └── logo.png
│   └── index.html
├── index.html
└── jp
    ├── articles
    │   └── index.html
    ├── assets
    │   ├── css
    │   │   └── main.css
    │   ├── fonts
    │   │   └── OpenSans-Regular.ttf
    │   └── js
    │       └── main.js
    ├── images
    │   └── logo.png
    └── index.html

The index.html of top directory is the fallback page. This fallback page redirect to default language's index.html. This mean that spear generate the following HTML:

<!DOCTYPE html>
<html lang="en">
<head>

  <meta http-equiv="refresh" content="0; url=/jp/">
</head><body></body>
</html>%   

これはなに?

151 の修正PRです。

現時点で Spear はデフォルト言語へのフォールバックページを生成していません。 このPR以降では、生成されたページの構造は以下のようになります。

tests/i18n-test/dist
├── en
│   ├── articles
│   │   └── index.html
│   ├── assets
│   │   ├── css
│   │   │   └── main.css
│   │   ├── fonts
│   │   │   └── OpenSans-Regular.ttf
│   │   └── js
│   │       └── main.js
│   ├── images
│   │   └── logo.png
│   └── index.html
├── index.html
└── jp
    ├── articles
    │   └── index.html
    ├── assets
    │   ├── css
    │   │   └── main.css
    │   ├── fonts
    │   │   └── OpenSans-Regular.ttf
    │   └── js
    │       └── main.js
    ├── images
    │   └── logo.png
    └── index.html

トップディレクトリの index.html はフォールバックページです。このフォールバックページはデフォルト言語の index.html へリダイレクトします。生成されるページは以下のようになります。

<!DOCTYPE html>
<html lang="en">
<head>

  <meta http-equiv="refresh" content="0; url=/jp/">
</head><body></body>
</html>%