Looking for
We've rebranded!
API Docs


International web applications have international users. That’s why we allow you to easily add custom languages to our UI by passing them using the extensions.languages object. The language option specifies the language that the UI should use.

const editor = new PhotoEditorSDK.UI.ReactUI({
  extensions: {
    languages: {
      es: spanishLanguageObject
  language: 'es'

The language objects should have the same structure as our default languages. Here is the English language object as an example:

  "controls": {
    "overview": {
      "filters": "Filters",
      "adjustments": "Adjust",
      "crop": "Crop",
      "focus": "Focus",
      "frame": "Frame",
      "sticker": "Sticker",
      "text": "Text",
      "brush": "Brush",
      "selective-blur": "Selective Blur"
    "text": {
      "foreground": "Foreground",
      "background": "Background",
      "size": "Size",
      "font": "Font",
      "alignment": "Alignment",
      "takeToFront": "To Front"
    "adjustments": {
      "brightness": "Brightness",
      "contrast": "Contrast",
      "saturation": "Saturation",
      "exposure": "Exposure",
      "gamma": "Gamma",
      "shadows": "Shadows",
      "highlights": "Highlights",
      "clarity" : "Clarity"
    "crop": {
      "none": "Original",
      "custom": "Custom",
      "square": "Square",
      "4-3": "4:3",
      "16-9": "16:9",
      "social": "Social Media",
      "fb-ad": "FB Ad",
      "fb-post": "FB Post",
      "fb-cover": "FB Cover",
      "rotation": "Rotation"
    "focus": {
      "none": "None",
      "radial": "Radial",
      "linear": "Linear",
      "blurRadius": "Blur radius"
    "selectiveBlur": {
      "blurRadius": "Blur radius",
      "thickness": "Thickness"
    "filters": {
      "intensity": "Intensity",
      "categories": {
        "all": "All",
        "retro": "Retro",
        "bw": "Black & White",
        "summer": "Summer",
        "winter": "Winter",
        "special": "Special"
    "sticker": {
      "brightness": "Brightness",
      "contrast": "Contrast",
      "saturation": "Saturation",
      "blur": "Blur",
      "flip": "Flip",
      "flip-v": "Flip (V)",
      "flip-h": "Flip (H)",
      "takeToFront": "To Front",
      "categories": {
        "all": "All"
    "brush": {
      "thickness": "Thickness",
      "color": "Color"
    "frame": {
      "noFrame": "No Frame",
      "scale": "Scale"
  "webcam": {
    "headline": "Take a photo!"
  "editor": {
    "headline": "Edit Photo",
    "new": "New",
    "backgroundImage": "Background Image",
    "undo": "Undo",
    "export": "Export",
    "zoom": "Zoom"
  "splash": {
    "upload": {
      "button": "Upload your image",
      "description": "Upload a picture from your library or just drag and drop"
    "webcam": {
      "headline": "Webcam",
      "description": "Take a picture with your webcam or phone"
    "photoRoll": {
      "headline": "Free stock footage",
      "description": "Select from thousands of Free Stock Photos"
  "photoRoll": {
    "search": {
      "placeholder": "Search for photos",
      "noSearchResults": "Sorry, but we couldn't find any photos for <strong>\"${query}\"</strong>.",
      "results": {
        "headline": "Search results for \"${query}\""
  "generic": {
    "back": "Back",
    "cancel": "Cancel",
    "color": "Color"
  "loading": {
    "resizing": "Resizing...",
    "exporting": "Exporting...",
    "loading": "Loading..."
  "warnings": {
    "imageResized_maxMegaPixels": {
      "title": "Image resized",
      "text": "Your image exceeds the maximum size of ${maxMegaPixels} megapixels and has therefore been resized to ${width}x${height} pixels."
    "imageResized_maxDimensions": {
      "title": "Image resized",
      "text": "Due to hardware limitations your image has been resized to ${width}x${height} pixels."
  "errors": {
    "imageLoadFail": {
      "title": "Failed to load image",
      "text": "Failed to load the image at ${path}"
    "webcamUnavailable": {
      "title": "Webcam unavailable",
      "text": "Unable to display webcam image (Error: ${error})"
    "webcamNotSupported": {
      "title": "Webcam not supported",
      "text": "The webcam feature is not supported by your browser."
    "renderingError": {
      "title": "Error while rendering",
      "text": "An error has occurred while rendering the image."
    "context_lost": {
      "title": "An error has occurred",
      "text": "Your browser took too long to render the image. Please try applying less operations."
    "context_lost_limit": {
      "title": "An error has occurred",
      "text": "Your browser failed multiple times while rendering the image."
    "loadingStickersFailed": {
      "title": "Failed to load stickers"
    "loadingFontsFailed": {
      "title": "Failed to load fonts",
      "text": "Some fonts might not be available."
    "photoRollLoadFail": {
      "title": "Failed to load Photo Roll",
      "text": "Failed to load photos for the photo roll: ${error}"
    "title": "An error has occurred"