by Chris Klimas, Leon Arnott, Daithi O Crualaoich, Ingrid Cheung, Thomas Michael Edwards, Micah Fitch, Juhana Leinonen, and Ross Smith
This is a port of Twine to a local browser-based app. See twinery.org for more info.
The story formats in minified format under
storyformats/ exist in separate
npm install at the top level of the directory to install all goodies.
You'll also need Grunt to continue. Run
npm install -g grunt-cli
(you will need to have administrator privileges to achieve this task).
grunt to perform a basic build under
grunt dev will
perform the same tasks whenever you make changes to the source code.
will create executable app versions of Twine from this directory and place them
grunt build:cdn will build a version of Twine that makes
as much use of CDN resources as possible, and place it under
To create downloadable versions of Twine, run
grunt package. These will be
placed in the
dist/ directory. An additional file named
2.json is created
dist/. This contains information relevant to the autoupdater process, and
is currently posted to http://twinery.org/latestversion/2.json.
grunt test to run through Selenium-based tests (for now, these only run on
Firefox). To quit a test run as soon as any error is encountered, run
test --bail. To run a subset of tests, run
grunt test --grep=mysearch. Only
tests whose name match the argument you pass will be run.
Download template.pot from the repository.
Use a translation application like Poedit to create a .po file with the source text translated. If you are using Poedit, get started by choosing New from POT/PO File from the File menu. Make sure to name your po file according to the IETF locale naming convention -- Poedit can help suggest that as well. For example, a generic French translation should be named
fr.po, while an Australian English one would be named
Finally, two other things are needed: an SVG-formatted image of the flag that should be associated with your language, and what native speakers call the language you are localizing to (e.g. Français for French speakers). Wikimedia Commons is your best bet for nice-looking SVG flags. Obviously, whatever image you provide must either be in the public domain or otherwise OK to use in Twine without any compensation.
If you're comfortable using Mercurial, then you can open a pull request to have your localization added. Please place it in the
src/locale/podirectory. If you aren't, you can instead open a bug tracker issue and attach your PO file, flag image, and language name and we'll take it from there.