Hi, we are CCP Shiny and CCP Ronin and are writing on behalf of EVE Localization and Teams Stonehenge and Cerberus. We want to talk a bit about Localization and more specifically Cerberus, the new localization technology behind EVE Online that will be shipping incrementally, starting with the Crucible expansion.
“Isn’t localization just about translating words into another language?” I hear you say. And quite frankly, a large portion of localization is indeed translation and translation management with a few functional aspects tossed in for good measure.
However, once we include a concept like Internationalization/Localizability, which can be loosely defined as “Designing software so that it can be properly localized into any locale and language without any compromise to its functionality or look and feel”, we are passing the gates of Cerberus, at which point things get a whole lot more interesting, starting with updating our existing translations and adding Japanese, as well as expanding to include even more localized clients in the future.
But let’s start with some history
In 2006 the German EVE client was launched, followed by the Russian in 2009. Those languages have experienced a rocky history of crowd sourcing and finding the right provider with frankly mixed success. (Next time you meet a German player, ask what the translation of “Doomsday Devices” is in-game.) Over the years we have managed to improve those initial translations, and have received increasingly useful feedback over time.
However, neither the EVE code nor our tools and processes had been designed to support localization very well. Attempts were made to localize EVE into Japanese and French starting in 2007, but both had to be abandoned in part due to those technical limitations. It became clear that porting EVE into any new languages in the future would require replacing our localization system with something more sophisticated.
And thus Cerberus was born
Last year, Team Cerberus from our Atlanta office began work on creating a new, modern localization system within CCP's Carbon framework. This new technology was integrated into EVE's main development branch this past summer. Since then, Teams Stonehenge and Cerberus have been working together on migrating all the text in EVE to this new system. Note that this is not a simple port of all text from one system to another. The UI text in all systems has undergone a substantial overhaul, taking advantage of the new localization features, which will improve the experience of EVE both in English and other languages.
Alright, but what is it?
The new localization system in EVE introduces technology which will, in the future, vastly improve upon our ability to deliver a quality localized EVE experience to our current German, Russian and Chinese-speaking players, in addition to improving our ability to introduce new languages – starting with Japanese but with plans already underway to include other languages as well. Even the original English text will benefit from the introduction of this new system, as we'll see shortly.
While most of the improvements to our localization system affect the development backend of EVE, making life easier for programmers and designers, there will also be improvements to the text that you will see in-game. Previously, our ability to use variables (essentially names of people, places and things) was limited to simple string replacement. A programmer or designer would create a string, and have the ability to insert another string into it. The first string did not otherwise know anything about what was being inserted and would always show the same text, no matter whether you were talking about a character, an alliance, or a shiny rock. The new system brings two concepts to EVE that allow us to improve on this: entity metadata and conditional statements.
Entity metadata (and by entity, I'm referring to characters, types and locations) allows the localization system to store characteristics of EVE entities. For characters, the localization system will now have access to a character's gender. For types and locations, the localization system will now have access to things like indefinite article (in English), gender (in German) and pronunciation (in Japanese, used for sorting). Conditional statements then allow us to use variable values or metadata to actually change a string based on these inputs. Personal pronouns, for example, can be changed depending on whether the character in question is male or female. In non-English languages, adjectives can also be changed based on a character's (or an item's) gender.
One of many examples of improvements we are introducing with Cerberus is that conditions on numeric types will allow us to specify plural forms when necessary. "You own 1 share of that corporation stock" and "you own 5 shares of that corporation stock" will now be just one string in the backend, and will use the right form of the noun based on the number input. The usage of plurals can vary greatly in languages. In Russian, for example, which uses two plural forms, our translators will be providing all three forms of the noun so that the correct one can be chosen based on input. In both English and German, there is one singular and one plural form. And in Japanese, plurals are not used at all. So in the “number of shares” example, English, German, Russian and Japanese are all handled in quite different methods:
And of course the system is flexible enough for us to localize the EVE Client to other languages relatively easily, and that is definitely our plan.
The short term effects
The good: As mentioned above, the new localization system is a vital part of the EVE Japan release and our plans of further localization to other languages. As part of the Crucible release, a preview version of the Japanese translation will be available to players on Tranquility. Please note that this is a preview version and is neither complete nor fully validated. Work on EVE Japan will be continuing into next year, but we felt that it was important to provide this preview of the Japanese translation as we continue to iterate upon it. If you play with the Russian or German client you will also see some improvements where we have already given the translation an overhaul to utilize this new technology.
The bad: As part of this migration we had to re-translate the entire UI, Notifications and Messages in-game. Unfortunately, due to time constraints, a small part of the UI as well as content that has been developed by the feature teams for this release will be in English for the German and Russian client on the initial launch date. We did not take the decision to release with a partially un-localized client lightly and are not happy with this situation. In the end we decided though that given the choice, our German and Russian players were likely to prefer being able to use the fantastic features and changes that have been developed for the Crucible expansion at the end of November, as opposed to delaying the entire release for all players until the translations were ready. We are working hard on getting the remaining areas localized though and are aiming at delivering a fully localized client over the next few weeks.
The ugly: Due to this re-translation, you may also see some changes to the way text has been translated or even some migration-related issues like variables displaying in-game. We have teams of professional translators working on resolving this. However, we also realize the potential that arises from this particular situation and the migration and re-translation in general. So without further ado, allow me to present:
A Thousand Little Loc Things
It used to be the case that we were at times hesitant to make specific changes to the in-game text for German and Russian, since that text had been in use for a very long time and people were used to it. We were also aware that the players had started to use their own version of terms that had been translated with variations or in an unpopular way. Additionally, we have seen from the comments in the last localization survey that there are areas that need more attention than we had thought, while other areas we had considered important were hardly mentioned. So bearing all this in mind, we would like to use this opportunity to get in touch with our player base more closely and start a wish list of fixes and features in a similar way as the 1000 Little Things list, but this time for localization specific changes and features. We are going to put up three separate threads – one each in the German and Russian forums, so players can comment in their own languages, and one in the Issues, Workarounds & Localization section for those who want to comment in English.
We are open to any and all localization specific suggestions, but of course there is a caveat or two: We are not promising that we will be able to make everything posted there happen or that we will be able to reply to every post, but we do promise that we will be reading and considering everything. Some things might also happen sooner, while others will be something we would like to do, but that will not be possible right away. Lastly, we would like to suggest that very small, specific issues (think “there is a spelling mistake in mission x”) be put into a bug report rather than the 1000 Little Loc Things, since that way turnaround will be faster. (While we are on the topic of bug reports, I would also like to mention that the ISD Bughunter division is also eager to get more Russian and German speakers on board!)
The long term effects
Between the Cerberus technology, our internal efforts and emphasis on localization and any contributions that you, the players, will be able to make – be it in form of suggestions or working as Bughunters – I foresee a considerably brighter future for our localization than it has been over the past years. We don’t want to go into detail just yet, but there are various small and big plans in progress which we will be talking about over the next year. Personally, this makes us very happy grammar nerds.