Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Making Your Addin Translatable

Cameron White edited this page · 1 revision

Pinta is translated into over 55 different languages, so you'll want to make sure that your add-in can be translated into other languages as well!

This guide builds on the effect written in Writing an Effect or Adjustment.

Providing Translations

In your add-in's .addin.xml file, you can provide translated strings for both the add-in description and any strings that are used in your add-in's code. For example, here is the .addin.xml file for the night vision effect:

<?xml version="1.0" encoding="UTF-8" ?>
<Addin id="NightVisionEffect" version="1.2" category="Effects">
    <!-- This is the information shown in the add-in manager, with translations -->
        <Name>Night Vision Effect</Name>
        <Description>A simple add-in that will recolour your image so that it looks like a night vision picture.</Description>
        <Author>Pinta Project</Author>
        <Name locale="nb">Nattkikkert-effekt</Name>
        <Description locale="nb">En enkel effekt som vil endre fargene på bildet ditt slik at det ser ut som det er tatt med nattkikkert.</Description>
    <!-- This is technical info for Pinta to identify the add-in. -->
        <Addin id="Pinta" version="1.5" />
    <!-- These are strings used in the add-in and their translations. 
    Note that some of the strings might be in Pinta from before, especially effect submenu names,
    and should be translated the same way, so that we don't end up with redundant submenus.-->
    <Localizer type="StringTable">
        <Locale id="nb">
            <Msg id="Night Vision" str="Nattkikkert" />
            <Msg id="Stylize" str="Stilisér" />

To use translated strings in your add-in's code, you can use AddinManager.CurrentLocalizer.GetString to fetch the translated string for the user's locale. For example, here is the Name property of the Night Vision add-in:

public override string Name {
    get {
        return AddinManager.CurrentLocalizer.GetString ("Night Vision");

When creating an effect dialog using SimpleEffectDialog, you must also pass AddinManager.CurrentLocalizer into the dialog so that it can find translations for the names of any properties of your effect:

public override bool LaunchConfiguration ()
    return EffectHelper.LaunchSimpleEffectDialog (this, AddinManager.CurrentLocalizer);
Something went wrong with that request. Please try again.