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

https://github.com/acecentre/speakbook

Redistributing and building on Patrick Joyce's SpeakBook project
https://github.com/acecentre/speakbook

aac alternative-communication assistive-technology paper-based poeditor vuejs

Last synced: 6 months ago
JSON representation

Redistributing and building on Patrick Joyce's SpeakBook project

Awesome Lists containing this project

README

          

---
title: SpeakBook Index Page
description: This is a project to build a toolchain for multi-lingual PDF's. Initial document is SpeakBook; a low-tech communication chart and book.
---

SpeakBook

# Table of Contents

- [Introduction](#introduction)
- [Complete Translatons](#complete-translatons)
- [πŸ‡¬πŸ‡§ English](#english)
- [πŸ‡ΉπŸ‡· Turkish](#turkish)
- [πŸ‡ΏπŸ‡¦ Afrikaans](#afrikaans)
- [πŸ‡©πŸ‡ͺ German](#german)
- [πŸ‡΅πŸ‡Ή Portuguese](#portuguese)
- [πŸ‡§πŸ‡¬ Bulgarian](#bulgarian)
- [πŸ‡²πŸ‡Ή Maltese](#maltese)
- [πŸ‡·πŸ‡Έ Serbian](#serbian)
- [Needing "Printing Instructions" (but complete otherwise)](#needing-printing-instructions-but-complete-otherwise)
- [πŸ‡ΈπŸ‡ͺ Swedish](#swedish)
- [πŸ‡ͺπŸ‡Έ Spanish](#spanish)
- [πŸ‡«πŸ‡· French](#french)
- [πŸ‡²πŸ‡Ώ Zulu](#zulu)
- [Needs a proof reader](#needs-a-proof-reader)

- [πŸ‡¨πŸ‡³ Chinese Simplified](#chinese-simplified)
- [πŸ‡²πŸ‡Ώ Arabic](#arabic)
- [πŸ‡΅πŸ‡° Urdu](#urdu)
- [πŸ‡΅πŸ‡± Polish](#polish)
- [πŸ‡¦πŸ‡² Armenian](#armenian)
- [πŸ‡­πŸ‡· Croatian](#croatian)
- [πŸ‡³πŸ‡Ώ Maori](#maori)

- [How do I create a new version for my language - or improve a language translation](#how-do-i-create-a-new-version-for-my-language---or-improve-a-language-translation)
- [I want it to do **\_** or can it print upside down?](#i-want-it-to-do-_____-or-can-it-print-upside-down)
- [Technical Background](#technical-background)
- [Layout](#layout)
- [Package scripts](#package-scripts)
- [Script to update all files from POEditor](#script-to-update-all-files-from-poeditor)

## Introduction

This is a repository to hold the working versions of [Patrick Joyce's SpeakBook project](./archive). We aim to provide a platform for crowd-sourced version control of future PDF's here. More info (_and the current final releases_) can be found at the Ace Centre's project page [here](http://acecentre.org.uk/project/speakbook/).

The current _in-progress_ versions (Note: will only look as intended in Chrome. We recommend looking at the PDF builds):

## Complete Translatons

### English

πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

- [Color-Blind Friendly](/speakbook/) - πŸ“„ [A4 PDF](/speakbook/index.pdf)
- [Colour Version](/speakbook/classic.html) - πŸ“„ [A4 PDF](/speakbook/classic.pdf)
- [Printing Instructions](/speakbook/printing-instructions.html) - πŸ“„ [A4 PDF](/speakbook/printing-instructions.pdf)

[Complete Zipped package with US Letter size](/speakbook/en-speakbook.zip)

With thanks to Suzanne Guerin and her colleagues for finding the mistake with the circles/triangles and cyan/green dots!

### Turkish

πŸ‡ΉπŸ‡·

- [Color-Blind Friendly](/tr/speakbook/) - πŸ“„ [A4 PDF](/tr/speakbook/index.pdf)
- [Colour Version](/tr/speakbook/classic.html) - πŸ“„ [A4 PDF](/tr/speakbook/classic.pdf)
- [Printing Instructions](/tr/speakbook/printing-instructions.html) - πŸ“„ [A4 PDF](/tr/speakbook/printing-instructions.pdf)

[Complete Zipped package with US Letter size](/tr/speakbook/tr-speakbook.zip)

**Credits** Ersin Sinay

### German

πŸ‡©πŸ‡ͺ

- [Color-Blind Friendly](/de/speakbook/) - πŸ“„ [A4 PDF](/de/speakbook/index.pdf)
- [Colour Version](/de/speakbook/classic.html) - πŸ“„ [A4 PDF](/de/speakbook/classic.pdf)
- [Printing Instructions](/de/speakbook/printing-instructions.html) - πŸ“„ [A4 PDF](/de/speakbook/printing-instructions.pdf)

[Complete Zipped package with US Letter size](/de/speakbook/de-speakbook.zip)

**Credits** [Julius Deutsch, kommhelp e.V.](mailto:j.deutsch@kommhelp.de), Michael Ritson, Ace Centre, UK.

### Afrikaans

πŸ‡ΏπŸ‡¦

- [Color-Blind Friendly](/af/speakbook/) - πŸ“„ [A4 PDF](/af/speakbook/index.pdf)
- [Colour Version](/af/speakbook/classic.html) - πŸ“„ [A4 PDF](/af/speakbook/classic.pdf)
- [Printing Instructions](/af/speakbook/printing-instructions.html) - πŸ“„ [A4 PDF](/af/speakbook/printing-instructions.pdf)

[Complete Zipped package with US Letter size](/af/speakbook/af-speakbook.zip)

**Credits** Emma Emmerich, Inclusive Solutions.

### Portuguese

πŸ‡΅πŸ‡Ή

- [Color-Blind Friendly](/po/speakbook/) - πŸ“„ [A4 PDF](/po/speakbook/index.pdf)
- [Colour Version](/po/speakbook/classic.html) - πŸ“„ [A4 PDF](/po/speakbook/classic.pdf)
- [Printing Instructions](/po/speakbook/printing-instructions.html) - πŸ“„ [A4 PDF](/po/speakbook/printing-instructions.pdf)

[Complete Zipped package with US Letter size](/po/speakbook/po-speakbook.zip)

**Credits** HΓ©lio LourenΓ§o, Ace Centre UK

### Maltese

πŸ‡²πŸ‡Ή

- [Color-Blind Friendly](/mt/speakbook/) - πŸ“„ [A4 PDF](/mt/speakbook/index.pdf)
- [Colour Version](/mt/speakbook/classic.html) - πŸ“„ [A4 PDF](/mt/speakbook/classic.pdf)
- [Printing Instructions](/mt/speakbook/printing-instructions.html) - πŸ“„ [A4 PDF](/mt/speakbook/printing-instructions.pdf)

[Complete Zipped package with US Letter size](/mt/speakbook/mt-speakbook.zip)

**Credits** Martina Zarb, Mariah Amber Busuttil, Jamie Said, Access to Communication and Technology Unit (ACTU), Malta

### Serbian

πŸ‡·πŸ‡Έ

- [Color-Blind Friendly](/sr/speakbook/) - πŸ“„ [A4 PDF](/sr/speakbook/index.pdf)
- [Colour Version](/sr/speakbook/classic.html) - πŸ“„ [A4 PDF](/sr/speakbook/classic.pdf)
- [Printing Instructions](/sr/speakbook/printing-instructions.html) - πŸ“„ [A4 PDF](/sr/speakbook/printing-instructions.pdf)

[Complete Zipped package with US Letter size](/sr/speakbook/sr-speakbook.zip)

**Credits** Marijana

### Bulgarian

πŸ‡§πŸ‡¬

**NB: Work in progress**

- [Color-Blind Friendly](/bg/speakbook/) - πŸ“„ [A4 PDF](/bg/speakbook/index.pdf)
- [Colour Version](/bg/speakbook/classic.html) - πŸ“„ [A4 PDF](/bg/speakbook/classic.pdf)
- [Printing Instructions](/bg/speakbook/printing-instructions.html) - πŸ“„ [A4 PDF](/bg/speakbook/printing-instructions.pdf)

[Complete Zipped package with US Letter size](/bg/speakbook/bg-speakbook.zip)

**Credits** Evgeniya Hristova

## Needing "Printing Instructions" (but complete otherwise)

### Swedish

πŸ‡ΈπŸ‡ͺ

- [Color-Blind Friendly](/sv/speakbook/) - πŸ“„ [A4 PDF](/sv/speakbook/index.pdf)
- [Colour Version](/sv/speakbook/classic.html) - πŸ“„ [A4 PDF](/sv/speakbook/classic.pdf)

[Complete Zipped package with US Letter size](/sv/speakbook/sv-speakbook.zip)

### Spanish

πŸ‡ͺπŸ‡Έ

- [Color-Blind Friendly](/es/speakbook/) - πŸ“„ [A4 PDF](/es/speakbook/index.pdf)
- [Colour Version](/es/speakbook/classic.html) - πŸ“„ [A4 PDF](/es/speakbook/classic.pdf)

[Complete Zipped package with US Letter size](/es/speakbook/es-speakbook.zip)

### French

πŸ‡«πŸ‡·

- [Color-Blind Friendly](/fr/speakbook/) - πŸ“„ [A4 PDF](/fr/speakbook/index.pdf)
- [Colour Version](/fr/speakbook/classic.html) - πŸ“„ [A4 PDF](/fr/speakbook/classic.pdf)

[Complete Zipped package with US Letter size](/fr/speakbook/fr-speakbook.zip)

**Credits** Michael Ritson, Ace Centre, UK.

### Zulu

πŸ‡²πŸ‡Ώ

- [Color-Blind Friendly](/zu/speakbook/) - πŸ“„ [A4 PDF](/zu/speakbook/index.pdf)
- [Colour Version](/zu/speakbook/classic.html) - πŸ“„ [A4 PDF](/zu/speakbook/classic.pdf)

[Complete Zipped package with US Letter size](/zu/speakbook/zu-speakbook.zip)

**Credits** Sipho Sibanda, Inclusive Solutions

## Needs a proof reader

### Chinese Simplified

πŸ‡¨πŸ‡³

NB: We really are not sure how speakbook would work in Chinese. Maybe we need to strip out the finger spelling page - and spelling e-tran style page.

- [Color-Blind Friendly](/zh-CN/speakbook/) - πŸ“„ [A4 PDF](/zh-CN/speakbook/index.pdf)
- [Colour Version](/zh-CN/speakbook/classic.html) - πŸ“„ [A4 PDF](/zh-CN/speakbook/classic.pdf)

[Complete Zipped package with US Letter size](/zh-CN/speakbook/zh-CN-speakbook.zip)

### Arabic

πŸ‡²πŸ‡Ώ

Note: using AbjadΔ« alphabet

- [Color-Blind Friendly](/ar/speakbook/) - πŸ“„ [A4 PDF](/ar/speakbook/index.pdf)
- [Colour Version](/ar/speakbook/classic.html) - πŸ“„ [A4 PDF](/ar/speakbook/classic.pdf)
- [Printing Instructions](/ar/speakbook/printing-instructions.html) - πŸ“„ [A4 PDF](/af/speakbook/printing-instructions.pdf)

[Complete Zipped package with US Letter size](/ar/speakbook/ar-speakbook.zip)

**Credits** Hossein Amin, Iraq.

### Urdu

πŸ‡΅πŸ‡°

- [Color-Blind Friendly](/ur/speakbook/) - πŸ“„ [A4 PDF](/ur/speakbook/index.pdf)
- [Colour Version](/ur/speakbook/classic.html) - πŸ“„ [A4 PDF](/ur/speakbook/classic.pdf)

[Complete Zipped package with US Letter size](/ur/speakbook/ur-speakbook.zip)

### Polish

πŸ‡΅πŸ‡±

- [Color-Blind Friendly](/pl/speakbook/) - πŸ“„ [A4 PDF](/pl/speakbook/index.pdf)
- [Colour Version](/pl/speakbook/classic.html) - πŸ“„ [A4 PDF](/pl/speakbook/classic.pdf)

[Complete Zipped package with US Letter size](/pl/speakbook/pl-speakbook.zip)

### Armenian

πŸ‡¦πŸ‡²

- [Color-Blind Friendly](/hu/speakbook/) - πŸ“„ [A4 PDF](/hu/speakbook/index.pdf)
- [Colour Version](/hu/speakbook/classic.html) - πŸ“„ [A4 PDF](/hu/speakbook/classic.pdf)

[Complete Zipped package with US Letter size](/hu/speakbook/hu-speakbook.zip)

### Croatian

πŸ‡­πŸ‡·

- [Color-Blind Friendly](/hr/speakbook/) - πŸ“„ [A4 PDF](/hr/speakbook/index.pdf)
- [Colour Version](/hr/speakbook/classic.html) - πŸ“„ [A4 PDF](/hr/speakbook/classic.pdf)

[Complete Zipped package with US Letter size](/hr/speakbook/hr-speakbook.zip)

### Maori

πŸ‡³πŸ‡Ώ

- [Color-Blind Friendly](/mi/speakbook/) - πŸ“„ [A4 PDF](/mi/speakbook/index.pdf)
- [Colour Version](/mi/speakbook/classic.html) - πŸ“„ [A4 PDF](/mi/speakbook/classic.pdf)

[Complete Zipped package with US Letter size](/mi/speakbook/mi-speakbook.zip)

## How do I create a new version for my language - or improve a language translation

Firstly - _Great!_ Here are the steps:

1. Go to and join up. Pick a current language to help edit - or create a new one.
2. What happens is you end up with a table. In one column is English snippets of text. And in the other you write that languages translation. Have a look at the [English](https://speakbook.acecentre.net/speakbook/index.pdf) version where the strings are from. It should make sense what things mean. There are some strange bits - some bits later on have html embedded in them. Don’t worry - just do what you can. You can’t break anything!
3. Once you have done what you can - send [me an email](mailto:wwade@acecentre.org.uk) and I’ll run a little script that converts it. It really takes me no more than about 10 minutes to do. Once done you can see the changes on our [development page](http://speakbook.acecentre.net)
4. There’s usually tweaks to be made around how we do the e-Tran frame and finger spelling page. At that stage we just have a email chat about the best way forward. Some languages don’t bother to use all their letters - or we ignore the numbers. Lots of things we can do. And feel free to change things like the static words like β€œI feel hot” to something more regional.
5. \*Lastly\*\* - we translate the printing instructions page. That’s just a text or word file you can [send me](mailto:wwade@acecentre.org.uk). Example [here](https://speakbook.acecentre.net/speakbook/printing-instructions.pdf)

## I want it to do **\_** or can it print upside down?

[Get in touch with the team](mailto:wwade@acecentre.org.uk) if you have a special request. We occasionally do sprints of work on SpeakBook to add new features. Alternatively look at the current
[Issues here](https://github.com/acecentre/SpeakBook/issues). We welcome code changes and pull requests!

**Urgent needs**

- Need translations for a [printed instructions sheet ](https://acecentre.org.uk/wp-content/uploads/2018/11/Printing-Instructions1.pdf)
- More serious coding issues see the queue [here](https://github.com/acecentre/SpeakBook/issues).

[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://lbesson.mit-license.org/) [![OpenAAC](https://img.shields.io/badge/OpenAAC-πŸ’¬-red?style=plastic&logoWidth=40&link=https://www.openaac.org)](https://img.shields.io/badge/OpenAAC-πŸ’¬-red?style=plastic&logoWidth=40&link=https://www.openaac.org) [![Netlify Status](https://api.netlify.com/api/v1/badges/e7e4b2ad-fd21-4239-8141-ea608482fea7/deploy-status)](https://app.netlify.com/sites/speakbook/deploys)

## Technical Background

This is simply a Vue.js themed template with some scripts to generate a PDF of the html document that is created. Its designed for chrome as chrome does the PDF generation. We use [PO language strings](https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html) in this project. On each markdown file we have a `text:` field where there is a list of strings available to the page. This means you can separate the design logic from the language information. We have some scripts to aid this process. A Markdown->PO script to create a PO file from a file - and then a PO->Markdown script that applies new language strings to a markdown file.

We also have a very natty script that uses Google translate to make a new po file.. See below


Deploys by Netlify

### Layout

.vuepress/
build-pdf-plugin.js <- The pdf build plugin.
config.js
dist/ <- Where the final build is outputted
public/ <- Static assets like images sit here and in SpeakBook/
theme/
layouts/
SpeakBook.vue <- The main logic for SpeakBook
styles/
util/
fonts/
components/

.scripts/
common.js
apply-po-to-md.js <- Apply a PO Language file to Markdown file.
getPOfiles.js <- NOT WORKING - Grab files from POEditor
po-from-md.js <- Make a master PO file from a markdown file.

speakbook/
README.md <- The English version of SpeakBook

lang/speakbook/
README.md <- Other language versions

### Package scripts

```
# run a local server for development
$ yarn dev
# build it in static html format
$ yarn build
# build pdf format for all pages
$ yarn buildpdf
# build a zip of all the pdfs for each language
$ node .scripts/buildfinalzip.js
$ netlify deploy --dir=.vuepress/dist
$ netlify deploy --prod
```

There is also a way we can use Google translate to start a new language. This is useful to get you going in the right direction..
e.g. For English to Armenian

`node .scripts/po-google-translate.js res/lang/master.po res/lang/SpeakBook_Armenian.po en hy'`

### Script to update all files from POEditor

```
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Bulgarian.po bg/speakbook/README.md > bg/speakbook/README2.md && mv bg/speakbook/README2.md bg/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Arabic.po ar/speakbook/README.md > ar/speakbook/README2.md && mv ar/speakbook/README2.md ar/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Spanish.po es/speakbook/README.md > es/speakbook/README2.md && mv es/speakbook/README2.md es/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_French.po fr/speakbook/README.md > fr/speakbook/README2.md && mv fr/speakbook/README2.md fr/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Portuguese.po po/speakbook/README.md > po/speakbook/README2.md && mv po/speakbook/README2.md po/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Swedish.po sv/speakbook/README.md > sv/speakbook/README2.md && mv sv/speakbook/README2.md sv/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_German.po de/speakbook/README.md > de/speakbook/README2.md && mv de/speakbook/README2.md de/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Afrikaans.po af/speakbook/README.md > af/speakbook/README2.md && mv af/speakbook/README2.md af/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Zulu.po zu/speakbook/README.md > zu/speakbook/README2.md && mv zu/speakbook/README2.md zu/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Turkish.po tr/speakbook/README.md > tr/speakbook/README2.md && mv tr/speakbook/README2.md tr/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Maltese.po mt/speakbook/README.md > mt/speakbook/README2.md && mv mt/speakbook/README2.md mt/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Armenian.po hu/speakbook/README.md > hu/speakbook/README2.md && mv hu/speakbook/README2.md hu/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Croatian.po hr/speakbook/README.md > hr/speakbook/README2.md && mv hr/speakbook/README2.md hr/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Maori.po mi/speakbook/README.md > mi/speakbook/README2.md && mv mi/speakbook/README2.md mi/speakbook/README.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Serbian.po sr/speakbook/README.md > sr/speakbook/README2.md && mv sr/speakbook/README2.md sr/speakbook/README.md

```

and likewise for Classic (colour version):

```
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Bulgarian.po bg/speakbook/classic.md > bg/speakbook/classic2.md && mv bg/speakbook/classic2.md bg/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Arabic.po ar/speakbook/classic.md > ar/speakbook/classic2.md && mv ar/speakbook/classic2.md ar/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Spanish.po es/speakbook/classic.md > es/speakbook/classic2.md && mv es/speakbook/classic2.md es/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_French.po fr/speakbook/classic.md > fr/speakbook/classic2.md && mv fr/speakbook/classic2.md fr/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Portuguese.po po/speakbook/classic.md > po/speakbook/classic2.md && mv po/speakbook/classic2.md po/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Swedish.po sv/speakbook/classic.md > sv/speakbook/classic2.md && mv sv/speakbook/classic2.md sv/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_German.po de/speakbook/classic.md > de/speakbook/classic2.md && mv de/speakbook/classic2.md de/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Afrikaans.po af/speakbook/classic.md > af/speakbook/classic2.md && mv af/speakbook/classic2.md af/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Zulu.po zu/speakbook/classic.md > zu/speakbook/classic2.md && mv zu/speakbook/classic2.md zu/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Turkish.po tr/speakbook/classic.md > tr/speakbook/classic2.md && mv tr/speakbook/classic2.md tr/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Maltese.po mt/speakbook/classic.md > mt/speakbook/classic2.md && mv mt/speakbook/classic2.md mt/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Armenian.po hu/speakbook/classic.md > hu/speakbook/classic2.md && mv hu/speakbook/classic2.md hu/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Croatian.po hr/speakbook/classic.md > hr/speakbook/classic2.md && mv hr/speakbook/classic2.md hr/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Maori.po mi/speakbook/classic.md > mi/speakbook/classic2.md && mv mi/speakbook/classic2.md mi/speakbook/classic.md
node .scripts/apply-po-to-md.js res/lang/SpeakBook_Serbian.po sr/speakbook/classic.md > sr/speakbook/classic2.md && mv sr/speakbook/classic2.md sr/speakbook/classic.md

```