Custom Language

Creating Your Own ZBrush Translation

The multi language system in ZBrush allows creation of custom languages by its us­ers. This can range from editing an existing language to add personal modifications, all the way to creating support for a new language from scratch.

With the exception of a few items, the process can be done almost totally within ZBrush. This done either by clicking on the buttons to translate or going to a menu that will display all strings or error messages that still need to be translated. All these edits are updated directly in ZBrush, without the need to reload the language or the application.

At any point, you can export it as a file which can be shared with other ZBrush users who will then be able to benefit from your translation work.

Important!

Note: When doing these translations it is not advised to work as a team. This is because It is not possible to merge multiple translations into one.
4R8_65

At the bottom of the Language preferences, the Custom Language and all its utilities.

1.Items to Translate

In ZBrush, most any element visible to users is available for translation. This includes all buttons, sliders, error messages, the ZModeler menu, progress bar messages, etc.
However, a few elements may remain only available in English. This includes some special error messages, the top bar, and resources (brush names, alphas, strokes, the files found in LightBox, etc.).

2.Plugins and ZScripts: The Translation Exception

ZBrush is enhanced with plugins or with ZScripts, providing extra utilities and functionalities. Unfortunately, the core part of the ZScript system (which is used in plugins as well) can’t fully support the translation process.

The result is that most buttons and sliders for plugins will be translated. However, any special text like popups, error messages or dynamic text will remain in English. An example would be the ZPlugins >> Scale Master plugin, when clicking the Set Scene Scale popup. Its contents will remain in English.

4R8_66

The Set Scene Scale popup of the Scale Master plugin, which can’t be translated.

3.Creating a Custom Language

The first step is to create a new custom language. It can be:

  • An existing translation already provided in ZBrush, which you want to edit.
  • Using an existing language as the foundation for your new translation.

All editing tools will only work with a Custom language. This is why you need to create one, even if you wish to edit an existing one.

  1. First select the language that you want to edit or which will be the foundation for your new translation. If you start an original translation, it is advised to begin with the English language as you will have a blank canvas where English will be used if you don’t translate some items. If you use another language as the foundation, you have a high risk of mixing two different languages and creating confusion for any other people who might use your translation.
  2. Click Preferences >> Language >> Customize >> Create.

Now the Custom language is selected and you can start your translation work. Don’t forget to save it on a regular basis as this action is not done automatically.

4.The Edit Window

The Preferences >> Language >> Customize >> Edit button will open the complete Translation Edit window. This special interface is the full version of Auto Edit mode, ex­plained in the next section of this document. (It is strongly advised to read this next part.)

4R8_67

The Edit window. See the content descriptions below.

Here is a description of each element:
A. The list of items that need to be translated. Click on one of them to start the translation of that item.

B. The categories of the items to be translated: •
Buttons are mainly the clickable items in the ZBrush interface and include buttons, modes, sliders, and switches.

  • Messages are typically error, warning and informational messages, or the text in progress bars
  • Infos include the extra items which doesn’t fit in the two previous sections. These include the ZModeler menu and very specific progress bar or popup messages.

C. The Red, Orange and Green dots indicate the state of translation for each listed item. The change of the status is dynamic.•
Red: No translation.

  • Orange: Partial translation has been done, such as if the item’s Title has been edited but its Info has not.
  • Green: Translation is complete.

D. English (Title/Info/Extra): The original text in English. This text can’t be edited. Notice that it may vary a little bit from the English translation within ZBrush. This is because the original text has been edited through the translation system in order to rename some items or change some abbreviations.

E. Localized (Title/Info/Extra): The field where you enter your translation.

F. Title/Info/Extra: these switches let you select which part of the item to translate:

  • Title: The button, slider or switch name found in the user interface, like “Open,” “Divide,” or “DynaMesh.” It can also be the title of a warning message or information window.
  • Info: This is the tooltip text that is will be displayed when hovering over the button, slider, switch, or any other clickable user interface element. It can be the main (or first) part of an information window. These messages are not the AutoNotes, which are seen when holding the CTRL key while hovering over an interface element.
  • Extra: Additional text which can be found in some information and error mes­sages, as well as a few miscellaneous items.

Important!

Note: Some complex messages can be split across the Info and Extra sections.

G. Copy: Copies the original text into the translation field. This can be very helpful for long translations or if you need to reuse special codes such as color codes or breaklines (\Cxxxxxx and \n).

H. Shared and Unique: Switches between the two modes. Please refer to the dedi­cated section below.

I. The path and identifier to the item to translate. This field is provided for your in­formation. It is an internal identifier and in most cases can give you an indication of where the item is located within ZBrush.

J. Up/Down Arrow: Switches between Edit mode or Auto Edit mode.

K. Untranslated: This switch toggles between displaying all items, or only those that still need full or partial translation. When turned off, any element that has been fully translated (Title + Info + Extra) will immediately be removed from the list. This mode is enabled by default.

L. Previous, Next: Selects the next or previous element to translate, without cy­cling between Title, Info and Extra. These functions are affected by the Untrans­lated mode, meaning that if you want to select the previous item regardless of whether it has been translated or not, you must first disable Untranslated mode.

M.
Page Up, Page Down and Page Counter: These let you move through the entire catalogue of items that can be translated. Use these when you need to search for a specific item.

N. Save: Saves the current custom language. As previously mentioned, do this regularly.

O. Close: Closes the Edit window. This will not save the current language. That must be done either by using the Save button within this editing window or by clicking Preferences >> Language >> Customize >> Save. Hitting Enter will also close the window.

5.Auto Edit Mode

This mode, found in Preferences >> Language >> Customize is strongly advised when creating your translation. When enabled, pressing Alt+clicking on any user inter­face element will open a reduced version of the Edit window, with only the clicked item displayed. You will then be able to translate this item the same way you would with the standard Edit window.

If you want to see all other translations near this current item, click the arrow at the left of the popup window. The popup will then become the full Edit window.

4R8_68

The Auto Edit window. Notice its compact aspect compared to the full Edit window.

6.Translation Workflow

A typical workflow is:

  1. Be sure to have a customized language loaded and turn Preferences >> Lan­guage >> Custom >> Auto-edit mode on.
  2. ALT+click on any interface item to translate. For example, the Tool >> Load Tool button.
  3. The popup version of the Edit window will appear with the Title field selected.
  4. In this example, the English (Title) should be “Load Tool.” In the Localized (Title) field below, enter your translation. In French it would be “Charger Tool.”
  5. Click Info to display that part of the translation. If you have the Tool palette vis­ible, you should immediately see the change to the Title applied. In the “English (info)” section, you should have “Load Tool (Ztl File).” Enter your translation for this text. Continuing with the French example, you might enter “Charger un ZTL (.ZTL) précédement enregistré.”As you may notice, this example translation is longer than the original text. Feel free to provide more information if needed, so long as it is valid information. It is safer to keep the translation simple rather than trying to give more information at the risk of mistakes.
  6. Press Enter. The Auto Edit window will close.
  7. Switch to another item to translate by restarting at step 2.

This workflow is in fact really fast, in part because you are directly in the context of the function being translated. Translating a list in a raw text file would make the task more difficult.

Don’t forget that you can click the Previous and Next buttons when either Edit window is open. Most of the time, buttons within the same UI cluster will be next to each other in the list.

Important!

Note: The internal structure of the button/slider order is based on the history of the functions being added to ZBrush over the time. This is why functions that are grouped together in the UI may not always appear together in the translation Edit window when pressing the Previous and Next buttons. This in turn is why Auto Edit mode is the preferred method for translating the interface. Use Auto Edit for most of your work and the regular Edit window when you want to look for what remains to be translated.

7. Unique and Shared Modes

In ZBrush, there are a number of buttons or sliders which have the same text but slightly different functionality. A good example is the “Import” button. This can be found in the Texture palette to import a texture, in the Alpha palette to import an Alpha, the Document palette and other places.

When Shared mode is enabled (by default), changing the Title part of the translation will also apply automatically to all the other identically named buttons within ZBrush. However, the tooltip (found in the Info section of the translation) will remain unchanged. This saves you the time of having to edit the same text repeatedly, yet also allows you to enter a different description for each unique item that shares that name. For example, the tooltips of the “Import (Alpha)” and “Import (Texture)” buttons.

This mode is a huge convenience, since some items are duplicated many times across the interface.

Be careful, however. Sometimes — depending on the language and context — a shared translation does not work well across all instances of a UI element. Depending on your language, another translation may have a better meaning. Another reason would be if the full text will not fit a button size at some locations and you then have to use an ab­breviation. (“Transform” might become “Transf.”) By first setting a translation to Unique, you can tell ZBrush to only change that instance of the text while ignoring all other loca­tions that would otherwise be shared.

8. Translating Icons

The text on icons can also be translated with a special workflow:

  1. Enable Auto-edit mode, found in Preferences >> Language >> Customize.
  2. Shift+click on the icon of your choice. A note will tell you that the icon has been exported as a Photoshop file. It will be saved in the custom language source folder on your hard drive.
    • On Windows: C:\Users\Public\Documents\ZBrushData\ZStartup\Custom­Lang\icons
    • On MacOS: /Users/Shared/ZBrushData/ZStartup/CustomLang/icons
  3. Open your favorite .PSD file format editor and load the file. We strongly advise using Adobe Photoshop.
  4. Notice Image >> Mode is set to “Multichannel.” Feel free to switch to Greyscale mode to edit the icon, which gives you the ability to work with layers.
  5. Edit the icon however you wish. This will usually be to change the text but you could also change the graphical portion of the icon.
  6. Save your icon file. You do not need to flatten the layers.
  7. Back in ZBrush, click Preferences >> Language >> Customize >> Reload Icons. The updated icon should now appear.
  8. Repeat these steps for other icons.

Important!

Important note about icon editing and creation

  • Don’t resize the icons or ZBrush won’t fully display them. The pixel size must remain the same.
  • The text size is very small. You can try different fonts, sizes and antialiasing modes but once you settle on a style that pleases you, try to be consistent across all your icons. These keeps the interface looking cohesive and is much easier for people to use.
  • Once an icon has been exported, you don’t need to do so again each time you want to make a modification. You can simply reopen same file in your PSD edi­tor, make and save your adjustments, then click Reload to see the update in ZBrush. This is why it is helpful to keep the layers in your PSD file rather than flatten them – it makes future tweaks much faster, should they become necessary.

9. Translation of the Gizmo 3D Modifiers

The Gizmo 3D includes multiple modifiers which are plugin based. You can still translate their names and tooltip information (such as when hovering a cone), but this needs to be done through a different system.

To make these changes, you need to edit the XML file corresponding to the Modi­fier. These files are found in the ZBrush/ZData/ZPlug64/NameOfTheModifierData folder. Look for files ending whe “_zc.xml” and open these with a text editor. There, translate the content found in the trans=”xxxx” sections. Do not change any other portion of the files!

These translations will only become visible when ZBrush is restarted or by switching to another language and then reverting to the custom language.

10. Font for Your Language

ZBrush is provided with multiple fonts that cover a wide range of characters for most languages. These are the Noto fonts from Google: https://www.google.com/get/noto/

If you are translating ZBrush in a language which needs a special font, download it from the Noto webpage and copy it to the ZBrush/ZData/ZLang/ZFont folder. Next, edit the ZFontMac.xml and ZFontWin.xml files. Search for the “language = “zc”” section, be­low which you will see a list of fonts: “sysfont = “NotoSans-Regular.ttf;….”/>”.

Add your font filename name before the “NotoSans-Regular.ttf” and make sure to separate them with a “;” in between as it is for the other fonts.

Your custom language will now first look at this font to display your language and its characters.

11. Important Information and Advice About Translating ZBrush

This section contains valuable information that will help you when translating ZBrush. It includes best practices and how to avoid common mistakes. If you have questions about the translation process or you want to share your translation work with Pixologic, please send an email to [email protected].

Adapt to Your Language but Keep the Meaning

This is a key point about localization. Obviously, using something like Google Trans­lation would have no meaning. ZBrush has its own philosophy and only someone who knows the software can perfectly translate the software. With one exception, all transla­tions provided by Pixologic have been made by ZBrush artists/users.

For some words or expressions, a direct translation may not mean anything in your language. In that case, adapt to what makes the most sense in your own language.

Some functions already have a specific word in your language and should be used even if this translation is far from the original English. What is most important is that it makes sense to the end user.

The end user is the key, since the goal of the translation is to make ZBrush accessible to artists who may not understand at all because it is not in their language.

At the opposite end of the spectrum, some words may not exist in your language or the English text is so well known that it accomplishes nothing to do a translation. In that case, keep it in English. As an example, the “Picker” menu and its associated function can be translated into the French language but would be meaningless. As a result, the English name has been kept.

Keep Famous ZBrush Function Names — or at Least Keep their Pronunciation

ZBrush includes numerous features which are well known and are key to what ZBrush is. These include Tool, SubTool, DynaMesh, ZRemesher, ZSphere, ShadowBox, SpotLight, Projection Master, LightBox, ArrayMesh, NanoMesh, ZScript, and FiberMesh, to name a few.

It is strongly advised to keep them as they are and not try to translate them. If your language uses a different character set (like Asian characters) you can do a phonetic translation, keeping the pronunciation. If you think a translation is really needed, add it to the tooltip (Info section) but keep the original word/sound on the button itself.
Tool and SubTool can be easily translated in most languages, but again these items are fundamental to ZBrush and must remain as is. This is a typical example of where you can add the translation to the tooltip of the function.

Be Very Careful of Special Characters

In some original text, you will notice characters like \n (or even sometimes \n\n) or \Cxxxxxx where the x can be a hexadecimal number. The first one is a break line charac­ter while the second is a color identifier that will change the color of the text that follows.
Example: \C333333Z\CFFAA00Brush will output ZBrush. Notice that some charac­ters can be right after the special code, without empty space.

4R8_69

Color character code used multiple times in a single string.

Some function names can start with a letter followed by a point which is not visible in ZBrush but does appear in the Editor. Examples are the NanoMesh or ArrayMesh functions which can start with a “p.”, “m.”, “a.”, etc. You need to keep these special characters in your translation since they are used by ZBrush to be recognized as a group of features.

4R8_70

Notice the “P.” before the function name. “P.Panel Loops” appears in the UI as simply, “Panel Loops” while the “P.” is used as an internal identifier.

Don’t Forget “Hidden” Features

The most obvious way to do the translation is to open each palette one by one and do the translation using Auto Edit. When doing so, don’t forget that some palettes may have a popup with buttons, like the Render >> BPR filters >> Filters and Blend modes. There are also special palettes like for ZModeler, which is only available when the ZMod­eler brush is selected. Other examples are when a ZSphere or 3D Primitive is selected, changing the contents of the Tool palette. Obviously, each 2.5D Tool (like the Simple or Cloner brush) has different settings to translate.

The way to be sure that the translation is done is to open the Translation Edit window and have Untranslated turned on. If all of its tabs are empty, you are done!

Right to Left Languages

Unfortunately, languages that read from right to left (like Hebrew and Arabic) are not supported.

Time Commitment

Creating a custom language is not a quick task.
For your information, it takes approximately a month to translate ZBrush into a new language. This includes time spent searching for functions you don’t know and then figuring out how to best translate them.
Even though the translators for the languages provided by Pixologic were well versed in ZBrush before they began, they all learned a lot about ZBrush by translating it!