Локализация? Локализация!
От: Neosyst Россия www.rubius.com
Дата: 30.01.06 15:49
Оценка:
Здравствуйте все!

Появилась необходимость локализации нашего программного продукта. Выянилось, что тут используется, в общем, два подхода:
-----
1 — Динамическая подгрузка строк из файла/реестра и т.д. и вставка их "в нужные места"
Преимущества — нет необходимости перекомпилировать exe-файл для смены языка. Так работают Total Commander, Skype и многие другие.
Однако иногда наблюдаются проблемы, вытекающие из сущности данного подхода — фразы обрезаются, наезжают друг на друга, да и вообще, ведут себя зачастую просто неприлично!
Пример:
Добро пожаловать! Вы являетесь последним пользователем.
Wellcome! You are last user.
В основном, крупные фирмы избегают данного подхода, предпочитая делать для каждого языка свой билд.
Кроме того локализация на уровне таблиц строк или даже скриптов(особенно с динамическим определением размера контролов) является трудоёмкой с точки зрения изменений в исходном коде программ.
-----
2 — Работа с уже подготовленными иноязычными ресурсами, в которых отрегулирована высота и ширина всех контролов и т.п.
Этот вариант предполагает наличие отдельных локализованных ресурсов, которые компилируются либо в сам exe-файл, либо подключаются к нему из dll.
-----
Наша фирма, склоняется именно к такому варианту.
Имея версию ресурсов с одним языком, можно легко получить другую версию, просто переведя текстовые строки .rc-файла.
Проблема в том, что переводом строк занимаются наши дистрибьюторы в конкретных странах, и нам нужно отдать им эти строки (и только строки) для модификации, а затем встроить обратно в .rc файл. В .rc-файле же, кроме строк ещё находится куча различной информации, которую отдавать дистрибьюторам нет никакой необходимости — они не программисты, им нужно будет долго объяснять что и где переводить нужно, а где не нужно (например пути в реестре, вынесеные в IDS'ы).

Получается, что нужно написать утилиту – парсер, выдирающую нужные текстовые строки из rc файла, затем составляющую некую базу (со взаимооднозначными соответствиями), а после перевода этих строк втавляющий их обратно. При этом нужно, чтобы она (утилита) учитывала уже переведённые строки из созданных ранее баз данных.
===================

Так вот вопросы: Не существует ли уже таких утилит, а может они вообще не нужны и можно сделать проще? Как проще?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.