Perfect your designs for multiple languages

Connect Phrase with your designs in Sketch. Localize while you’re in the design phase to see what your entire UI looks like in other languages.

Frictionless exchange

Push the text elements of your design to Phrase and pull final copy and translations—all with two clicks, without leaving Sketch. No more file shuffling with emails, spreadsheets, or images.

Sketch UI visual | Phrase
Sketch preview visual | Phrase

Preview your translations in Sketch

No more copy-paste. See what your entire Sketch designs will look like in other languages. Easily switch languages of your designs and catch design breaks early on.

Set translation guidelines

Easily enforce a character limit for each text element or upload a screenshot. Provide your language specialists with enough context to craft translations that fit your interface.

Sketch in-context UI visual | Phrase

What’s in the box?

Language AI includes:

Fully managed engines

Phrase NextMT

MT autoselect

MT glossaries

MT quality estimation

API
(requires end-user access licenses)

Phrase by the numbers

Wir als Design-Abteilung bei Fujifilm haben uns für Phrase entschieden, um den Übersetzungsprozess zu verwalten und die Herstellung lokalisierter Varianten unserer Druckvorlagen effizienter zu gestalten.

Michael Bush

Marketing & Communications Manager


Request a demo today and try our award winning localization platform. Simply fill in the form and we’ll get right back to you!

hbspt.forms.create({ portalId: „584311“, formId: „beafebc5-6573-4213-b2bf-1e0b4f9b973a“, region: „na1“ }); var cpTenantDomain = „phrase“; var cpRouterName = „phrase_new“; var lead = {}; window.addEventListener(„message“, function(event) { if (event.data.type === „hsFormCallback“) { const eventName = event.data.eventName; if (eventName === „onFormSubmit“) { for (var key in event.data.data) { if (Array.isArray(event.data.data[key].value)) { event.data.data[key].value = event.data.data[key].value.toString().replaceAll(„,“, „;“); } lead[event.data.data[key].name] = event.data.data[key].value; } if (Object.keys(lead).length <= 1) { lead = event.data.data; } } else if (eventName === "onFormSubmitted") { // Submit to Chili Piper ChiliPiper.submit(cpTenantDomain, cpRouterName, { map: true, lead: lead, onSuccess: function() { // Optional redirect on success window.location.href = "/thank-you-demo"; } }); // Push event to GTM dataLayer window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'formSubmitted', 'leadsUserData': { 'email': lead.email || '', 'phone_number': lead.phone || '' } }); } } });