English to French IT Translator Blog

Game Localization Link Roundup – April 2017

Besides controversy surrounding Persona 5’s localization, April has been a rather calm month in the game localization world.

June will see new elections organized for the IGDA LocSIG steering committee. It has been a great pleasure to help the SIG over the last year and half. Achievements include the resurrection of our newsletter – a repository for everything interesting happening in the industry -, 3 workshops/local study groups for the LocJAM, actual help organizing the event itself (finding/internationalizing a game, most notably), a couple of webinars, various articles and presentations…

Will I run again? I don’t know yet, but I am certainly planning to keep contributing to the community in various ways. More specifically, I am starting to build a small list of games that can easily be localized by anybody (= to gain experience and build a portfolio, to help young translators enter the industry) and thinking about new events that could encourage the global community to gather and celebrate what we do offline, regardless of background and experience.

But personal talks for now, here are the links for April!

Persona 5: How Atlus USA Localized an Instant Classic

Localize Everything – Finding Hardcore Fans Worldwide – Extra Credits

Pictures from LocJAM4 study groups – Our community in action!

“I am preparing a guide for indie game devs: How to save money on localization.” – Interesting thread on Reddit where a few devs kindly shared internationalization/localization good practices

The Legend of Heroes: Trails Series – Localization Blog #2

Preparing Your Video Game For Localization

Originally written by Jan Nedoma.

In our time, the world is getting smaller. Thanks to multinational corporations you’ll see the same goods in the shops in many countries all around the world, you’ll see the same TV show on TV in the US and in Iceland. Of course, this phenomena also applies to computer games. Game distributors would tell you games in local language usually sell much better, and the same could be said about indie games. But before the game can be “exported” to foreign markets, it needs to go through the process called “localization”. This article will discuss how to make your game localization-ready and what problems you’re likely to encounter.

Introduction

By localization we typically mean translating the game to a different language, but generally speaking, it’s about adapting the game to cultural differences of a given country. You will find surprisingly few materials concerning this part of game development in the internet. This article is based on my personal experiences with game localizations and the procedures described here have been successfully used in real life. Nevertheless, neither me or anyone else knows everything, and I’m not claiming everything described here is the only and perfect way. Consider this article a set of suggestions, based on real-life experience. If you have any corrections and/or suggestions, you can contact me at [nedoma (at) dead-code (dot) org].

This article is written from the programmer’s point of view (on Windows platform), but most of the concepts are generally usable for localization.

To make your game easily localizable means making it localization-ready. Let’s get through several most important areas affecting the game localization readiness.

Localizing the in-game texts

The string table – creating and maintaining

The in-game texts are the most obvious localization target. There are several approaches, but ideally all the in-game texts should be summarized in a big text file (let’s call is a “string table”), which can be easily handed to translators to do the actual localization work. The game should be able to load all the texts from this file and use them. Which means, by simply replacing the string table file you’re able to switch languages on-the-fly at runtime (or at install time, whichever way you prefer). But how to achieve this ideal situation? Firstly, every single text needs to be augmented by a unique identifier. This will allow us to internally only reference the string IDs (which don’t change) and the actual text content can be switched without affecting the game code. Assigning the IDs to text strings is a quite complicated task, because it’s hard to manage large quantities of text and avoid duplicities, not to forget anything etc. Of course, it depends on the game type, hence on the amount of text. In case of simple action games which only contain a couple of strings such as “New game” and “You are dead” it’s easy to maintain a string table by hand, but a large RPG or adventure game will probably require some kind of utility which will do the dirty work for you.

The approach I’m using is to develop the game (relatively) ignoring the future translation, and only when the game is finalized enough (namely the texts are more or less final), I use some kind of tool to extract all the localizable texts from the game files and to export them to a string table. During this process every text is also assigned a unique ID, and the original text occurrences in game files are replaced by this ID.

This approach brings some pitfalls, though:

1) How to extract all the texts used in the entire game? I’ll give you a single advice: try to design the game data files structure so that it’s as easy as possible. The most important thing to remember is, forget about texts hard coded in the game executable. All the texts should be stored in data files, or in the game scripts. It’s better to use text-based data files, not binary ones. The popular XML format is a good candidate, because when choosing the right structure you’ll be able to extract all the localizable texts using some generic tool, which doesn’t even have to know the actual structure of your game files. For example, imagine an XML file describing units in a real-time strategy game:

 <?xml version="1.0"?>
<Units>
<Unit>
<Name Localizable="true">Archer</Name>
<Hitpoints>100</Hitpoints>
<Script>archer.script</Script>
<Description Localizable="true">Ineffective for close combat,
but deadly for ranged attacks.</Description>
</Unit>
<Unit>
<Name Localizable="true">Catapult</Name>
<Hitpoints>500</Hitpoints>
<Script>catapult.script</Script>
<Description Localizable="true">A slow but very powerful unit.</Description>
</Unit>
</Units>

Notice that the “Name” and “Description” entities are marked with a “Localizable” attribute. That means we can make a generic tool which will load an XML document, scan all the entities (without looking for any specific names) and if they contain the “Localizable” attribute, their content will be exported to a string table. The advantage of the XML format is that there are many ready-to-use parsers available, so you don’t have to write your own. But of course, you can use a similar approach when dealing with your custom file formats.

If your game uses some kind of scripting language, you’ll probably want to extract all the string constants from the scripts. In my opinion, the best approach here is to modify the script compiler itself, because it knows exactly when it encountered a string constant when compiling the script, including the exact line and column in the source file. It shouldn’t be a big problem to extract the string constant and replace it with an identifier. Sometimes scripts contain string constants which are not supposed to be localized. For this purpose I’m using an ignore list and a library of “known code patterns” to filter out irrelevant strings.

2) The process described above will yield the following results. All the in-game texts will be stored in a string table and their original location will be replaced by some unique identifier. Even though it’s basically what we wanted to achieve, the problem is, that the original files will become a little unreadable after that. Imagine the following script:

Frank.Talk("Hi Joe, how are you?"); 
Joe.Talk("Yeah, I'm okay.");
Frank.Talk("I gotta go.");

After our intervention and after exporting the texts, the script will become something like this:

Frank.Talk("STRING0001"); 
Joe.Talk("STRING0002");
Frank.Talk("STRING0003");

While it’s pretty obvious what the first script does, the second one is totally unreadable because of the absence of the texts, which can be a problem for any subsequent script changes. There’s an elegant solution I’ve seen in some LucasArts games. Just keep both the original text AND the identifier in the source file, using some unambiguous syntax. For example:

Frank.Talk("STRING0001|Hi Joe, how are you?");
Joe.Talk("STRING0002|Yeah, I'm okay.");
Frank.Talk("STRING0003|I gotta go.");

As you can see, the texts in the scripts are now stored like this: “identifier | original text”. This approach brings us two advantages. Firstly, the code is still readable, and secondly, there’s a chance to get back to the original text if needed. For example, if the game cannot find any string table, it will still run, but it will only display the texts on the right side of the “pipe” character. Additionally, it’s easy to re-export all the texts from the game files, because the extraction tool will know exactly which texts have already been exported, and which ones are newly added (the ones not using the “pipe” syntax yet).

We haven’t looked yet at how does the generated string table look like. The decision is up to you. I’m using a simple text format, where each line contains one string. There’s the identifier, a “tab” character separator and the actual localizable text. The translator can simply open the file in any text editor and replace the texts with their translated equivalents. The string table from our example would look like this:

STRING0001 Hi Joe, how are you? 
STRING0002 Yeah, I'm okay.
STRING0003 I gotta go.

And the German translator will send you back something like:

STRING0001 Hi Joe, wie geht's? 
STRING0002 Alles bestens.
STRING0003 Ich muss weg.

You can improve the string table format to suit your needs. For example, lines starting with semicolon can be treated as comments (the game will ignore them when loading the table) so that the translators/designers can add notes to the string table file, etc.

The string ID itself can be improved too. For example, you can use some standardized format to encode the character speaking and/or the location where it’s being used etc. These are things that make translators’ work a lot easier.

In case of large games the designer will probably need to add comments to the table, to describe the context of some of the texts, otherwise the translators might get lost and the translation quality will suffer.

Another useful feature is to allow string table entries to reference other entries in the table. Typically one text appears in the game in different situations. If you allow the inter-table references, the translator can only translate the text once and “redirect” all the other occurrences of the same text to the translated entry. I don’t recommend exporting multiple occurences of the same string as a single string table entry, because they might need different translations in other language (depending on the context). Leave it to the translator to decide which strings should be the same.

Using the string table in your program.

All right, now we know how to create the string table, but how are we going to use it? Our game engine needs to load the table into memory. Considering the data structure (an identifier with a text attached) we’ll probably want to use some sort of hash table. If you’re programming in C++, the STL map container is probably a good choice.

Loading the string table file should be a trivial matter. We’ll simply read the file line by line; if the line is empty or starts with a semicolon (i.e. it’s a comment), we’ll ignore the line. Otherwise we split it into two parts: the part left of the “tab” character (the identifier) and the part right of the “tab” (the actual text) and we’ll store the pair in a hash table. Again, there’s a lot of space for improvements, such as reporting duplicate entries, reporting lines without a “tab” character (the translator accidentally replaced it by a space) etc.

A special note about whether to keep all the texts in memory at once. It might look like memory wasting to you, but the truth is most “talkative” games only contain a couple of hundreds of kilobytes of text. Very few games contain more than one megabyte of text. Considering the average memory capacity of today’s PCs, I think you can safely store the entire string table in memory. But if you’re still not convinced, or if you’re targeting a platform with limited memory (PocketPC), the solution can be dividing the table into more parts, for example generic texts and then specific texts for each level of the game etc. Then you’ll load and unload parts of the string table as needed.

From the programmer’s point of view, it’s a good idea to encapsulate the string table into a class, which will keep all the texts and provide a method (preferably a static one), which will accept the original text and return a translated text. By “original text” I mean the text in the “identifier|original text” format. The method will do the following:

  • Check if the original text contains the identifier.
  • If not, the text is not supposed to be translated, so simply return the original text we received.
  • If yes, the method will split the original text to the identifier and the text part.
  • Using the identifier, it will try to find a translated text in the string table.
  • If the string table contains this identifier, a translated text is returned.
  • If not, the method returns the textual part of the string it received.

That way we achieved that even if there’s no translated version of the text, the game will still display SOMETHING (the original untranslated version). Certainly better than displaying an empty string or some error.

Once again, we can further improve the process. A debug version of the game can report texts with missing translations, or it can return the translated text including the string table ID, so that the ID is displayed on screen. That can be useful for beta testing the translation. If the testers encounter some text with wrong translation or some grammar mistake, they can write down the identifier of the text and report it back to the translator.

The only thing left is to find all the “end points” of the program, where the texts are being used, and change these to call the method of our string table class to replace the original text with a translated one. What do I mean by “end points”? Typically these are the parts of the code where the text is actually presented to the user. Whether it be displaying it on screen or writing it to some text file etc. There are usually relatively few such points in a game engine (if it’s well designed, that is).

Let’s see one (dumb) example of how to add localization support to our code. Let’s assume we have a piece of code, which displays a message box whenever it encounters some critical error. The original code would look like this:

 MessageBox(NULL, "A critical error has occured.", "Error", MB_ICONERROR);

To display the message in another language, we’ll modify the code like this:

 MessageBox(NULL, CStringTable::Translate("SYSSTR0001|A critical error has occurred."), CStringTable::Translate("SYSSTR0002|Error"), MB_ICONERROR); 

CStringTable is the class encapsulating our string table, Translate() is a static method, which gets the original text as a parameter and returns the translated text (described above).

The code got a bit more complicated, but not too much. Alternatively, you can use a macro to further shorten the code:

 #define LOC(String) (CStringTable::Translate(String))

And the resulting code would look like this:

 MessageBox(NULL, LOC("SYSSTR0001|A critical error has occurred."),
 LOC("SYSSTR0002|Error"), MB_ICONERROR);

Similarly, you’ll need to modify all the pieces of your code where the texts are in some way presented to the user.

Storing the in-game texts

ASCII versus Unicode

Note: The following section is intentionally a little simplified. I’m just trying to describe the concepts and motivations, not to make any in-depth analysis of the history of character encoding 🙂 Also, for further simplicity I’m going to use the term “ASCII” for any 8 bit characters, even though, technically speaking, this term isn’t always completely accurate.

Another area of interest is the actual storage of the game texts in memory. Historically, most programs were using (and are still using) texts stored in the form of 8 bit characters, i.e. one character takes one byte of memory. That means one can use up to 256 different characters. The ASCII norm, where this character storage originates, was designed to store just the basic Latin alphabet (a to z, A to Z), the numbers and the symbols. Even 7 bits were enough to describe those (128 characters at most). As the software was getting more and more complex, it became necessary to store various other characters, specific to other languages (most European languages, other than English, are using some kind of accented characters). The remaining unused 128 characters were used for storing these national characters. The problem is, if you take all the national characters used by various languages, you’ll get far more than 128 of them. That’s why the concept of so called “code pages” was introduced. There were several groups of national languages defined, and it was possible to switch the code page. That means, the 128 non-English characters were getting different meaning depending on what code page was currently being used. For example, for European languages we’d define groups like: Western European, Central and Eastern European, Cyrillic, Greek etc. Similarly the code page concept supports languages such as Arabic, Hebrew and others.

To make things even more complicated, there are several standards for code pages, incompatible with each other. Some encoding was used in DOS, other in Windows, other is an ISO standard, there are some local standards…

What does that mean for game localization? If we are storing texts as 8 bit characters (i.e. the classical C “char” data type) we’re able to display at most 256 different characters. If we want to support multiple languages (we do!) we’ll have to deal with code pages. In reality, this means one thing: our game must use different fonts for different code pages. But we’ll talk about fonts in the next chapter.

I think it’s obvious that the concept of code pages is far from being ideal. In programmer’s jargon I’d call it a “hack”, or how to stuff infinite number of characters into 256 available cells as easily as possible. Also notice that I didn’t mention Asian languages yet…

The effort of solving the national characters problem once and for all resulted in a standard called Unicode. The goal of Unicode is to consolidate the fragmented code pages for various languages/regions and to define a standard set of all possible characters in all languages (or at least their vast majority 🙂

From the programmer’s point of view it’s important to notice, that – as opposed to ASCII – one byte is no longer enough for storing a single character. Currently Unicode defines over 90 thousands of different characters. There are several standards for storing Unicode characters, two most commonly used standards are UTF-8 and UTF-16. The “UTF” abbreviation stands for “Unicode Transformation Format”, the number is a number of bits used for storage. You may object that neither 8 or 16 bits are enough to describe 90,000 different characters. The point is, that a single Unicode character can be described by multiple bytes. The number of bytes is different for various characters. In case of UTF-8, one character can take up one to five bytes (and “common” characters, i.e. latin, only take one byte, therefore e.g. English text looks the same in UTF-8 as it looks in ASCII). UTF-16 uses 16 bits (word) to store characters, and even though in theory 16 bits are still not enough, practically one 16 bit word is equal to one Unicode character (unless you’re using some “obscure” language, such as ancient Japanese).

All right, that was a very brief introduction to Unicode, let’s get back to game localization.

If you want to avoid the code page problems or if you want to support Asian languages, your game engine should store texts in Unicode format. More and more modern games are using Unicode, simply because localization is now an important part of game development process, and Unicode makes localization easier.

Above I mentioned two ways of storing texts, UTF-8 and UTF-16. UTF-8 uses normal 8 bit chars, UTF-16 uses the wchar_t data type, which is typically 16 bit integer (note: this is true for Windows platform; Linux uses 32 bit wchar_t by default). One great advantage of UTF-8 is that if you already have a finished old program using 8 bit characters, you don’t need to change anything to store UTF-8 strings. That’s a great time saver. Also all the standard C-style string manipulation functions (strcpy, strlen etc.) will work on UTF-8 strings. But of course, you must remember that one UTF-8 byte isn’t necessarily equal to one character (as I said, one UTF-8 encoded Unicode character can take up multiple bytes). It means, for example, that the strlen function will return the number of bytes in the string, NOT number of characters! Also if you’re accessing individual bytes of the string using the [] operator, you’re getting bytes, not characters. But even with these disadvantages, UTF-8 is an (almost) ideal solution for those developers who need to add Unicode support to their legacy code quickly and easily.

Nevertheless, if you are starting to design a new system, I recommend using the wchar_t type for storing text strings. The ANSI C standard now contains all the string manipulation functions in two versions: the classical ones, working with “char” data type (strcpy, strlen…) and their equivalents for the “wchar_t” type (wcspy, wcslen…). Similarly, STL offers you both “string” and “wstring” types.

Of course, storing the texts is one thing, and displaying them on screen is another thing. But we’ll get to that later in the Fonts chapter.

Unicode on various platforms

Of course, the problem of national characters and localizations is not game-specific and needs to be handled on operating system and development platform levels. So let’s take a brief look at how some of the most popular platforms deal with Unicode.

Linux was historically built on ASCII characters, therefore Unicode support is commonly realized using the UTF-8 encoding on this platform, and it became de facto standard for string interchange.

The situation on the Windows platform is a bit more interesting. Windows systems have been for a long time developed in two parallel branches. On one side, it was the Win9x branch (Win95, Win98, WinMe) targeted at low-end hardware. These systems were using 8 bit ASCII strings. On the other hand, the WinNT branch (WinNT, Win2000, WinXP, Vista) are using 16 bit characters from the beginning. But to maintain backward compatibility with programs written for Win9x, the NT-based systems must be able to handle ASCII strings as well. In reality, all the Windows API functions working with strings are provided in two variations. The functions use the same name, but the ones working with 8 bit characters end with “A” (for ANSI) and the ones working with 16 bit characters end with “W” (for Wide). For example, we’ll find the MessageBox function as MessageBoxA and MessageBoxW. The “A” functions only work as a stub, which converts the string parameters from ASCII to Unicode and calls the “W” function. On Win9x systems this conversion is also partially supported, but the other way around and only for a couple of selected functions. Fortunately, Microsoft later released a separate library called “Microsoft Layer for Unicode”, which allows programs written for Win9x to use the entire set of Unicode variations of API functions.

Unlike Windows NT, the Windows CE (Windows Mobile) platform for mobile devices got rid of the compatibility and only supports 16 bit characters. If you are developing a game for WinCE, you can still use normal ASCII strings, but whenever you need to call some API function expecting a string, you’ll need to convert the string to UTF-16.

Modern runtime platforms Java and .NET are using 16 bit characters exclusively, even though they provide a large set of conversion routines from/to other text encodings.

In the end of this chapter I’d like to mention two useful Windows API functions for converting strings between 8 bit and 16 bit characters. MultiByteToWideChar converts from 8 bit characters to 16 bit and WideCharToMultiByte converts from 16 bit characters to 8 bit. The important thing is that both of these function can (among others) handle UTF-8 encoded Unicode strings.

Fonts

In the previous chapters we were talking about how to separate in-game texts from the rest of the game and how to store them in memory. The result of all our efforts should be a localized text displayed on screen. Of course, we need fonts to actually render the text, but there are many possible approaches. Let’s take a closer look at some of them, especially taking localization into consideration.

The traditional approach to game text display is to load a special texture, which contains all the characters, and then render each character as a single quad, textured by the appropriate part of the texture with the image of a specific letter. This approach is understandable and easily implemented. The problem is, the font texture only contains a limited set of characters, typically 256 of them, i.e. a single code page (more on code pages in the previous chapter). To be able to display texts for various languages, our game will need to be able to use different fonts for different code pages (for example a texture with Russian font will contain completely different characters than a texture with Greek font). Now, it depends on how the font texture is made. There are generally two ways. Either the texture is manually created by an artist using utilities such as Bitmap Font Builder or FONText, or the texture is automatically generated by the engine at runtime. In the first case it will be necessary to manually create font textures for all the code pages our game is supposed to support. In the second case the game has to know which code page should be used when generating the font texture. For example, if we are using Win32 API for generating the font, we have to create the font using the CreateFont function, which accepts a code page identifier as its 9th parameter.

As you can see, we’re once again sinking into the limitations of code pages and ASCII strings. Besides, this approach has several more or less fatal limitations:

  • By painting the text ourselves, letter by letter, we’re bypassing the font rendering engine. No matter if we’re using Windows API, FreeType or some other font rendering library, these libraries are usually designed for rendering continuous blocks of text. This allows them to render the text with respect to certain typographic rules. For example, they’re using so called kerning, i.e. different space between various letter pairs (kerning pairs), which improves the look of the rendered text, especially for larger text sizes. If we are rendering the text ourselves, we’re missing these advantages (or we have to reimplement them).
  • By painting text letter by letter we’re losing advanced text formatting options. And here we’re getting back to localization. Some languages, namely Hebrew and Arabic, are writing text from right to left (right-to-left, RTL). While Windows API directly supports RTL texts, and we can enable the support by specifying one parameter of the ExtTextOut function, when painting the text ourselves we have to handle RTL ourselves as well. You might say implementing right-to-left text rendering shouldn’t be too hard, but it’s more complicated that that. Hebrew and Arabic texts can contain parts written in Latin (for example names) or numbers, and these parts need to be rendered left-to-right. It’s so called bidi text (bidi = bi-directional).
  • And there are the Asian languages. While in case of European languages we can use code pages, it’s not quite feasible to render all Chinese characters into a single texture. We have to look for other solutions.

The problems described can be solved using the following method. Instead of using the existing font rendering engines just for painting individual letters into a font texture, we can let them paint into the texture the entire text we’re about to display on screen. That way we can use all the advanced text formatting functions practically for free. Of course, this approach also has its deal of disadvantages. Depending on the amount of text the resulting texture can be quite large and it will take a lot of video memory. Also, it might be necessary to divide the texture into smaller parts, depending on the capabilities of the video card.

Compared to the static font texture, this approach is more time and resource demanding when generating the text texture. It’s not feasible to re-generate the text texture in each frame. Fortunately, each text caption typically stays on screen for some time, therefore it’s possible to implement some sort of texture cache, which will hold, e.g. 10 most recently rendered texts. The text texture will be generated in one frame, and reused in all subsequent frames.

In any case, it’s up to your consideration to decide which of the described ways will better suit your needs. I just tried to summarize the advantages and disadvantages than might not be obvious at first.

Other aspects of game localization

In the previous chapters we talked about game localization, especially about storing the game texts and their rendering using fonts. These are no doubt the most important areas, but localization also affects other parts of development. Let’s take a look at these in this final chapter.

Graphics

There’s a single most important rule: try to avoid using any text directly in graphics whenever possible. All the texts should be rendered programmatically using fonts. Keep in mind that all the textures containing text will need to be repainted for all language versions of your game. If you are creative, you can sometimes avoid using texts altogether. For example, don’t use buttons with text labels, use icons instead. Or just display a textual tooltip when the mouse is hovered over the button.

User interface

By user interface I mean various windows for saving game, main menu, confirmation dialogs etc. Even when designing the user interface you should think about localization. Keep a lot of additional free space for all the text labels. Remember that the translated text can be much longer than the original. This is especially true if your original language is English. English is in general quite brief and other languages usually need much more space to describe the same thing. Also remember, that for Asian languages you’ll probably need to use bigger fonts, so make the text area slightly higher than necessary.

Funny fact: German is probably one of the most critical languages when it comes to text lengthening. In Oblivion the player is picking up healing potions, described as “Light potion of healing” in the inventory. German localizers translated the name as “Schwacher Trank der Lebensenergie-Wiederherstellung”, which wouldn’t fit in the reserved screen space, so they had to abbreviate the name to “Schw.Tr.d.Le.en.-W.”, which is… kind of hard to comprehend 🙂 It’s a nice example of badly designed user interface, resulting in poor localization.

Voiceovers and videos

If your game contains voiceovers, keep these sound files separate from the generic sound effects. How to organize and name the voiceover files depends on situation, but you can use the string identifier from the string table to name the sound file. For example, if your string table contains something like:

 STRING0001	Hi Joe, how are you?

The voiceover file for this line would be stored in a file called “string0001.mp3”. The game engine can then automatically find and play the voice over for the line being displayed on screen. Also, if your string table ID contains the character the line belongs to, you can easily filter lines for a specific voice actor etc. Well designed string table structure even allows you to generate entire scripts for each voice actor.

Always allow subtitles display for videos in case the localizers won’t be able to record localized voiceovers. You can use standard formats for video subtitles, such as .SUB or .SRT, because there are existing editing tools for them.

Keyboard input

If your game uses any kind of keyboard input, such as the player name or saved game description, don’t use DirectInput for this purpose, but the Windows API messages, like WM_CHAR. That way Windows does the dirty job of mapping various keyboard layouts to national characters, “dead keys” handling etc.

Cultural references

When designing the game try to avoid references and jokes specific for one language and/or nation. They are hard to translate and complicate the localization process. If you have to use these, try to provide the translators with a sufficient description, so that they can adapt it to their local cultural environment.

Try to avoid game situations that can be offending to some national or religious groups (remember the Muhammad cartoons controversy, for example).

Conclusion

This article concentrated on the often-omitted area of localization readiness of game engines. We went through several most important topics, revealed some of the possible pitfalls and tried to find solutions. If you are planning to implement localization support in your game, hopefully this article will help you to avoid some dead ends. Thanks for reading.

Should I Hire A Freelance Translator Or A Translation Agency?

Whenever you are looking for a translation service provider, the first thing you will need to do is to choose whether you will go for a freelance translator or a translation agency. When you do so, your decision should be based on few things:

  • Type of project (one-time project or long term project; bilingual or multilingual project)
  • Type of text (highly sensitive and confidential content; highly specialized content)
  • Services you need (language services only or other additional services)
  • Budget

Let’s analyze each of the situations.

  • Type of project

If you are going to need translation services repeatedly, it is better to search for a freelance translator you can trust. Here is why. If you hire a translation agency, you won’t know who is working on your texts. You may be happy with the translation first time, but there is a great chance that your next text will be translated by somebody else. Agencies change their Project Managers quite often and your texts may be translated by different translators each time. It is important to have the same person translating a long time project for few reasons:

a)      They get to know your style preferences, your company’s specific slang, your products/services and your company’s philosophy and will implement them in the translation.

b)      There will be a high level of terminological and stylistic consistency throughout all translations.

c)       Usually, translators build local glossaries and translation memories that help them review translations they’ve done previously. This is important when you have phrases/sentences that repeat in your texts (like chapter titles, for example) and ensures that these repeated phrases will be translated in the same way all the time.

On the other hand, if you have a small project and you are sure you won’t need any other translations in the future, you may opt for the services of a translation agency. They will find a good translator for your project and you won’t have to spend time searching. Usually they already have translators registered in their databases and you won’t need to invest any additional time to find one.

It is also a good idea to contact a translation agency when you have a multilingual project (when your texts have to be translated in more than one language). They already collaborate with many freelance translators for different language pairs. However, if you are going to need translation services for a long period of time, I strongly advise you to invest the time needed and find a good translator that understands your needs.

  • Type of text

If the information that has to be translated is highly sensitive (like texts addressed to victims that were sexually harassed), or highly confidential (like business contracts, legal cases), it is better to contact a freelancer to do the translation. Here are the reasons:

  • Your text will be handled by one person only;
  • You can sign a confidentiality agreement with the translator;
  • Generally, translators have already their own terms and conditions of collaboration and usually they treat confidentiality with the highest level of professionalism;
  • You will know all the time who exactly is working with your text and whether that person can be trusted or not.

If you handle the text to a translation agency, there are multiple levels of employees that will have access to your text: your contact person, the project manager, probably the accountant as well + the translator.

  • Services you need

If you need a wide range of services besides translation, it is better to contact a translation agency. Assuming you need your text to be translated and proofread; then you want that somebody arranges the text in a special format (DTP services) or that the text is SEO friendly and links to different pages on your website, etc., a translation agency will find the right professionals to do each part of the job. A freelance translator alone usually specializes in translation and/or proofreading only and won’t be able to provide you all the services you need.

  • Budget

Like any other activity, there is a clear relation between the quality of a translation and the rate charged. Translators are usually people with university degrees in different fields and any educated professional expects to earn at least the medium salary in his/her country. If you see advertisements that promote quality translations at a very low price, you’ll probably pay for machine translations or crowdsourcing.

If you outsource your project to a translation agency, make sure you know what rates they offer to their translators. All businesses tend to try to cut costs down. You probably don’t want to pay a rate of 200 USD/EUR per 1,000 words to an agency, while the agency finds a cheap translator and pays them a rate of 30 USD/EUR per 1,000 words. Such gaps are very common in the translation industry. Make sure you know what you are paying for and that the quality you receive is worth your money.

Working directly with a freelance translator will usually cost you less and there will be 100% transparency regarding the money you pay.

Basically the rule of thumb here is to collaborate either with small translation agencies (few language pairs covered, they usually value both their clients and their translators), or with freelance translators directly.

Don’t believe those agencies who claim to provide good quality translations in all language pairs possible. It is usually not true. They won’t have the in-house staff to assess the quality of any text in any language.

LocJAM4 Kyoto Study Group Presentation, Topics and Personal Notes

 

The Kyoto Study Group for LocJAM4 took place on April 22nd and was followed by a networking party. The goal was the same as usual: embody the spirit of the LocJAM by gathering game enthusiasts with various degrees of experience to discuss localization, learn from our collective experience and simply have fun.

The Presentation

For my third LocJAM presentation in just a little over a year, I decided to move away from the game localization process approach and instead went for something a little more concise and practical.

Here is how we approached this year’s event:

  • Quick introduction of the LocJAM: Because a quick reminder of what the LocJAM is and isn’t always helps. The slide is pretty self-explanatory
  •  

  • Introduction of Ikinari Maou and playthrough: To understand where the LocJAM4 game is coming from, we introduced and played the original version of Ikinari Maou. Most importantly, we analyzed what is going on in the game (who is who at what time) and how to beat it. Getting that part right is essential to produce a good translation – more on this later
  •  

  • Comparison of LocJAM Japan winning translations: The reason I chose this approach for this presentation is that, although the Amateur and Pro winning translations were ultimately picked up by the same group of jurors, they came up with two radically different submissions in terms of style:The Amateur translation is a very creative one, with a well-crafted glossary and a bit of extra humor. It occasionally gets in the over-localization warning zone, but gets away with it thanks to the very solid writing and natural integration of the spiced up bits. And well, it’s a localization contest, so can’t blame people for trying to show off their talent in that area.The Pro translation, on the other hand, is a more faithful one, funny when the original is, neutral when it should be. Clean and accurate, to the point it sometimes gets close to be a little too literal – the perfect opposite of the Amateur translation.You can check the slides for a few examples opposing those two styles, or download the whole text here for Original/Amateur/Pro/LocJAM4 versions of Ikinari Maou.
  •  

  • Takeaways: So why did the jury went for two submissions that don’t seem to have much in common? The answer is simple: because above all, those two localizations were executed with talent.People keep asking us if jurors would prefer such or such style. But the truth is that, more than a specific style, jurors will be mainly looking for entries that grasp the spirit of the original game and offer the player a solid experience.Ikinari Maou is a puzzle game. Conveying hints and explanations properly is critical here. Only a few participants really understood what was happening in the game and transcribed that in English. Some other entries had great writing but lost tips in translation, effectively making the game harder than it is supposed to be. So my first advice here for LocJAM4 participants is to really understand how to beat the game and how to ensure the player experience isn’t altered by their translation.The second point is that there are lots of valid styles between over- or under-localization. You shouldn’t focus on what style the jury may or may not like, because 1. there’s no way to know that and 2. it’s not a critical factor in determining winners. More than anything, you should find your voice and stick to it consistently throughout your work. LocJAM Japan winning entries both got that part right, and it’s what truly made them stand out. Reading through their submissions, it was obvious they enjoyed translating the game and were in absolute control of their writing. Just focus on what you do best, and translate the way YOU think is right.
  •  

  • Introduction of LocJAM4’s version and quick playthrough: Here, we focused on how characterization and dialogs were purposely exaggerated for the main LocJAM event. We also mentioned the special set of instructions for Japanese translators, who are asked to find their own unique style for this “back-localization”.For the other languages, although we’ve got a spicier version here, the challenge is exactly the same as it was for LocJAM Japan: ensure your localized version preserves the original puzzle-solving experience, find your tone and don’t be afraid to exhibit your craft when the source text calls out for creativity.
  •  

  • A bit of fun with the machine-translated version: To end up on a lighter note, we checked a few parts of the original game translated with Google Translate. The result was… interesting, shall we say. Silly fun, but a good way for everybody to relax at the end of the presentation and get in the mood for a chat.

Topics Raised by Participants

Before and after the presentation, the study group gave us all an opportunity to chat about various game localization-related topics:

  • How to get started in the industry: a classic for aspiring translators. We quickly discussed of common job-hunting tactics: contacting localization agencies with a carefully crafted CV, networking, participation to industry events…
  • How to gain experience: the LocJAM, of course! Past edition texts are freely available for translation, regardless of your language pair. Something you can show potential clients, and thus solid marketing materials. Also mentioned the Manga Translation Battle contests for those with a broader interest
  • “A good localizer should also be a spontaneous consultant”: A non-translator participant noted that the game’s font was hard to read and that, if he was a dev, he would appreciate if translators mentioned that issue. It was the starting point of a fascinating discussion about the role of translators and communication with developers. How far we translators should get involved? Are we responsible for offering a similar experience in our native language by making recommendations for font/interface changes? If you’re working with direct clients, you may want to keep in mind that they may desperately need your advice on such issues. Time to polish our consulting skills?
  • How to handle translations for languages heavily depending on context and for which gender/numbers can be ambiguous, like Japanese: in short, experience, careful text analysis and queries when all else fails. If you need context for a large number of strings, try to go for general queries (“can you mention who is talking for each line?”)

How Did it Go?

  • We had a total of 20 people, mostly localizers (good mix of hopefuls/established ones), but also a small number of designers/devs, which encouraged constructive discussions, beyond the sole topic of translation
  • What really pleased me is that everybody blended in naturally. People just started exchanging naturally, and the atmosphere was very friendly. I sort of felt sorry to interrupt the audience to start my presentation
  • Getting a bit personal here: I’m a shy French guy with 0 public speaking skills. I’m not a native speaker of English nor Japanese. Of all the participants, I was probably one of the least qualified to make a presentation. And still, just because I took the initiative, we were able to have a fun event during which everybody learned something and made important connections. It doesn’t take much to organize a LocJAM event, and it doesn’t need to be perfect. Just do it and great things will happen, because we have an amazing community

Game Localization Link Roundup – March 2017

Another month gone in the small world of game localization! In case you missed it, LocJAM4 is now live, with a creative English version of Ikinari Maou as source material. We could have had another Tyrano Builder game for contest, had we wanted to, but we liked that retro-looking RPG-puzzle game so much we thought it would be a shame not to see it localized in more languages by some of our industry’s finest. We’re serving you a spicy, heavily westernized version of the game, but the winning entries of LocJAM Japan -more faithful to the source- are also available online.

We’re already seeing great content from participants popping up here and there, which pleases us immensely. I will myself present at Kyoto’s local study group on April 22nd, after which I will share my presentation and notes.

But for now, here’s the link roundup for March! Interviews and excellent content from the GDC are waiting for you.

Nintendo Treehouse Log – Nintendo’s secretive Treehouse (which handles the localization for many of Nintendo’s games) now has their own blog

Localization talks at GDC 2017 – Final Fantasy, advanced localization tools and Chinese shenanigans in this quick summary of the localization-themed talks at GDC

‘Witcher’ Studio Boss Marcin Iwinski: ‘We Had No Clue How To Make Games’ – Nice long interview with CD Projekt Red’s Marcin Iwinski, from Polish localization to the Witcher

Localization Shenanigans in the Chinese Speaking World – Straight from the GDC vault

Learning Japanese board game culture from Yakuza 0

Localization Roundtable 2017 – Summary – A summary of the topics discussed during the localization round table organized by the SIG during the GDC

Final Fantasy XV Localization Director Talks “Fantasy Based in Reality” and Much More

The Anthony Teixeira Scholarship

Renewed for 2021!

A quality education is important for all people. Sadly, not everyone cannot afford one. Daunting expenses mean thousands of students can’t pursue their educational goals every year. We value education and want to help people with the finances for their higher studies.

We are pleased to announce our very first scholarship “Anthony Teixeira Scholarship Program” to help students achieve their educational goals. The $500 yearly scholarship will be awarded to one student for their education expenses. Further, our aim is to double this amount for next year’s program.

Scholarship Amount

The scholarship amount is $500 and it will be awarded to one student for their education expenses.

Who is Eligible for the Scholarship?

We want to help a student who is really in need of funds for their studies. Both Undergraduate Students and Graduate Students can apply for the scholarship program, provided they are enrolled in a full-time degree program in an accredited college or graduate school.

How to Apply for the Scholarship?

Applying for the scholarship is easy. We have intentionally made the application process very simple so that a maximum number of students can apply for it. Only one winner will be selected.

Here are the steps to apply for the scholarship program:

  • Write an essay of 1200+ words on the topic “A Better Way to Learn Foreign Languages, Translation Skills”
  • You must submit your essay on or before December 31st, 2021.
  • All applications should be sent to [email protected] in Word format only. PDFs or links to Google Docs will not be accepted.
  • You should mention your full name, your university name, phone number, and email address in the scholarship application.
  • Make sure your essay is unique and creative.
  • Plagiarism will not be tolerated, and if we have found that you have copied the article from some other source then your application will be immediately rejected.
  • You should not provide any other information other than that mentioned above.
  • After the application deadline has passed, our team will judge your essay on creativity, the value you have provided, and its thoughtfulness.
  • The winners will be announced on January 15th, 2022 and the winner will be notified by email.

How will applications be reviewed?

We will manually review each article/application submitted and list the winners on this page after the deadline date.

Privacy Policy for Scholarship

NOTE: Anthony Teixeira’s Privacy Policy for all scholarship applicants’ submissions ensures that personal information will not be shared and is for our own internal use only. No information collected during this process will be given to 3rd parties, but we reserve the right to use the submitted articles as we wish.




6 Ways Good Translation Agencies Can Be Better Than Direct Clients

Translation Agencies vs. Direct Clients - Which is best?

Direct translation clients seem to be the Holy Grail to many of my freelancer colleagues. Better rates, more direct communication, increased likeliness to be credited… There are many apparent advantages in working without a middleman. In reality, there are all sorts of direct clients, just like there are all sorts of agencies, and in some cases the latter may be your best option.

What makes a good agency?

Very good question, one that would deserve an article of its own. To keep things simple for the needs of this one, we will consider here that a good agency is one that:

  • Generally sends you projects related to your specialization fields
  • Accepts to pay rates one judges decent
  • Pays on time
  • Sends file ready for translation (or is willing to pay extra for the conversion)
  • Has your translation checked
  • Handles basic end client requests
  • Offers manageable deadlines
  • Lets you work with the tools of your choice
  • Ideally uses your services on a regular basis (let’s say once a month or more on average)

You could add more I guess, but that doesn’t sound too bad for a start, right?

The majority of LSPs for whom all the above apply generally fall into one the following two categories:

  • “Boutique” agencies, relatively small but very focused on a specialization or a language pair
  • Very large agencies, receiving enough work to have specialization-based departments, or just large-enough volumes to keep you busy

The greater part of my income comes from translation companies meeting the criteria above, so nothing unrealistic here.

The number of direct clients I translate for is slowly increasing every year, but I don’t feel any need to rush things. There’s a lot I love about the providers I work with:

1. Negotiations are much simpler

One reality of our industry is that many of the prospects you will meet have no idea about how translation works. I receive a lot of inquiries for projects that don’t even cover my language pairs or that are definitely not a match for my specializations.

When their requests are relevant, they won’t always be sure of what they want exactly. You get a lot of “We’re pondering…”, “We haven’t defined the scope yet”, “We just want to know”, “At some point we may send you…”. Sometimes they will decide they don’t need translation services after all, for all sorts of reasons – price naturally being the most common pain point, as your average prospect also doesn’t know how much translation can possibly cost.

Once I exchanged a long series of e-mails with a prospect for about 2 hours until she finally sent me a quotable file. I had told her my per-word rates in my first message, but it’s only when I applied it to the document that she realized that… well, let me quote “Im sorry its just too expensive. I have another 3 batches like that.” To whom shall I bill my time?

Don’t get me wrong, rejected quotes are part of the game. But with agencies, you get a final answer much quicker. They know what they want and the profile they’re looking for. Which means the rejection rate also tends to be significantly lower, at least in my case. In the end, even if you get a lot of quote requests, it takes a lot of time to find a good end client.

2. The files you get are ready to go

A good agency knows that PDFs aren’t an ideal format to work with. If both of you are using a common CAT tool, they will prepare and send you a file you can start working on right away. If they can’t, they will be open to price negotiation.

On the other hand, direct clients will rather send what is convenient to them. It can take time for them to understand you’re not overly excited about working with their exotic file format, and they may me surprised when you suddenly start talking about changing your rates. I’m an IT guy, I can work around most file types, but it still occasionally takes me an awful lot of time to have something workable. I can imagine the pain for non-technical people when they suddenly have to translate a website directly from random PHP or JSON files.

3. You don’t get (too many) unnecessary queries

A serious agency will act as a buffer or filter between you and the end client. They will be able to answer basic questions and queries for you, so that you don’t have to explain why your translation doesn’t look like Google Translation’s, or why it says your text back-translates to something nasty. They’ll often have someone in-house to handle small edit requests. And they will kindly let their customer know that “my cousin who studied French in high school and says your translation sucks” is most likely not in a position to judge your work.

More seriously, people who think they know about languages better than they really do can quickly give you headaches. I’m happy for agencies to take their cut if they handle such persons for me.

4. The work stream is more consistent

Very large and boutique agencies will, in most cases, have several clients in your field, which helps maintain a healthy stream of work. In contrast, things tend to be more sporadic and unpredictable with end customers.

Another thing is volatility. Cost reductions, people moving to another company, creation of an internal translation team… there are many ways a client can stop working without any further notice. While this also applies to agencies to an extent -I can only speak from personal experience here-, my average relationship time is definitely higher with agencies.

5. Think about customer acquisition cost

When we talk about direct clients, the focus is always on how much we earn. Yet, I rarely hear about how much it costs to get a direct client.

How one finds direct clients? Conferences, associations? They’re rarely free and they can eat up quite a bit of your time. A well-optimized website? Hours and hours of SEO and content writing to get any results. Direct e-mails? You’ll spend a lot of time writing them if you want to do it right, for a low response rate. Social networks? Another time-consuming method.

It takes time, money, efforts and probably a bit of talent too. That’s why agencies have their own sales/marketing people, sometimes dedicated departments for the big players.

Agencies typically find me on translation portals or social networks, and it costs me virtually nothing, time and money-wise. I pay a small subscription fee for such websites, but I haven’t made any significant edits to my profiles in years. Compare that to the time spent maintaining a website + blog…

6. You can focus on what you like/are good at, and work faster as a result

If you start working on a large project for a direct customer, chances are that it won’t be 100% focused on your specialization. In the IT/software industry, for example, marketing texts, EULAs, etc. often get thrown in the mix besides purely technical content. A good agency will assign files to experts of their respective fields and keep a central TM/glossary.

If you work directly with the end client, you’ll either have to a. handle those parts yourself, which will take extra time if you want to translate properly, or b. spend time informing them about the situation, possibly recommending a colleague and helping them reorganize the content.

So what is really better? Is there an ideal direct client/agency ratio?

If you put all of these points together, you may start asking yourself: When all is said and done, will I really earn more with direct clients? Is it really worth spending so much time looking for them?

Spending time and money to get a deal done, explaining the process to your new customer, preparing the files, getting them to pay you, answering questions a good agency would not ask, dealing with parts that are out of your sphere of expertise… All these things will lower your average net hourly income.

Working directly with the actual customers offers other benefits than rates alone, of course, but the possibility of a better income is often what motivates people to chase them. As I wrote before, though, raw rates are not nearly as relevant as your income per time unit. Sometimes a good agency can be your best bet.

So what should you really be after? 100% direct clients, 100% agencies, 50/50, 75/25? Difficult to say. You will find extremely successful translators spread all the way between the two extremes.

In a perfect world, you would only work directly with awesome end customers who perfectly understand your job and have a ton of work for you. In the real world, translators will often find it easier to build an agency clientele and progressively try to replace them with quality end clients. Easier said than done.

In any case, and whatever path you choose to follow, try to keep these two points in mind: there’s nothing wrong working mostly with agencies if you are happy with them and direct client doesn’t equal quality client. If you build a clientele that gives you satisfaction, the rest shouldn’t matter. You shouldn’t overlook LSPs only because they get in the middle.

Starting a Small Business in Japan as a Kojin Jigyo

I originally wrote this article a few years ago, when I was only starting as a freelance translator myself. Long story short, kojin jigyo really helped me get started without any set up fees or administrative complexity. Since then, my business has grown and I have incorporated to enjoy the benefits of Japan’s social insurance, among other things. It works slightly better for me now that the dust has settled, but kojin jigyo remains an extremely attractive proposition for those in need of flexibility and simplicity.

Here you will find an updated version of the original article, with fresh information and previous comments left for reference.

The idea of starting a small business in a foreign country can sound intimidating. However, whether you are trying to run a restaurant, a small language school, or simply making a bit of cash as a freelancer, you will be happy to learn that there is an extremely simple form of business you can open in Japan.

It is called kojin jigyo (個人事業), or sole proprietorship as could be translated in English. It is possible to declare yourself as a kojin jigyo anytime, for free, and without any limitations of revenue.

What are the advantages of being a kojin jigyo?

  • No restrictions on income, and your losses can be deducted from your revenues when you fill your tax forms.
  • All you need to do then is to keep track of your earnings and expenses and declare them in your kakutei shinkoku once a year between February and March (you will have to use the blue form instead of the white one).

As a pain-free form of business, it is commonly used by small restaurants, language schools, import/export companies and people working as freelancers or consultants. The only risk as a kojin jigyo is that your liability is unlimited. That said, if you are in control of your expenses, that shouldn’t be a problem.

How do I declare myself as a kojin jigyo?

It is extremely simple! Just fill this form, print it out and send it to your closest tax office.

Once this is done, just make sure you keep all your payments on record, in case someone comes to ask.

A great thing about kojin jigyo is that your expenses, if relevant to your business at least to an extent, can be deducted from your revenues, which potentially means it can help you pay less in taxes.  For example, say you buy a new laptop. Whatever your industry is, chances are you will need to be work on a computer at some point. You can register this purchase as a business expense! This also works for things like transports (you need to go out and see clients, don’t you?) or even the coffee you drink if you work as a private teacher. Just make sure it’s relevant to your business and you can back your claims.

Of course, if your business takes off, that you start paying employees and want to limit your liability, you will need to consider incorporating yourself at some point and start a 株式会社 – kabushiki gaisha.

That said, the kojin jigyo is a great starting point and is still relevant to a number of not-that-small businesses. This is the form of business most teachers, translators, consultants I know work under.

Comments

Dayal Singh on August 4, 2011 at 5:44 pm
We are based in New Delhi India would like to know if we can (Kojin Jigvo)start sole proprietary firm in Japan with your given instructions.
Kindly advise documents required processing time and fees payable for
for the same.
Thanks and await your reply to direct email address

loic on August 24, 2011 at 9:08 am
Great article, I wish I had it when I opened my kojin jigyo a few months ago! I was wondering why you use blue form instead of the white (form B) to pay the taxes? As a freelancer, I don’t have so many expenses and was thinking that the easiest option is the white form. Would you have any advice for me? Thanks!

Keith on September 29, 2011 at 4:39 am
Interesting. I am on a PR visa and want to start my own Kojin Jigyo.

Is it really as simple as one form? I would like more info or a chat about it.

siti on October 3, 2011 at 7:39 am
hye there…hajimemashite….konnichiwa…(know basic japan language a little bit)
I am very interested to know more on this ‘kojin jigyo’ thing….first of all,maybe i should introduce myself..my name is Siti and Im Malaysian…I am a fresh graduate student and have no experience at all in business directly…indirectly I used to sell clothes and scarf through facebook…and i found myself really interested to open up my own business…currently im taking International Master in Small Medium Enterprise in Universiti Malaya,Malaysia..next year I will be doing my practical study..and I found many articles on the SME industry in Japan and I really looking forward to my practical study in any SME company or known as ‘kojin jigyo’ in Japan…I have read all of your articles…its nice to know that you are one of the ‘kojin jigyo’ owner…could you give me any advices to get a place for my internship next year or any good advices to become one of the ‘kojin jigyo’??
looking forward for your response…
thank you very much…..

quest on January 25, 2012 at 7:06 am
Good article.I am planning to setup kojin jigyo as i have some freelance works related to my visa.I m under engineer visa status.do u have any idea ?kojin jigyo will create any problems related immigration.
can i start with engineer visa.?

admin
on January 25, 2012 at 7:19 am
Thanks for your comment, and absolutely, your can start your kojin jigyo with your current visa. As long as you have your gaijin card and that you declare your income to your local tax office, there shouldn’t be any trouble.

Nathan on June 28, 2012 at 3:33 pm
Hi. Thanks for your clear tips and knowledge.
My wife and I, she is japanese, live in australia but would like to start an online business in japan. Is kojin jigyo still possible? Also, what do you mean about unlimited liability? Can we take out insurance? Thanks.

Faisal Mamun on August 16, 2012 at 7:13 am
Hello, i am interested to know more details about Kojin Jigvo to setup small business in Japan and ready to pay for consultancy. You may directly contact –

I have more than 15 years experience in IT as Service Management in leading Multi national company..Currently i am working for japan but remotely..

Sophia on September 6, 2012 at 1:29 pm
Thanks for your great article!
I’m now employed by a japanese company but alsoI’m planning to start my small business such as events orgnanizing. Will it cause the immigration problems?
And will it be better if i register a company or just do it unoffically?
Thank you 🙂

admin
on September 7, 2012 at 12:50 pm
No, I don’t think immigration services would cause you any sort of trouble for that. Tax offices may if you make a lot of money and do not declare it.
If your small business is not generating too much profit (say below 1,000,000 yen a year), you can probably keep it unofficial.

Scott on September 6, 2012 at 3:08 pm
Hi,

Were you able to open a bank account in the name of your chosen Kojin Jigyo?
Is that even possible?

Thanks 🙂

admin
on September 7, 2012 at 12:46 pm
Apparently it used to be possible with Japan Post, but I recently opened an account with them and was told it wasn’t possible. So, short answer, no I guess, but you can still try and ask your local bank.

K on September 10, 2012 at 8:16 am
Thanks for the info. I have a question though. My partner and I want to start an Eikawa in Japan. Can two people be listed on the kojin jigyo or will they only except one person on the kojin jigyo application?

admin
on September 10, 2012 at 12:36 pm
You can only have one name on the application. What you can do is either have both of you register a kojin kigyo, or have one person register and then “hire” the other.

Alex on September 11, 2012 at 2:50 am
Hello! Thank you for this great article.

I am wondering – is it possible to run a kojin jigyo on a student visa, provided you work within the permitted number of hours a week? Arubaito is no problem, but I don’t know if running a small side-business would somehow be against the terms of the visa. Thanks again!

Alex

admin
on September 11, 2012 at 10:48 am
Hi Alex, excellent question! I guess that would be a bit against the spirit of the student visa…
If you’re providing services directly, like design or translation, you could maybe declare them as a baito? Otherwise, if the amount is not too big, you shouldn’t have much trouble. Just keep all your bills/invoices in case someone come ask you.

Alex on September 12, 2012 at 4:09 am
Thank you so much for the reply. The kojin jigyo I had in mind was selling an imported product from the US, on a relatively small scale. Do you have a sense of how much income it would have to provide to no longer be considered arubaito? Or would this sort of business simply not be permitted at all?

admin
on September 16, 2012 at 2:22 am
I’m pretty sure this wouldn’t be allowed as it is against the concept of a student visa, but if you don’t make more than a couple of 10.000 yen a month I don’t think you’d have much trouble not declaring it.

Ca on October 6, 2012 at 10:43 pm
Hello! Thanks for the great information!
I was wondering if it is possible to receive a visa while working independently. As in, starting a business when you don’t already have a visa, and getting a working visa or something for it. Is this completely impossible? I’d like to work as a freelance translator in Japan, but I’m afraid that there is no way to do it.

admin
on October 8, 2012 at 10:48 pm
I’m afraid you don’t have too many options indeed. If you are eligible for a WH visa, you can always try to gain experience as a freelancer in Japan and find at least a part time job in a translation company that will get you a visa.

Zeeshan on October 11, 2012 at 7:01 pm
Hi,

I just found your website through Google.com.
And i m looking for some help here for open a “Kogin Jigyo” in japan i was a foreign national and just recently became a japanese citizen i wonder if that,s gonna change anything??
So far i have been out of job this year since march and soon i will be starting a new job somewhere close to 8 million yen a year and i will be a father pretty soon and so far the way i see i can get some tax off for my kid and wife if (Put them as a Fuyo) in my kakutei shinkoku but i still have a huge amount of tax to pay after having my family as a fuyo.
Mate do you think if i get in to kojin jigyo while working for a japanese company
what do you think which is better getting in to kojin jigyo or should i do my tax the way i do every year (having few members as a fuyo)
Mate can you please advise on this cause if it is worth having a job in japan and open a my own private kojin jigyo then i m on it.
i have kept every single receipt of this year and i believe the receipt i had so far they are more then 4 million yen.
Please advise .
I look forward to your reply.
Zeeshan

admin
on October 12, 2012 at 7:31 am
That’s a good question. If you work full time in a company for 8 millions a year with shakai hoken, I’d advise you to keep things the way they are. With kojin jigyo, you can’t have your family under fuyo and the rate of taxes will be higher (especially with consumption tax rising to 10% soon) so even if the taxable amount is smaller it will be the same in the end. If you do your kojin jigyo apart from your work, though, that’s another story and you should declare it as a kojin jigyo.

Zeeshan
on October 13, 2012 at 4:47 pm
Hello mate,
Many Thanks for your quick response .
Understood!! what you think about the receipts worth of 4million
can i use them for my tax off through kojin gigyo??because i was gonna use my house as a office and as you know rents are huge in japan. can i use my own house for my kojin gigyo(As a office) ??
Sorry for another question and once again thanks for your help.

Kind Regards,
Zeeshan

admin
on October 17, 2012 at 7:10 am
Hi Zeehan,
Absolutely, you can take your rents our of your revenue with a kojin jigyo, that’s absolutely fine.

CaMi on October 23, 2012 at 3:33 pm
Hello!
I was so happy to find your website on this information and also the comments other people have written and your responses to them. They are very helpful. I am also interested in this kojin jigyo. My question is also VISA related.

I currently have a working visa and am working for a small englsih school but I would like to start a small business. I believe you mentioned before that this ok. I was wondering about once my visa expires. If I quit working at my current job to focus solely on my small business can I then use my own business to sponsor a renewal of my visa?? I hope this question makes sense.

Thanks in advance!

admin
on October 27, 2012 at 4:32 am
That’s a good question. In theory, no. Now it depends what you do and how much you make once everything is running. What kind of business are you thinking of?

Axel on November 30, 2012 at 8:42 am
Hello, great information!, i have a question, a Japanese friend and i want to start a small company to design small electronics gadgets, if he declares himself as kojin gigyo and hire me, would it help me to get the working visa to go to Japan?…thanks a lot!!

Meigu on December 10, 2012 at 6:24 am
I have a question :]
What kind of visa would you need, for long term stay in Japan with the intent of starting a Kojin Jigyo? I heard that you needed specific ones, but it seems that you can only start a Kojin Jigyo if you are married to a Japanese person or are of Japanese decent….I read you can’t on a work visa or one for students. I’m a bit confused as to which visa I would need to just, rent an apartment in japan and work on an online business. Do you know anything about it? Thanks in advance :]

Jean Chris on January 7, 2013 at 5:52 pm
Thanks for your great article!

I’m currently running a small but, extremely promising business from Centre London. My many trusted friends are so convinced there is great opportunity for growth in Japan for my unique condiments.

I am curious as to how to set up my own kojin jigyo and crucially how to reach potential business partners for financial and practical reasons.
I was also told I needed to establish contacts for visa purpose.
Would you have any advice for me?

Thanks and await your reply to direct email address

JC

hazzy on February 3, 2013 at 10:49 pm
Hello,
I’m from Karachi,Pakistan. i manufacture my Product name Smart Cat ( Cat litter ), in which we use Bentonite. And My father’s business is to manufacture Humic Acid and SSP these are two Products which use as fertilizer, this was My Family background Now, i want to do my Cat litter business in Japan. In Japan there are many factories of Cat Litter and they all use Bentonite for there product, I’ve three types of Bentonite and I’ve many Tons in stock.
I visited your website, you make easy ways to do business. This is my business, and i’m hoping for your good response.

R S on February 26, 2013 at 1:16 am
Dear Sir,
Thank you very much for the article!
I’m interested in going this way but struggling with the Japanese…
What would you suggest please?
Thank you and best regards,
RS

05022 on March 12, 2013 at 3:54 pm
Hi ! Im a forex trader, studied in Japan for about 4 years, and already comeback to my country. Just a simple question, Im planning to go to Japan and make a living there, so can I declare trading forex as kojin-jigyo ?as I just trading from home (my office absolutely).

Give me some suggestion because im very serious about this.

Yoroshiku onegaishimas!

admin
on March 25, 2013 at 4:23 am
Kojin jigyo seems to be exactly what you need, it will definitely be the simpliest way to start out for you 🙂

Krishelle on April 22, 2013 at 11:02 am
Hi. I just saw this blog and it is extremely helpful. I was wondering if you know anything about starting an online business in Japan? I was thinking of starting an online t-shirt store (clothing). Do you know if I need to show a business plan or have a show money to start one? And do you know how much registration fees cost? I really hope you can help!

Ras on April 30, 2013 at 8:45 am
Hi there Admin,
Many thank for your article about starting a sole proprietorship. You indicated that “If you are struggling with Japanese, just let me know and I’ll give you a hand.” Well, I need to fill but I cant fill the form(s) and I’m asking for your help. Thank you in anticipation of that.

Krishelle on May 15, 2013 at 1:42 pm
Hi. Thank you for writing this, it really helped. Although I have a question. I’ve search a lot about starting a small business, but most are about schools, restaurants or stores. I am planning on opening a shopping site and start selling t-shirts. A Japanese friend of mine said, he doesn’t think It’s really necessary for me to register until I reach a certain amount of taxable income. Could you help?

Petros on July 1, 2013 at 4:09 am
Hi there and thank you for all the great information you are posting here!
I am working full time in a company but want to start a small business(gallery) as kojin jigyo and work as part timer as well at my current company. What will happen with the taxes?
I found a space to rent which will be contracted under my partner’s (Japanese) name. Will I be able to claim it under my taxes? Or do I have to make the contract under my name? Any suggestions?

Iqbal Muhammad on July 15, 2013 at 12:38 am
Hello sir,
I am interested to establish a small import and export business in Japan. Please let me know all details, time frame and tentative expenses to complete this process.
Regards,
Iqbal

Franck on July 21, 2013 at 9:27 am
Well, sorry to be a mood killer here but I hold an engineer visa in Japan and, since I’m an experienced web designer, I was planning to make extra money from a membership driven website of mine.

Although I got quite excited after I read this article, I decided to give a call to the immigration bureau in Tokyo just to make sure everything is legal …. but I was told a very different story :

Basically, even for a side business (which means you don’t leave your current job), you need to ask the permission to the immigration bureau because the secondary activity isn’t one requested by an employer. So, your activity being the same isn’t enough. The type of contract must be the same : if you got your visa as an employee, you must start your extra activity as an employee.

If it’s not the case, you must ask the permission via the form downloadable here : http://www.moj.go.jp/content/000099659.pdf

You also have to produce a business plan that will explain in detail the kind of activity you want to start as an entrepreneur.

Then, you must wait one month or more to know if you got the permission or not.

Well, that’s what I’ve been told by the immigration bureau but if you guys know something I don’t, feel free to fire 🙂

admin
on July 22, 2013 at 1:43 am
Well, for kojin jigyo you don’t have a contract or anything like that. I have personnally been working this way with a WH, a work visa and a spouse visa and never got any sort of trouble. Maybe they thought you were creating an actual company (GK or KK)?

Franck on July 28, 2013 at 12:46 pm
Sorry for the late reply.
Well, I know there is no contract involved with koujin jigyou and my interlocutors at the immigration bureau fully understood what it was about.
The thing is, you can do it under a spouse visa since this visa allows you do do any activity you want.
The problems start with specific visas such as Engineer, Specialist in Humanities, etc. Under theses visas, you have been granted the right to work under very specific conditions : as an employee, in a certain field of expertise and for a predefined minimum salary. If your current activity or you new activity doesn’t fulfill all of these, you can be deported. Of course it happens only if the immigration discovers it.
If you are not convinced : http://www.japanprobe.com/2011/11/24/japanese-police-arrest-french-tv-personality/
If people want to avoid this, they have to ask the permission for each new activity they plan to undertake.

Game Localization Link Roundup – December 2016 & January 2017

Video Game Localization Link Roundup

First things first, my apologies for sharing December’s links only now! The start of the year was pretty hectic for me, with very happy news on the personal side and more than work that I could hope for. Things are a *little* more relaxed now, so let me catch up.

We have lot of great links this time, from very formal material (thesis) to comical content (the MT experiment!), interviews, interesting facts and essays.

With LocJAM4 around the corner, you can expect a great flow of stories in the upcoming months, so watch this space!

Student Speak: Using MT for Game Localization – Giulia Mattoni, an Italian Translation Technology student from DCU talks about her experience using Machine Translation for evaluating player support content localization.

Funky Fantasy IV: a Machine-Translated Video Game Experiment – MT may be gradually improving, but it still has a long way to go, as illustrated here

The history of hit points

Story of Seasons: Trio of Towns – Localization Blog #2

Dark Conflict (EU) and Days Of Ruin (US) – An interesting video comparison of the EU and US localizations

Square Enix on why Dragon Quest hasn’t been as popular as Final Fantasy in the west

Imagined Commodities: Video Game Localization and Mythologies of Cultural Difference – If you’re in for a thesis

Interview: Localizing Yakuza with Scott Strichart

What Are These Japanese WarioWare Moves All About? – More great stuff from Clyde Mandelin

Localizing Video Games for Different Markets Is a Minefield

And to conclude, a list of links related to LocJAM Japan that you may find interesting ahead of LocJAM4: How to Localize the Package (the process will be the same for LocJAM4), the Kyoto Workshop Presentation, and a more technical article about Internationalizing LocJAM Japan’s game, if you’re curious about what goes into organizing these events.

7 Points you MUST Check Before Accepting Translation Projects

Accepting translation projects

“Hi, I have a document for translation, can you help me?”

We freelance translators all know at least one client who keeps checking our availability that way. I had one such customer. They would send me that very sentence every single time. And every single time I would reply with the same answers before accepting or refusing their translation projects. And I’m glad I did, as some were definitely not meant for me.

Fortunately, not all clients are that vague in their communications. But that doesn’t mean we should let our guard down. As professional translators, it is very much our job to clear ambiguities. Here is a quick checklist you can use as a reference.

 

1. Never accept an assignment before seeing the actual file(s)

Some clients are very protective about the information they share. They will tell you a lot about the kind of text they want to send you, yet strictly refuse to show a source file. The problem is that, all too often, they will omit (knowingly or not) important details, or give a misleading description of the content. At a minimum level, try to see an extract of the source file(s), and explicitly state you will only give your final confirmation once you have access to the whole package.

 

2. Make sure you can handle the format

First of all, you will want to make sure you can a. open the file and b. edit it. Is it a file format you are comfortable with? If not, check if you can have a different version. Else, adjust your rates if the extra work involved is significant.

If you are using a CAT tool, try to create a project with the source files AND export pseudo-translated target documents. Sometimes, our favorite tools seem to perfectly handle what we’re feeding them with, until they need to generate the final file… Yes, my dear “Object reference not set to an instance of an object”, I’m talking about you and your little friends. And naturally, these issues tend to occur when deadlines are looming.

If you find out about such problems early on, your client may be able to send you another version that will work, or find some technical workaround. Better safe than sorry.

 

3. Only accept if you are 100% confident about the deadline

Don’t accept a project if you’re not certain you can comfortably make it by the deadline.

Life is full of surprises, good and nasty ones. So many things can happen during a project. You may get the flu, your hard drive could decide to suddenly give up on you, or an exciting prospect may appear out of nowhere with an urgent but highly interesting and/or lucrative project.

Say you can translate up to 3k words a day. That’s on an ordinary day, spread over the different projects you’re currently translating. But how can you be sure tomorrow is going to be just another day?

I try to only accept projects for which I would have at least twice the actual time needed to perform the translation.

People tend to focus on rate negotiations and forget about deadlines. Often rather than not, you will be able to get a bit of extra time simply by asking. It costs nothing to try. Aim at the most generous deadlines possible. You will have an extra cushion for unexpected events, and more room to accept other projects in parallel.

 

4. Ensure you’re comfortable with the whole content

Obvious, right? On paper yes, but this one can get a little tricky. Reading a complete manual before accepting to translate it might be a little excessive, but so would be only checking the front page. There are things that are not necessarily obvious at a glance. Occasionally, a document will look straightforward… until you realize it was written by a non-native speaker or that there are 10 pages of legal notices hidden at the middle.

As a general rule, scan through every source document, carefully read a paragraph here and there, and make sure nothing falls out of your expertise. Again, as a professional, it is your duty to make sure you are in control.

 

5. More on formats: is design/DTP work expected from you? Are you sure?

Clients will probably tell you clearly what file format they want for your translations in, but they can be quite ambiguous about what they want you to do with the layout.

“It doesn’t have to look perfect, as long as the layout remains roughly the same” – sounds familiar?

The problem here is that your client may mean one of two things, and you need to be absolutely sure of what is expected from you:

  1. The final document will be created from scratch by a designer/DTP specialist, and they really just want to know what goes where
  2. They don’t mind doing small adjustments in-house, but they’re expecting your file to be almost ready for production and easy to edit. It can be a huge issue if you are working on files processed with OCR software. You will typically have the right layout, but the resulting file will be horrendously hard to edit and polish visually. Your client might get upset when they realize they need to find and pay someone else to finish the job, so clarify this point as early as you can.

 

6. Expectations should be perfectly clear

Let me conclude with a general reminder and a few extra ideas. One of the keys of good communication with your clients is to spot and clear any ambiguities before the project starts. It would be difficult to give an exhaustive list here, but here are a few examples:

– Imagine someone is asking you for “translation + proofreading” services. Do they mean they want you to proofread your own translations (in my case, this is a given), or are they expecting you to also ask a 3rd party to check your texts? Depending on the answer, the pricing and deadline will be very different.

  1. Character limitations. Whenever possible, try to get a hard limit, rather than “roughly the same length as source text”. If that’s not a possibility, clearly state you will try to keep length under a certain limit. And that they will need to pay extra if they later come back to you with a million requests to shorten your translation.
  2. If you’re localizing websites and are asked to produce a copy “optimized for SEO [sic]”. Are there any specific keywords they want you to target? Do they want you to take care of the keyword research? Again, adapt your rates if necessary.

 

7. When unsure, follow your intuition

Do you have a bad feeling about a project? It happens from time to time. There’s no deal-breaker you could single out, but a combination of small things: the deadline is a little tight, the format is not the simplest one, and the client seems to have very specific demands… If you feel somewhat uncomfortable with job description, it is properly wise to politely decline it.