Open Project for a Better Understanding of Cameroon and its People
# camerounhistoire.org
A bilingual (English/French), collaboratively authored, open history of Cameroon — from the earliest peopling of the territory to the making of its present regions, departments, and arrondissements. Structurally inspired by open history texts such as *The American Yawp*; editorially centred on Cameroonian voices, sources, and questions.
Static site: plain HTML, CSS, and JavaScript. No build step, no server dependency, relative paths throughout. Open `camerounhistoire.html` directly in a browser, or host the folder as-is under `camerounhistoire.org` (an `index.html` redirect is included).
## Structure
```
C:\cameroon\
├── camerounhistoire.html Main site (all sections, single page, hash routing)
├── index.html Redirect to camerounhistoire.html for hosting
├── README.md This file
├── GOVERNANCE.md Editorial governance note
├── assets\
│ ├── logo.svg Custom seal logo (also inlined in the header)
│ └── favicon.svg
├── data\ ALL editable content lives here (bilingual)
│ ├── content.js Interface strings + section prose (window.CH_CONTENT)
│ ├── chapters.js The 12 chapters (window.CH_CHAPTERS)
│ ├── contributors.js Contributor profiles (window.CH_CONTRIBUTORS)
│ └── updates.js Revision/update log (window.CH_UPDATES)
├── styles\
│ └── main.css Design system, light/dark themes, responsive layout
└── scripts\
└── main.js i18n rendering, theme, routing, mobile nav
```
## Editing bilingual content
Content is fully separated from layout. Every text field in `data/` is an object with two keys:
```js
title: {
en: "German Kamerun",
fr: "Le Kamerun allemand"
}
```
Edit the text, never the key names. The interface re-renders both languages from these objects; nothing in the HTML needs to change. Please write both languages as polished parallel prose — the project treats neither as a translation of the other.
## Adding a …