# Table of Contents

# Introduction

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

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.

# Needing "Printing Instructions" (but complete otherwise)

# πŸ‡ΈπŸ‡ͺ Swedish

Complete Zipped package with US Letter size

# πŸ‡΅πŸ‡Ή Portuguese

Complete Zipped package with US Letter size

Credits Hélio Lourenço, Ace Centre UK

# πŸ‡ͺπŸ‡Έ Spanish

Complete Zipped package with US Letter size

# πŸ‡«πŸ‡· French

Complete Zipped package with US Letter size

Credits Michael Ritson, Ace Centre, UK.

# πŸ‡²πŸ‡Ή Maltese

Complete Zipped package with US Letter size

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

# πŸ‡²πŸ‡Ώ 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

# 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 (opens new window) 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 (opens new window) 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 (opens new window)
  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 (opens new window)

# 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 (opens new window). We welcome code changes and pull requests!

Urgent needs

MIT license (opens new window) OpenAAC (opens new window) Netlify Status (opens new window)

# 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 (opens new window) 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

# Layout

    build-pdf-plugin.js    <-  The pdf build plugin. 
    dist/                  <- Where the final build is outputted
    public/                <- Static assets like images sit here and in SpeakBook/
            SpeakBook.vue  <- The main logic for SpeakBook

    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.        

    README.md             <- The English version of 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_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 

and likewise for Classic (colour version):

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