TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Localizing “Papers, Please” (2014)

269 点作者 wglass将近 8 年前

14 条评论

teej将近 8 年前
For those who aren't aware: Papers, Please is a video game about paperwork. You play a border agent in a fictional eastern bloc country, checking passports, visas, and work permits. It's surprising and tense and incredibly good. It's currently on sale for $3.99 on Steam, I highly recommend it.
评论 #14628535 未加载
评论 #14628359 未加载
评论 #14629287 未加载
评论 #14628340 未加载
cbanek将近 8 年前
One other interesting problem with localization involves the use of printf. Even if you&#x27;re looking up strings based on IDs in another file (which is a good pattern), sometimes you&#x27;ll need to move things around based on language. For example, if you&#x27;re doing right to left languages, you might put the number before, or after the string, and the other way for left to right languages. So like (&quot;%d %s&quot; vs &quot;%s %d&quot;).<p>The way that we got around this was adding another level of indirection, and putting printf format strings also as localized data.
评论 #14629498 未加载
评论 #14629422 未加载
评论 #14628952 未加载
评论 #14629510 未加载
unsigner将近 8 年前
Don&#x27;t ever use the original string as key in the localization table. That will force you to translate &quot;high&quot; difficulty the same as &quot;high&quot; resolution, for example.
评论 #14628955 未加载
评论 #14629058 未加载
评论 #14629724 未加载
评论 #14629178 未加载
评论 #14629210 未加载
tschwimmer将近 8 年前
Awesome article. I&#x27;m always impressed by the distance people will go for their passion. Lucas talks about ultimately having to hand draw Cyrillic versions of _each_ of the game&#x27;s ten fonts. Very cool!
评论 #14629199 未加载
Animats将近 8 年前
If you haven&#x27;t seen the trailer, it&#x27;s worth watching.[1]<p>Glory to Artstozka!<p>[1] <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=_QP5X6fcukM" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=_QP5X6fcukM</a>
mproud将近 8 年前
This should be amended as (2014).
revetkn将近 8 年前
Localizing well has a lot of complexity - gender, cardinal, ordinal, etc. rules, and then how to combine them with locale-specific special cases (e.g. in Spanish, a 15-year-old birthday girl is a quinceañera)<p>I am attempting to solve this with a small library that offers full CLDR coverage and a special expression language.<p>See <a href="https:&#x2F;&#x2F;www.lokalized.com" rel="nofollow">https:&#x2F;&#x2F;www.lokalized.com</a><p>Currently for Java 8 but am porting to JS and Python (probably Swift after those)
jdonaldson将近 8 年前
Haxe really shines at converting compile-time assets into static types. The other related trick is to use json as a config object, and access the fully typed equivalent as a static instance within your code. It&#x27;s also possible to do this with database queries.<p>I realize other languages provide support for this, but in my experience with Haxe it&#x27;s way easier to implement something custom. The macro translation layer for manipulating the AST is flexible and speedy, and the compiler is wired directly into autocompletion requests. There&#x27;s very little impedance between my fingertips and the desired outcome.
surgi将近 8 年前
Loosely related to the title: Why not create a complete modular version not only localised, but also tied to individual country&#x27;s flows and processes? So it could serve as an education material. (mind:blown)
评论 #14635973 未加载
mattmanser将近 8 年前
Having just done some l10n for a client, the thing that annoys me is how even the most powerful editors, such as VS, have such awful tools for l10n. .Net&#x27;s actual i18n support is pretty good overall, but the editor support is bad.<p>I literally had to build my own. With 2,500 different strings for a total of 10,000 words I wouldn&#x27;t even consider our application even that big, it must be a nightmare in bigger projects. We haven&#x27;t even done the sales site yet because the product&#x27;s being upsold through a partner.<p>We came up with our own id naming system, then created an xlsx&#x2F;resx importer&#x2F;exporter that uploaded to GSheets to allow us to share files with translators. The ids and comments fields allowed us to add extra meta data, to split the strings into logical sections and sheets and order them properly. Be able to add links to the page that section of translations are on so the translator could see the context. This then additionally allowed us to highlight if a translator had missed any lines when we re-imported it, add their own questions&#x2F;comments, etc. Also, as we were using sendwithus, we used the importer&#x2F;exporter to allow us to import pot files from them to keep everything in one place.<p>Then to support those tools, I created a tool to search for phrases used before, find out the ordering from the meta data, quickly copy ids of strings we want to re-use, see missing spreadsheet tabs.<p>Programmatically, we had to add support for automatically translating enums into strings (think project status for example), add l10n to our audit logs so customers could see their audits in the correct language and we&#x27;d see them in English, modify how .Net did l10n of dates because their built in one is really odd with en-GB which is where we are based (shortdate is Jan 01 2025 in en-US but inexplicably 01 January 2025 in en-GB and all sorts of other oddities).<p>Then we used a modified version of pseudoizer (thanks John Robbins + Scott Hanselman![1]) to allow us to easily see untranslated strings while we went through the whole site without having a finished translation (we used ja-JP instead of Polish to really see the differences in date strings, currency, etc.). We ended up modifying it because it goes a bit mental with adding !!!! for things like tabs.<p>Probably spent a week on those tools, but boy was it worth it.<p>I&#x27;ve not tried intellij&#x27;s l10n support, maybe it&#x27;s better, but VS&#x27;s is very lacklustre.<p>[1]<a href="https:&#x2F;&#x2F;www.hanselman.com&#x2F;blog&#x2F;GlobalizationInternationalizationAndLocalizationInASPNETMVC3JavaScriptAndJQueryPart1.aspx" rel="nofollow">https:&#x2F;&#x2F;www.hanselman.com&#x2F;blog&#x2F;GlobalizationInternationaliza...</a>
eropple将近 8 年前
I would recommend against one&#x27;s own XML format and <i>doubly</i> against CSV&#x2F;some homegrown delimited format. Instead, consider something like Excel 2003 XML (one of the easier ones), OpenDocument (also pretty easy in many languages), or Office OpenXML (easy in .NET, a bit harder elsewhere) to store your translation data.<p>Potfiles are another option, but the tooling is pretty clunky and, in games in particular, people don&#x27;t seem particularly attuned to their use. And they&#x27;re not great for editing, though they might be for storage--when dealing with tabular stuff, it just makes a lot of sense to use tools that present a tabular interface. It makes life a lot easier.
评论 #14628908 未加载
评论 #14628397 未加载
评论 #14628436 未加载
评论 #14628455 未加载
haikuginger将近 8 年前
This article makes me unreasonably glad to be working in a framework (Django) with good i18n tooling and few special needs re: textual images.
评论 #14629629 未加载
paines将近 8 年前
Is the Steam version localized and available in german language?
评论 #14629408 未加载
rasmafazi将近 8 年前
Sometimes you just have to bite the bullet. For interesting subjects, which always have global reach, the virtual conversations are conducted in English. There is also a place for vernacular -- it is part of people&#x27;s cultural identity -- but not in a formal knowledge setting. English is a bit like Latin used to be: the language of knowledge, technology, and business. If the subject has global reach, you will miss out on the interesting bits of knowledge, simply because you are trying to do it in vernacular. Doing anything in vernacular, will just lock you up in a small and uninteresting national silo. Nothing of any interest is national. But yes, I use vernacular. I also speak it with my kids, but I don&#x27;t read it -- unless it is poetry or literature -- and I don&#x27;t use it in software or in business.
评论 #14629411 未加载
评论 #14628686 未加载
评论 #14628309 未加载
评论 #14628422 未加载
评论 #14628437 未加载