Псевдолокалізація
Псевдолокалізація — один із методів тестування програмного забезпечення, який використовується для тестування аспектів інтернаціоналізації. Замість перекладу тексту програмного забезпечення іноземною мовою, який здійснюється у процесі локалізації, текстові елементи програми замінюються зміненою версією мови оригіналу.
Приклад:
Account Settings | [!!! Àççôûñţ Šéţţîñĝš !!!][1] |
У результаті таких специфічних змін оригінальні слова залишаються читабельними, але водночас виникають особливості, які спричиняють найбільшу кількість проблем під час фактичної локалізації іншими мовами: змінюються символи алфавіту, довжина рядків, напрямок тексту, деякі рядки не вміщаються у відведене їм місце тощо.
Процес локалізації
Зазвичай локалізація програмного забезпечення здійснюється незалежно від процесу розробки програмного забезпечення. За типовим сценарієм ПЗ будується й тестується на одній базовій мові (наприклад, англійській), при цьому будь-які елементи, які потребують локалізації, витягають у зовнішні ресурси і передають команді з локалізації для перекладу різними цільовими мовами[2]. Проблема такого підходу полягає в тому, що під час процесу локалізації часто виявляється багато неочевидних програмних помилок, на виправлення яких не вистачає часу або це просто надто дорого.
Проблеми, які виникають під час локалізації, зазвичай зумовлені різницею в тому, як написаний текст виглядає різними мовами. Серед них є такі:
- Текст мову перекладу значно довший, ніж вихідною мовою, і тому він не відповідає обмеженням інтерфейсу користувача або розбивається на частини там, де не має бути розривів.
- Шрифт алфавіту мови перекладу містить діакритичні знаки, яких немає у вихідній мові, або великі за розміром гліфи, і через це рядки перекладу можуть обрізуватися по вертикалі.
- Мови, у яких відрізняється напрямок читання: це становить особливу проблему, якщо передбачається, що користувач вводитиме текст у програму.
- Код програми передбачає наявність обмеженого набору символів, наприклад ASCII або ANSI. Якщо ігнорувати цю проблему, вона здатна спричинити логічні помилки.
Крім того, у процесі локалізації іноді виявляються елементи, які потребують локалізації, але жорстко закодовані вихідною мовою і не допускають внесення змін. І навпаки: виявляються елементи, для яких передбачається локалізація, але насправді вона не потрібна (наприклад, назви елементів в XML- або HTML-документі)[3].
Псевдолокалізація призначена для виявлення помилок таких типів під час циклу розробки шляхом механічної заміни всіх елементів, для яких передбачається локалізація, символами псевдомови. Ці символи залишаються зрозумілими носіям вихідної мови, водночас даючи змогу виявити більшість проблемних місць. Ось чому псевдолокалізацію слід розглядати радше як інструмент інженерії або інтернаціоналізації, ніж локалізації.
Псевдолокалізація в Microsoft Windows
Хоча техніка псевдолокалізації застосовується в Microsoft з кінця 90-х років, доступною розробникам вона стала лише під час циклу розробки Windows Vista[4]. Винайдена з цією метою псевдомова дістала назву псевдолокаль Windows. Такі локалі було розроблено для дослідження особливостей наборів символів та сценаріїв. Іноземні мови, які використовувались у той час у Windows, розбили на три великих класи: базовий («західний»), дзеркальний («близькосхідний») та CJK («далекосхідний»)[2]. До часів Vista для кожного з цих трьох мовних класів створювали окремі збірки Windows із потенційно різними кодовими базами (а отже, різною поведінкою й помилками).
У псевдолокалях, створених для кожної з цих мовних сімей, використовувався текст, який візуально читався як англійська, але складався з елементів інших мов. Наприклад, текстовий рядок
Edit program settings
відображався в «базовій» псевдолокалі як
[!!! εÐiţ Þr0ģЯãm səTτıИğ§ !!!]
Тобто у псевдолокалі застосовувалися «перекладені» рядки, які мали більшу довжину і містили символи, які не належать до ASCII і записувалися справа наліво (у випадку «дзеркальної» псевдолокалі)[4].
Зверніть увагу, що квадратні дужки з обох сторін тексту в цьому прикладі допомагають виявити такі проблеми:
- обрізаний текст (усікання)
- рядки, які утворюються шляхом комбінування (зчеплювання)
- рядки, які неможливо локалізувати (жорстке кодування)
Процес псевдолокалізації в компанії Microsoft
Майкл Каплан (Michael Kaplan), менеджер програми Microsoft, описав, на що схожий процес псевдолокалізації: енергійний і працьовитий, але водночас наївний внутрішній спеціаліст із локалізації, який прагне випробувати сам себе і намагається перекласти будь-який рядок, який теоретично можна перекласти. Однією з ключових особливостей процесу псевдолокалізації є те, що він відбувається автоматично, під час циклу розробки, як частина рутинної роботи над білдом. Процес майже ідентичний до того, який використовується для створення справжніх локалізованих білдів, але виконується набагато раніше в циклі розробки — перед тестуванням білду. Це дає час для виявлення будь-яких помилок, які залишаються невиправленими в базовому коді. Такий підхід набагато простіше, ніж виявлення помилок невдовзі перед датою релізу[2].
Білди, створені в процесі псевдолокалізації, перевіряються за допомогою того самого циклу контролю якості (QA), що й нелокалізований білд. Оскільки псевдолокалі імітують англійський текст, перевірити їх може й англомовний користувач.
Бета-версії Windows (7 і 8) було навіть випущено з деякими псевдолокалізованими рядками[5][6]. Для цих останніх версій Windows псевдолокалізований білд є основним тестовим білдом (тим, що регулярно створюється для тестування), а остаточний білд англійською мовою є його «локалізованою» версією[3].
Інструменти псевдолокалізації для інших платформ
Окрім внутрішніх інструментів, що використовуються корпорацією Майкрософт, тепер опції псевдолокалізації передбачено й в інших засобах інтернаціоналізації — Alchemy Catalyst від Alchemy Software Development, SDL Passolo від SDL та Globalyst від g11n. Такі інструменти передбачають можливість псевдолокалізації, зокрема перегляд відтворених псевдолокалізованих діалогів, та автоматизацію власне процесу тестування. Вони завершують весь процес створення псевдолокалізованого білду та автоматизують тестування. Інший спосіб здійснити його — створення спеціального скрипта псевдолокалізації на витягнутих текстових ресурсах і ручне їх тестування.
В Інтернеті існує безліч безкоштовних ресурсів для псевдолокалізації, які дають змогу створювати псевдолокалізовані версії загальних форматів локалізації, як-от рядки iOS, Android XML, Gettext PO та інші. Зазвичай розробникам вивантажують файл рядків на один із таких сайтів, а потім отримують псевдолокалізований файл для тестування.
Див. також
Примітки
- Benjamin Zadik (12 квітня 2013). Pseudolocalization: Prepare your app for localization. Процитовано 13 квітня 2013.
- Raymond Chen (26 липня 2012). A brief and also incomplete history of Windows localization. Процитовано 26 липня 2012.
- Michael Kaplan (11 квітня 2011). One of my colleagues is the "Pseudo Man". Процитовано 26 липня 2012.
- Shawn Steele (27 червня 2006). Pseudo Locales in Windows Vista Beta 2. Процитовано 26 липня 2012.
- Steven Sinofsky (7 липня 2009). Engineering Windows 7 for a Global Market. Процитовано 26 липня 2012.
- Kriti Jindal (16 березня 2012). Install PowerShell Web Access on non-English machines. Процитовано 26 липня 2012.