8 ms·
Localizing Papers, Please
- Cyph0n 12y agoVery interesting article. I can't how imagine how difficult it must have been to support localization after the game was released.
- danso 12y agoIn case you don't see the link, Pope created a web interface, hosted on Github Pages, that allows users to easily do the localization, collaborate via Github forks, and import/export their work via CSV: http://paperspleaseloc.github.io/ http://paperspleaseloc.github.io/ Pretty brilliant...reading Pope's devlog for the game makes it clear that he's an excellent game developer and designer..but it's unexpected that he'd also know how to whip up a useful, well-designed web-app for the purposes of supporting his game like this.
- balls187 12y ago> makes it clear that he's an excellent game developer and designer.. FWIW, playing Papers Please, you can easily come to the same conclusion. The game is a great game.
- joshschreuder 12y agoIt's a fascinating and thought-provoking experience, but I'm not sure I'd call it a great game in the traditional sense (not that it aims to be)
- angersock 12y ago"In the traditional sense"? What does that even mean?
- joshschreuder 12y agoMaybe entertainment value? Traditionally games have been designed for fun and entertainment, whereas the shift in the last 5 years or so has been towards more emotional 'experiences' such as Flower, Journey, Gone Home, The Last of Us, and Papers, Please. Contrast this with getting high scores, competing with your friends, collecting pickups, etc. that are all what I would call traditional game mechanics.
- balls187 12y agoCertainly to each his own, but in this case, Papers, Please hits everything I want in the type of game it purports to be, and does so in splendid fashion.
- 616c 12y agoIt is always interesting to see people use CSV in place of the established file format for translations, POT files. There are logic for certain grammatical elements (IIRC, it has been a while) and other edge cases that are exactly why one avoids homegrown CSV in the first place. Then again, even Papers Please is making common mistakes. I can count on a single finger the number of i18n jobs I have seen. One in many years of looking at IT jobs. This stuff is little understood, and very little demand. But he makes of pointing out how this will causes problems. I would love to see this game in Arabic, for example. Number in Arabic is crazy complicated, and as a guy who translated software for FOSS (arabeyes.org) there is a reason I bring up the number logic (1, dual, 3-99, 1000+ dictate different noun classes) and POT handles that. This and many other issues indicate why no one can be bothered to handle this until much later, and then it is such a pain in the ass with non-English charsets. Not that this issue has come up a lot on HN recently. I am glad people are showing this stuff with interest. Regardless of my opinion, this is very cool work and I am glad to see developers caring again.
- JoshTriplett 12y agoThat was my reaction as well: why not gettext? ngettext and other facilities are wildly useful, and there are a huge number of tools out there designed to make it easy for translators to maintain translations.
- eropple 12y agogettext is more of a pain than you'd think unless you're in C or a C-with-a-hat-on-it like PHP. As I mentioned elsewhere in this thread I settled on Excel XML files because gettext (which I of course looked at first) wasn't a worthwhile format for either Java or .NET. And given that Papers Please is (I think) written in HaXe, I don't know what the story for gettext support is there. That's without getting into licensing headaches, which is why the idea of P/Invoking GNU gettext is a straight-up nopenopenope.
- userbinator 12y agoIt is always interesting to see people use CSV in place of the established file format for translations, POT files. CSV is common because there are many more applications that can read/write it, it's relatively standard, and translation data tends to be vaguely relational.
- a3_nm 12y agoI find it a bit unfair to request free help from users to localize the game, given that the game is proprietary...
- transpy 12y agoI'm inclined to think the same, but you wouldn't discard fan translations either... If users show interest and enthusiasm for localizing the game, the best thing would be to find a way to integrate that effort into the process. Maybe you could earn some in-game coins or something?
- a3_nm 12y agoI don't find it much fairer to retribute users that work for you using a currency that only makes sense in the universe that you designed and own. Ideally, users should be cautious in choosing the projects to which their dedicate their interest and enthusiasm (choose those which belong to the community)... Under the assumption that the game cannot be made open source (or that it is impractical to give a share of the game's profit to the contributing users), I imagine that a good solution would be to republish all translations separately under an open license (in case they can be reused, very theoretically, for something else... maybe as an aligned corpus to train a machine translation system), and make sure that the users who contributed are prominently credited.
- listic 12y agoIs he the sole developer of the game?
- brianmcconnell 12y agoLocalization professional and developer here. I'd recommend taking a look at Transifex. This is a well thought out tool for managing localization projects and assets (prompt catalogs, resx files, etc), and for managing the translation process (it supports machine, crowd and professional translation, so you can optimize for cost and quality). They also just released a really neat Javascript tool which makes translating web content super easy. You just embed some JS in your template, and it re-writes the pages in translation when needed. Way way easier than, for example, setting up a multilingual Drupal site, and in most cases, will get the job done nicely. My $0.02
- eropple 12y agoI use Excel XML spreadsheets (so I don't have to write my own tools) as tabular stores for stuff like I18N, item lists, and so on, but a way to actually manage translation has generally eluded me. Never heard of Transifex before but this'll help me out with my own gamedev.
- 616c 12y agoTransifex has largely become a standard for large open source projects that need string translation (think Openstreetmap and LibreOffice large). I bring up OpenOffice because they have used Pootle, which was the alternative for years and I always found it so-so. But people with more experience can pipe in.
- JoshTriplett 12y agoI'd recommend against Transifex. They were originally an open project, but ended up going proprietary and abandoning the open version, causing problems for various projects that depended on it. Take a look at some of the alternatives, instead, such as Zanata (http://zanata.org/ http://zanata.org/).
- herbertjacu 12y ago"My $0.02" Why do people feel the need to write this after their posts? Were you afraid it would not be clear that it was an opinion? What purpose does it serve? Why did you go to such length to write it as "My $0.02" rather than "My two cents", or just "My 2c"? It seems to be some kind of "thing" that people do here. Is it an in-joke?
- DrTung 12y agoVery minor complaint but first of January 1984 is always depicted as '1984.01.01' in the game, regardless of I18N selected. While this is good in Germany, it many countries like US you instead prefer something like '1/1/84'.
- slazaro 12y agoI think I recall a discussion about this early on, on the thread for the game on TIGSource. I think he asked what would be the best way to write down the date in numerical format without being ambiguous, given that different places swap day and month. I think he ended up using YYYY/MM/DD because when you start with a year, the other two are usually interpreted as month and day. I think he only wanted to use one format, that was way before all of these localization headaches. He probably left it like that after localization because he didn't want to create more problems.
- daurnimator 12y agoObligatory XKCD: https://xkcd.com/1179/ https://xkcd.com/1179/
- DrTung 12y agoBeing Swedish I totally agree with XKCD since that's how dates are written here since the 70's. But this standard seems to be receding, for example recently the Swedish DMV had to change so that on new driver's licenses the date is written '01.01.1984' instead of previously '1984-01-01' :-( because of EU parliament rules.
- burnte 12y agoNot to mention this gives you free chronological sorting easily, in addition to being a standard.
- restalis 12y agoNitpick: the example was '1984.01.01' whereas the ISO format is from 1988. The ante-ISO form of representing dates may therefore be intentional, as a game design detail.
- aeontech 12y agoVery interesting writeup, thank you!
- ekianjo 12y agoIn his second part of his article, he says... > There’s a system for making people sound generally non-Japanese (using lots of katakana and dropping prepositions), but it’s tiring to read and has an air of childishness, since this is one of the first scripts kids learn to read/write in Japan This is utterly wrong. Katakana usage in Japanese has nothing childish attached to it. If at all, Hiragana would be the one which is considered the more "childish" way of writing, but there are numerous imported words (and more and more, I'd say) using Katakana even in business context - and certainly taken very seriously. If you don't know a language, don't make assumptions on it. By the way the french translation of "Your son is dead" as "Votre fils est mort" is very dry and tasteless, the proper way or saying it in french is "votre fils est decede". I hate it when people do a literate translation from English to French, many words are similar but they are not used at all in the same situations.
- thaumasiotes 12y agoTo be fair, "your son is dead" is a very tasteless way of saying it in English, too ;)
- kalagan 12y agodécédé = deceased mort = dead You don't have to hate
- ekianjo 12y agoSorry, but "deceased" is way more formal in English than in French.
- PeterisP 12y agoThis is the whole point. While in isolation, A generally translates to A' and B to B', it doesn't mean that it can always be used that way. In translations you'll often get situations where A should be translated to B' in that context (even if in the original language B wouldn't be used there), in order to transfer the concept properly. Literal translations often end up weird, and sometimes completely wrong.
- icelancer 12y ago