
# ButterBox Website for 2026... and beyond!

Welcome to our new site, built on Docusaurus. This integrates our previous simple Jekyll site and our documentation work from Gitbook into a single site. It also provides a blog capability, and built-in capability for localization.

## Localization

All localizations (currently en, es, ru and zh-Hans) are under the i18n/ folder structure

Key files for localization are:

- English Markdown docs: docs/
- homepage and general strings: i18n/<locale>/code.json
- navbar: i18n/<locale>/docusaurus-theme-classic/navbar.json
- footer: i18n/<locale>/docusaurus-theme-classic/footer.json
- localization markdown docs: i18n/<locale>/docusaurus-plugin-content-docs/current/

### Locale commands

To update translation key values:

`npm run write-translations -- --locale <locale>`

By default, write-translate only appends new values. To also update existing values:
- Note this will overwrite **all** JSON stored translations to English.

`docusaurus write-translations --locale <locale> --overrride`

To updated po4a consolidated .pot and .po files from English markdown files (with po4a tool installed):

`po4a po4a.conf --no-translations`

To update localization markdown files from po4a consolidated .po files (with po4a tool installed):

`po4a po4a.conf --no-update`

To run the site in a specific locale:

`npm run start -- --locale <locale>`

To build the static site for all locales:

`npm run build`

### Localization mapping

Below is a rough mapping from the old Jekyll site i18n strings file fields into the new i18n/en/code.json file, for the main page.

- home.subtitle2 = from the top-level title
- home.whatisbutterbox = butter_box.device_image_caption
- home.section1.title = butter_box.explanation_header
- home.section1.description = butter_box.explanation
- home.learnmore = butter_box.learn_more
- home.getbutter.title = butter_box.get_your_own_header
- home.getbutter.description = butter_box.get_your_own
- home.getintouch = butter_box.contact_cta
- home.makebutter.title = butter_box.make_your_own_header
- home.makebutter.description = butter_box.make_your_own
- home.getcode.title = butter_box.make_your_own_from_scratch
- home.getsource.button = butter_box.repo_cta

