Continuous Software Development & Localization: The Quest for the Lunar Module

顺畅的软件开发与软件本地化:寻找登月舱

2020-11-11 16:40 Wordbee Translator

本文共859个字,阅读需9分钟

阅读模式 切换至中文

What’s stopping you from your moon mission of getting seamless continuous software localization? It’s often the lack of a “lunar module,” that one piece of software—middleware—that makes every mission successful. Software developers know all too well the key problem of software integration: everything is going smoothly, and then boom! Houston, we have a problem. The new code has been compiled, the assigned task has been completed and all that is left is the integration of the source code into the overall project. That’s when the challenge arises. To prevent a long development project from failing due to compatibility problems, many teams choose continuous integration, which means that developers integrate code into a shared repository (for example, GitHub), preferably several times a day; each check-in is verified to fix bugs more quickly, improve software quality, reduce validation and release times. Things get more challenging when we add localization to the workflow. Nowadays, experts and practitioners agree: Software localization should be fully integrated into software development projects to speed up the release of new updates in various languages. In other words: we want the release of the original software and of the localized versions to happen (almost) simultaneously. Therefore, the development and the localization teams need to be in sync at every single step of the project. But software localization comes with its own challenges: sometimes localizers are provided with new strings and updates without any context, or version tracking gets messy. Workflow automation then becomes a must. Continuous Software Localization: The Ideal Workflow For continuous integration and localization to be synchronized,  it’s necessary to implement some sort of lunar module to be detached from the development team, set things straight in another locale and get back with all the stuff to the mothership. So, what should a lunar module for continuous software localization look like?  First, let’s see what a typical localization workflow in such a setting could be. On the one end of the workflow there is a repository, a distributed version control, typically a Git repository (GitHub, BitBucket, GitLab and so on) containing the codebase. On the other end, there is the translation management system, the space where the translation team localizes the software strings. The lunar module in question that makes sure that the localization team can receive the localization jobs is called a middleware. Simply put, it’s a software, placed between the Git repository and the TMS, that can: pull the files from a version control system – like Git, for example – and consolidate them; filter the strings to be translated and distribute them directly to the localization teams; collect it all, once the work is completed, and push it back to where it came from.  Continuous Software Localization: A Middleware’s Essential Features  Let’s now take a look at the essential features of Beebox, Wordbee’s middleware, the excursion module that helps you move between the different stages of a software localization project. Privacy and security – A software repository like Git is hosted on your company’s server or in the cloud, and it is protected by users’ credential. The Wordbee translation management system, on the other hand, is available in SaaS mode and hosted on the Microsoft Azure cloud computing platform. The Beebox middleware can be either implemented on your company’s server or you can opt for the SaaS version, again hosted in Microsoft Azure. A localization dashboard – Project data is always at hand: the number of source files, the jobs still open and/or completed, the number of words per translation job, the status of the strings sent for translations, the progress of the project and more. Automatic creation of translation jobs – With the Beebox and Wordbee translation management system combined, you can automate job creation and assignment to a specific vendor. Alternatively, you can offer the job to a selected group of vendors and the first vendor to respond will receive it. Bundling option –  You can choose whether to send to your translation team only the strings requiring translation or the whole file: with this second option, translators will be able to have more context and the new strings will be flagged so that the localization team will immediately see which content needs to be processed. Machine translation configuration  – When the strings are retrieved from the Git repository, you can configure the MT system of your choice so that translators will receive only the chunks of content to be post-edited. Specific folder/subfolder setup – You can specify the folders containing the files to be translated as well as the folders and subfolders where the translated content is stored. You can also choose whether to change the names of translated files, for examples, by appending the language codes. Text extraction rules –  You can select any type of files in your Git repository for localization, whether .txt files, .po files, YAML, XML, HTML or MS Word files. Live Preview –  Translators can preview the screens of a web-based application in real time through a proxy server. This in-context translation feature is also useful for reviewers and testers to smoke test the software.
是什么让您的软件本地化“登月任务”无法顺畅地进行?通常是因为缺少一个“登月舱”,即缺少一个软件--中转软件--让每一次任务顺利进行。 软件开发人员十分明白软件集成的关键问题:本来一切顺利,接着,轰!休斯顿,我们遇到麻烦了。新代码编译完毕,分配的任务已经完成,剩下的就是将源代码集成到整个项目中。这时挑战出现了。 为了防止一个漫长的开发项目因兼容问题而失败,许多团队选择不断地集成,这意味着开发人员将代码集成到一个共享存储库中(例如,GitHub),最好是一天集成几次;每次签入都经过验证,以便更快地修复漏洞,提高软件质量,减少验证和发布次数。 本地化添加到工作流程的过程更加具有挑战性。如今,许多专家和从业者认为:软件本地化应该完全融入到软件开发项目中,以加快不同语言版本的发布速度。换句话说:我们希望原始软件和本地化版本的发布(几乎)同时进行。 因此,开发团队和本地化团队需要在项目的每一个步骤上保持同步。但是软件本地化过程本身也具有挑战性:有时本地化工作者拿到的是新的字符串和没有任何上下文的更新版本,或是版本追踪混乱。这时工作流程自动化就成了一个必须要做的事情。 顺畅的软件本地化:理想的工作流程 为了让持续集成的过程和本地化过程同步进行,我们有必要运用某种形式的登月舱,将其从开发团队中分离出来,在另一个地方将事情处理好,然后将所有的东西带母舰。那么,可以让软件本地化顺利进行的登月舱应该是什么样子呢? 首先,让我们看看这种设置中的典型本地化工作流程是什么样的。在工作流的一端有一个存储库,一个分布式版本控制台,通常是一个包含代码库的Git存储库(如GitHub,BitBucket,GitLab等等)。另一端是翻译管理系统,即翻译团队将软件字符串本地化的空间。 我们所说的登月舱是确保本地化团队能够接收本地化作业,它被称为中转软件。简单地说,它是一个位于Git存储库和TMS之间的软件,它可以: 从版本控制系统(例如Git)中提取文件并合并文件; 过滤要翻译的字符串,并将其直接分发给本地化团队; 一旦完成工作,就把它全部收集起来,并把它放回原来的地方。 顺畅的软件本地化:中转软件的基本特征 现在让我们来看看Beebox的基本特性,Beebox是WordBee的中转软件,这个游移的模块可以帮助您在软件本地化项目的不同阶段之间转换。 隐私和安全--像Git这样的软件存储库托管在您公司的服务器上或云中,并且受到用户凭据的保护。而在另一方面,Wordbee翻译管理系统则采用SaaS模式,托管在微软Azure云计算平台上。Beebox中转软件可以在您公司的服务器上运行,也可以使用SaaS版本,再次托管在Microsoft Azure中。 本地化仪表板-项目数据总是在手边:源文件的数量,仍然打开和/或完成的工作,每项翻译工作的字数,发送用于翻译的字符串的状态,项目的进度等等。 自动创建翻译工作-与Beebox和Wordbee翻译管理系统相结合,您可以自动创建工作并分配给特定的供应商。或者,您可以将该工作提供给选定的一组供应商,第一个回应的供应商将收到该工作。 捆绑选项--您可以选择只将需要翻译的字符串发送给您的翻译团队,或者将整个文件发送给您的翻译团队:第二种选项让翻译人员将能够拥有更多的上下文,新的字符串将被标记,以便本地化团队立即看到哪些内容需要处理。 机器翻译配置--当从Git存储库中检索字符串时,您可以配置您选择的机器翻译系统,这样翻译人员将只接收待译后编辑的内容块。 特定文件夹/子文件夹设置-您可以指定包含要翻译文件的文件夹,以及存储已翻译内容的文件夹和子文件夹。您也可以选择是否更改已翻译文件的名称,例如,通过附加语言代码。 文本提取规则-您可以在您的Git存储库中选择任何类型的文件进行本地化,无论是txt文件,po文件,YAML,XML,HTML还是MS Word文件。 实时预览--翻译人员可以通过代理服务器实时预览基于网站的应用程序的屏幕。这种上下文中的翻译特性对于审查人员和测试人员进行冒烟测试也很有用。

以上中文文本为机器翻译,存在不同程度偏差和错误,请理解并参考英文原文阅读。

阅读原文