Skip to content

AceCentre/SpeakBook

Repository files navigation

title description
SpeakBook Index Page
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

This is a repository to hold the working versions of Patrick Joyce's SpeakBook project. 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.

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

Complete Translatons

English

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

Complete Zipped package with US Letter size

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

Turkish

πŸ‡ΉπŸ‡·

Complete Zipped package with US Letter size

Credits Ersin Sinay

German

πŸ‡©πŸ‡ͺ

Complete Zipped package with US Letter size

Credits Julius Deutsch, kommhelp e.V., Michael Ritson, Ace Centre, UK.

Afrikaans

πŸ‡ΏπŸ‡¦

Complete Zipped package with US Letter size

Credits Emma Emmerich, Inclusive Solutions.

Portuguese

πŸ‡΅πŸ‡Ή

Complete Zipped package with US Letter size

Credits Hélio Lourenço, Ace Centre UK

Maltese

πŸ‡²πŸ‡Ή

Complete Zipped package with US Letter size

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

Serbian

πŸ‡·πŸ‡Έ

Complete Zipped package with US Letter size

Credits Marijana

Bulgarian

πŸ‡§πŸ‡¬

NB: Work in progress

Complete Zipped package with US Letter size

Credits Evgeniya Hristova

Needing "Printing Instructions" (but complete otherwise)

Swedish

πŸ‡ΈπŸ‡ͺ

Complete Zipped package with US Letter size

Spanish

πŸ‡ͺπŸ‡Έ

Complete Zipped package with US Letter size

French

πŸ‡«πŸ‡·

Complete Zipped package with US Letter size

Credits Michael Ritson, Ace Centre, UK.

Zulu

πŸ‡²πŸ‡Ώ

Complete Zipped package with US Letter size

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.

Complete Zipped package with US Letter size

Arabic

πŸ‡²πŸ‡Ώ

Note: using AbjadΔ« alphabet

Complete Zipped package with US Letter size

Credits Hossein Amin, Iraq.

Urdu

πŸ‡΅πŸ‡°

Complete Zipped package with US Letter size

Polish

πŸ‡΅πŸ‡±

Complete Zipped package with US Letter size

Armenian

πŸ‡¦πŸ‡²

Complete Zipped package with US Letter size

Croatian

πŸ‡­πŸ‡·

Complete Zipped package with US Letter size

Maori

πŸ‡³πŸ‡Ώ

Complete Zipped package with US Letter size

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

Firstly - Great! Here are the steps:

  1. Go to https://poeditor.com/join/project/wKsMtKRLIj 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 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 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
  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. Example here

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

Get in touch with the team 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. We welcome code changes and pull requests!

Urgent needs

MIT license OpenAAC Netlify Status

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 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