Мовний файл - це додатковий файл (чи файли) до програми, який жодним чином не зачіпає нутрощі основних файлів програми, а лише змінює мову інтерфейсу і відповідає лише за мовний інтерфейс. Існування такого мовного файлу, у переважній більшості випадків, передбачається самою програмою, а самі мовні файли постачаються або разом з програмою (в інсталяторі), або завантажуються окремо. Це правило стосується програм, які підтримують багатомовний інтерфейс. Мовний інтерфейс тут змінюється у налаштуваннях програми.
Мовна латка (patch) - файл, який застосовує зміни у ресурсах файлу, які зробив автор (в даному випадку це є переклад тексту) на такому ж не перекладеному оригінальному файлі.
Українські мовні файли у будь-якому випадку мають у своєму імені чи розширенні такі ключові слова, як: "ukr", "ukrainian", "ua", "0422" ("uk" в основному стосується ОС Linux). Мовні файли інших мов мають свої ключові слова, відповідно до назви мови, її скорочення чи ідентифікатора мови. Ці ключові слова можуть відділятися від іншого тексту у назві файлу якимись символами або можуть просто стояти на початку чи в кінці імені файлу, зліпленими з іншим текстом.
Текстовий мовний файл чи файли (додаткові) - мовний файл, який можна перекласти у простому текстовому редакторі (найпростіший текстовий редактор - стандартний Блокнот у Windows). Як правило, такий файл має назву, яка відповідає скороченій або повній англомовній назві мови з розширенням *.lng чи інше. Наприклад: Wcmd_ukr.lng, Wcmd_ukr.mnu (Total Commander), Ukrainian.ini (MyIE2), Ukrainian.lng (BSPlayer). Зазвичай ці файли розташовуються у підтеці language кореневої теки програми і є невеликими за розміром.
Програми, які передбачають такий переклад підтримують можливість зміни мов простим додаванням мовних файлів та позначення у налаштуваннях мови цього файлу, як мови інтерфейсу програми (підтримка багатомовності).
Дані правила мають свої виключення. Так, наприклад, Miranda IM (langpack_ukrainian_01v.txt) та Opera (ukrainian.lng) містять мовні файли прямо у теці програми. При цьому Miranda має нестандартний формат назви файлу. Такі файли побудовані за принципом, коли рядок починається з ідентифікатора відповідного рядка у інтерфейсі, потім стоїть символ "=", а далі, власне, переклад рядка (в лапках або без них). Ось уривок з такого тексту:
[MENU_MAIN]
M0=Файл
M0M0=Нова сторінка
32772=Порожнє вікно
32852=Домівка
32773=Копія поточної сторінки
32873=З буфера обміну
33131=Використовувати двигун Gecko
32891=Нова копія MyIE2
32892=Відкрити...
32777=Зберегти як...
32798=Зберегти HTML...
Тут текст у квадратних лапках не підлягає перекладу, а, найчастіше, призначений або для правильної роботи програми з перекладом, або для зручності перекладача (щоб швидше відшукувати змінені у новіших версіях програми рядки чи виправляти помилки та неточності перекладу).
Щодо Miranda IM, то вона підтримує багатомовність по-своєму - у програмі не можна змінювати мову інтерфейсу через налаштування. Miranda використовує той мовний файл, який починається з "ранішої" літери абетки. Наприклад, коли є langpack_А.txt і langpack_Б.txt, то інтерфес буде мовою "А". Щоб його змінити треба або видалити файл langpack_А.txt з теки програми, або перейменувати його на langpack_В.txt. Ця ж програма має певні особливості перекладу. Так, коли певне англійське слово чи речення у мовному файлі один раз перекладено, то воно використовуватиметься при перекладі усіх інших точно таких слів (речень) у всіх рядках програми та її модулів. Це є одночасно основна перевага і недолік, бо однакові слова англійською мовою можуть потребувати різних відмінків українською. Мовний файл там виглядає наступним чином (Слова у квадратних дужках є англійськими оригіналами, а слова у наступному рядку - перекладом.):
[Offline]
Від'єднаний
[Connecting]
Під'єднання
[Online]
На дроті
[Away]
Відсутній
[DND]
Не турбувати
Перевагою є те, що найчастіше такі мовні файли від старішої версії програми спрацьовують і під новішою.
Переклад текстових мовних файлів має певні недоліки:
а). Ви зможете перекласти лише ті рядки, для яких це передбачено автором програми;
б). частенько англійські слова (речення) є коротшими українських відповідників і, відповідно, українські слова деколи не вміщуються у місце, яке передбачено автором програми для даного слова чи речення.
Ресурсний мовний файл (додатковий) - зазвичай має або назву типу Ukrainian.dll та Ukrainian.txt (коли програма використовує 1-2 файли для перекладу всього інтерфейсу), або Ім'яОригінальногоФайлу.ukr (*.rus, *.fra…) - це коли кожний оригінальний файл, який містить мовні рядки використовує для перекладу свій мовний файл. Програми, що використовують додаткові ресурсні файли підтримують багатомовність. Такі мовні файли найчастіше розташовуються у кореневій теці програми або у теці, де знаходиться оригінальний файл, для якого вони роблять переклад інтерфейсу. Ці мовні файли мають більший розмір за текстові і разом з текстом та параметрами вікон можуть містити малюнки (BMP, GIF, JPEG), гарячі клавіші, звуки (WAV), відео (AVI). Для перекладу таких файлів необхідні спеціальні програми. Найкращими вважаються Restorator 2004, Resource Hacker (ResHacker) та Language Localizator.
Типовою програмою з використанням перекладу ресурсних мовних файлів є Nero Burning Rom, де присутні (якщо їх додатково встановити) мовні файли NeroRUS.nls та NeroRUS.txt. Принцип, коли для кожного оригінального файлу використовується свій мовний файл реалізовано у Adobe Acrobat Reader.
Переклад ресурсних мовних файлів має перевагу у тому, що Ви можете змінити розміри кнопок та будь-яких інших полів для тексту, зображення тощо. Це у багатьох випадках позбавляє проблеми щодо вміщення довших українських слів у маленькі поля для тексту. Також тут можна змінювати розміри самого вікна, розташування у вікні тексту, кнопок, полів для введення тексту та ін. елементів вікна.
Перевагою є те, що часто такі файли до старішої версії програми спрацьовують і на новішу. Єдиним застереженням є те, що не усі виконавчі файли можна відкривати через те, що вони стиснені спеціальними архіваторами.
Ресурсний мовний файл - те ж, що й додатковий ресурсний мовний файл, але у даному разі, по-перше, програма не підтримує багатомовність, по-друге, для кожного файлу з мовними рядками необхідний свій мовний файл. Такі файли створюються перекладачами-любителями і можливе застосування лише одного такого файлу до програми. Файл діє за рахунок того, що перебирає на себе увесь інтерфейс програми і відображає те, що у нього заклав перекладач. Прикладом такого перекладу може бути українізатор до Restorator 2004. Я знаю лише одну програму, яка робить такі файли - це Language Localizator. Створені нею файли мають таку назву: Ім'яОригінальногоФайлу.UKR (розширення є трьома літерами мови для якої перекладено даний файл).
Різномовні ресурси файлу - це коли у ресурсному файлі є кілька однакових ресурсів різними мовами. Працює це через використання типових на лаштувань мови і регіональних стандартів користувача. Тобто, коли у Вас у Windows вказано часову зону, грошові одиниці та місце розташування українські, то Ви автоматично бачитимете український інтерфейс, а коли стоять польські стандарти - то польський. Як цей принцип працює на українізованому Windows XP з неукраїнськими регіональними стандартами і мовою не перевірялось. Таке практикують деякі великі компанії, хоча це не дуже поширений метод багатомовного інтерфейсу. З подібного ПЗ пригадую лише програму для ТБ-тюнера AVerTV 103/203.
Те ж саме Ви можете зробити за допомогою Restorator 2004 додавши дублюючий ресурс (або змінивши мову одного з існуючих), переклавши його і зробивши відповідну латку, яку можете викласти на Bestloads або УкрFace ;) Коли Ви робите такий переклад і латку до старішої версії програми, то, найчастіше, він не зовсім вірно працює з новішою версією.
Такий переклад має наступні недоліки:
а). при багатьох мовних ресурсах збільшує розмір виконавчого файлу;
б). не надає можливості українцям з неукраїнським Windows та регіональними стандартами змінити мову інтерфейсу через налаштування програми.
Переклад ресурсів - це відрізняється від попередніх видів тим, що:
а). Такий спосіб застосовується виключно перекладачами-любителями;
б). Він потребує втручання у ресурси оригінального файлу;
в). Для того, щоб перекласти українізований автором файл на іншому комп'ютері необхідне або створення автором латки-українізатора для надання іншому користувачу, або надання іншому користувачу перекладених оригінальних файлів (а розмір часто немалий). Обидва описані способи розповсюдження перекладу найчастіше спрацьовують лише на ту версію програми, яку перекладав автор.
Цей вид перекладу поєднує у собі усі переваги і недоліки ресурсних мовних файлів та різномовних ресурсів файлу. Також, при такому способі перекладу іноді бракує вмонтованої у Restorator можливості створення латки для перекладеного файлу, бо коли для перекладу усієї програми необхідно залатати 5-10 файлів, то створення такої кількості латок Restorator'ом не є найкращим варіантом - незручно для кінцевого користувача перекладу. У таких випадках на допомогу приходять латалки багатьох файлів, як то Clickteam Patch Maker чи WinPatch.
Також варто зауважити, що великі фірми, які роблять офіційні переклади до своїх продуктів іноді роблять складнішу структуру додаткових мовних файлів.