Thread Tools Display Modes
11/19/15, 09:41 AM   #1
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Custom Localizations

Over the past few weeks we have implemented a secure system to supply custom localizations for ESO. Here are the steps for setting up a custom localization:
  1. Choose a prefix for your language. Any two letter string is valid, but we would recommend sticking to the official language codes.
  2. In the addons folder make an “EsoUI” folder, and then a “lang” folder inside of that.
  3. Inside the “lang” folder make <prefix>_pregame.str and <prefix>_client.str files. These files will contain UTF-8 encoded text.
  4. Fill out the .str files with lines of the form: [<stringId>] = “text”. For example: [SI_ACCOUNT_NAME] = “Translated Account Name”.
  5. In the addons folder make a “gamedata” folder, and then a “lang” folder inside of that.
  6. Inside the “lang” folder place a translated <prefix>.lang file.
  7. Set the game language to your new prefix and the game will load your localization files.
The goal is to get this into the next patch right now. Please leave any questions or feedback here.
  Reply With Quote
11/19/15, 09:42 AM   #2
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
The changes from the last post are it no longer only supports a specific set of custom languages, and it now supports pregame.
  Reply With Quote
11/19/15, 10:11 AM   #3
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,567
This sounds great and I have two questions.
Does this affect the variable expansion of $(language) in the addon metafile in any way?
And will GetCVar("language.2") return the custom language code as it has in the past?
  Reply With Quote
11/19/15, 10:21 AM   #4
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Yes to both. We are loading $(language)_pregame.str and $(language)_client.str.
  Reply With Quote
11/19/15, 02:48 PM   #5
TERAB1T
AddOn Author - Click to view addons
Join Date: Feb 2014
Posts: 28
In Russian localization we use custom fonts (because ESO doesn't support cyrillic charset). How can we replace default fonts with our custom fonts in pregame, loadscreens, Crown Store and other places that don't support public API?
  Reply With Quote
11/19/15, 04:57 PM   #6
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Hmm, that's a stickier problem. I'll have to give some thought to it.
  Reply With Quote
11/19/15, 05:05 PM   #7
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
We could potentially do something like:

[Font:ZoFontGame] = "xyz.otf|32"

Where this would make a font object with the name and descriptor. Would that be sufficient?
  Reply With Quote
11/20/15, 06:00 AM   #8
TERAB1T
AddOn Author - Click to view addons
Join Date: Feb 2014
Posts: 28
Originally Posted by ZOS_ChipHilseberg View Post
We could potentially do something like:

[Font:ZoFontGame] = "xyz.otf|32"

Where this would make a font object with the name and descriptor. Would that be sufficient?
Thanks for your response. This will work perfectly for files:
  • \esoui\libraries\globals\defaultfontdefs.xml
  • \esoui\libraries\globals\keyboard\defaultfontdefs_keyboard.xml
  • \esoui\libraries\globals\gamepad\defaultfontdefs_gamepad.xml

But we also have some font definitions in other places:
  • \esoui\app\loadingscreen\gamepad\gamepadloadingscreen.xml
  • \esoui\app\loadingscreen\sharedloadingscreen.xml (font="EsoUi/Common/Fonts/Univers67.otf|20|soft-shadow-thick" in "$(grandparent)ZoneDescription" and so on)
  • \esoui\internalingame\market\gamepad\marketclasses_gamepad.xml
  • \esoui\internalingame\market\keyboard\marketclasses_keyboard.xml
  • \esoui\internalingame\marketannouncement\keyboard\marketannouncement_keyboard.xml
  • \esoui\overlay\gamepad\overlayfontdefs_gamepad.xml
  • \esoui\overlay\keyboard\overlayfontdefs_keyboard.xml
  • \esoui\pregame\charactercreate\keyboard\zo_charactercreate_keyboard.xml
  • Chat Bubbles
  • and function ZO_TooltipStyledObject:GetFontString(...) for gamepad UI

These places potentially may have problems with fonts replacement, so please check them too.

Last edited by TERAB1T : 11/20/15 at 06:24 AM.
  Reply With Quote
11/20/15, 01:46 PM   #9
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Alright. The font directive is implemented as specified and we've moved those outlying font objects into the default def files.
  Reply With Quote
11/20/15, 01:57 PM   #10
TERAB1T
AddOn Author - Click to view addons
Join Date: Feb 2014
Posts: 28
Originally Posted by ZOS_ChipHilseberg View Post
Alright. The font directive is implemented as specified and we've moved those outlying font objects into the default def files.
Thank you. You rock
  Reply With Quote
11/25/15, 12:06 PM   #11
CradonWar
 
CradonWar's Avatar
Join Date: Oct 2015
Posts: 3
Turkish team leader here! First of all, thank you so much Chip. And I have a question for you. Can we have our own chat channels? I think /<prefix>zone or /$(language)zone should work. Generic channels would be good.

Last edited by CradonWar : 11/25/15 at 12:13 PM.
  Reply With Quote
11/30/15, 09:35 AM   #12
TERAB1T
AddOn Author - Click to view addons
Join Date: Feb 2014
Posts: 28
I've remembered two things about unsupported languages:

1. Technical support. You can't access to support, if your language is not en/de/fr. Can you make something like (pseudo code):

if (unsupported_language) support = en;

2. Cinematic intro. If you launch game for the first time with unsupported language, you will see only black screen after login instead of character selection. Because game cannot find file \Video\Opening_Cinematic_[custom_language].bik. Can you add check for file existence, and if it doesn't exist, load English version of intro?
  Reply With Quote
11/30/15, 10:02 AM   #13
TERAB1T
AddOn Author - Click to view addons
Join Date: Feb 2014
Posts: 28
Originally Posted by ZOS_ChipHilseberg View Post
[Font:ZoFontGame] = "xyz.otf|32"
And the most important question. Where do we need to put these fonts definitions?
  Reply With Quote
11/30/15, 11:14 AM   #14
TERAB1T
AddOn Author - Click to view addons
Join Date: Feb 2014
Posts: 28
Patch have been downloaded, but language selection still locked to en/fr/de. What do we need to do to enable our languages?
  Reply With Quote
11/30/15, 12:52 PM   #15
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Originally Posted by TERAB1T View Post
I've remembered two things about unsupported languages:

1. Technical support. You can't access to support, if your language is not en/de/fr. Can you make something like (pseudo code):

if (unsupported_language) support = en;

2. Cinematic intro. If you launch game for the first time with unsupported language, you will see only black screen after login instead of character selection. Because game cannot find file \Video\Opening_Cinematic_[custom_language].bik. Can you add check for file existence, and if it doesn't exist, load English version of intro?
1) The things that use the ingame browser right now will no longer do that in the coming future.

2) We added $(officialLanguage) and made use of that to load the right video.
  Reply With Quote
11/30/15, 12:53 PM   #16
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Originally Posted by TERAB1T View Post
Patch have been downloaded, but language selection still locked to en/fr/de. What do we need to do to enable our languages?
Looks like there was a small patch in between the one we were targetting. It isn't in this patch. We'll try to get a more concrete estimate.
  Reply With Quote
11/30/15, 12:54 PM   #17
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Originally Posted by TERAB1T View Post
And the most important question. Where do we need to put these fonts definitions?
It's the same as other font definitions. You specify the path.
  Reply With Quote
11/30/15, 05:00 PM   #18
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Originally Posted by CradonWar View Post
Turkish team leader here! First of all, thank you so much Chip. And I have a question for you. Can we have our own chat channels? I think /<prefix>zone or /$(language)zone should work. Generic channels would be good.
This one is not likely. Sorry.
  Reply With Quote
12/02/15, 04:24 AM   #19
CradonWar
 
CradonWar's Avatar
Join Date: Oct 2015
Posts: 3
Originally Posted by ZOS_ChipHilseberg View Post
Looks like there was a small patch in between the one we were targetting. It isn't in this patch. We'll try to get a more concrete estimate.
Is there any date? We're waiting for almost a month.
  Reply With Quote
12/02/15, 11:58 AM   #20
ZOS_ChipHilseberg
ZOS Staff!
Premium Member
Yes this person is from ZeniMax!
Join Date: Oct 2014
Posts: 551
Originally Posted by CradonWar View Post
Is there any date? We're waiting for almost a month.
The work necessary to make this a real feature was wide reaching so we're being very careful to make sure it is as bug free as possible. We'll let you know as soon as it is officially assigned to a patch.
  Reply With Quote

ESOUI » Developer Discussions » General Authoring Discussion » Custom Localizations

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off