[go: up one dir, main page]

Skip to content

handcircus/export-localised-artboards

Repository files navigation

export-localised-artboards

Plugin Usage

  • Add one or more Artboard that you want to export. Use [LANGUAGE] in the artboard name to add in substitution for each language. For example name an artboard Screenshot_1_[LANGUAGE]
  • Create a CSV file called LanguageData.csv in the same folder as your sketch file. The left column should contain keys for localisation (eg screenshot_title_1). The top row should contain language IDS (eg en_US)
                   |  en-US | de-DE
screenshot_title_1 | Hat    | German Hat
screenshot_title_1 | Dog    | German Dog
  • In your sketch file, name any Text Layers or Symbol layers with the same name as the substitution that you want (eg screenshot_title_1)
  • Run the "Export Localised Artboards" command

Installation

  • Download the latest release of the plugin
  • Un-zip
  • Double-click on export-localised-artboards.sketchplugin

Development Guide

This plugin was created using skpm. For a detailed explanation on how things work, checkout the skpm Readme.

Usage

Install the dependencies

npm install

Once the installation is done, you can run some commands inside the project folder:

npm run build

To watch for changes:

npm run watch

Additionally, if you wish to run the plugin every time it is built:

npm run start

Custom Configuration

Babel

To customize Babel, you have two options:

  • You may create a .babelrc file in your project's root directory. Any settings you define here will overwrite matching config-keys within skpm preset. For example, if you pass a "presets" object, it will replace & reset all Babel presets that skpm defaults to.

  • If you'd like to modify or add to the existing Babel config, you must use a webpack.skpm.config.js file. Visit the Webpack section for more info.

Webpack

To customize webpack create webpack.skpm.config.js file which exports function that will change webpack's config.

/**
 * Function that mutates original webpack config.
 * Supports asynchronous changes when promise is returned.
 *
 * @param {object} config - original webpack config.
 * @param {boolean} isPluginCommand - whether the config is for a plugin command or a resource
 **/
module.exports = function(config, isPluginCommand) {
  /** you can change config here **/
}

Debugging

To view the output of your console.log, you have a few different options:

  • Use the sketch-dev-tools
  • Run skpm log in your Terminal, with the optional -f argument (skpm log -f) which causes skpm log to not stop when the end of logs is reached, but rather to wait for additional data to be appended to the input

Publishing your plugin

skpm publish <bump>

(where bump can be patch, minor or major)

skpm publish will create a new release on your GitHub repository and create an appcast file in order for Sketch users to be notified of the update.

You will need to specify a repository in the package.json:

...
+ "repository" : {
+   "type": "git",
+   "url": "git+https://github.com/ORG/NAME.git"
+  }
...