Автор: Deep2007
Дата сообщения: 22.12.2009 14:05
Помогите с такой проблемой:
Есть 2 файла: 1.lng и 2.lng. Это - тестовые языковые файлы в кодировке ANSI. 1.lng - русский языковой файл от старой версии, строки из которого хочу корректно перенести в англ. языковой файл от новой версии 2.lng.
Пример текста из файла 1.lng:
[more]
[TMainForm]
TabPages.0=Каталоги
TabPages.1=Категории
[STRINGS]
001=Неиспользованная кнопка
003=Ошибка при сохранении конфигурации
[TIPS]
001=...программа не бесплатна? Регистрируясь, вы помогаете автору в разработке новых версий программы, а также получаете доступ к использованию всех ее возможностей.
002=...вы можете настроить размер кнопок панели инструментов? Загляните в настройки и установите размер, более всего подходящий для вашего экрана.
[TLendingDisksForm]
NameLabel=На руках у /047 Взят у:
RadioAvailable=Доступен
[/more]
Этот же текст в файле 2.lng:
[more]
[TMainForm]
TabPages.0=Catalogs
TabPages.1=Categories
[STRINGS]
001=Unused button
003=Error saving config
[TIPS]
001=...this program is not free? By registering, you will support the shareware concept and help the author to develop newer, more advanced versions. You will also receive a registration code to unlock the program to its full potential.
002=...you can adjust size of buttons in a toolbar. Have a look in the program settings and resize them to fit your screen best.
[TLendingDisksForm]
NameLabel=Lent to /047 Borrowed from:
RadioAvailable=Available
[/more]
Структура файлов:
Секции (то, что заключено в [], например [TMainForm]):
1. Всегда начинаются с новой строки, и написаны без переносов.
2. Символ [ в имени секции всегда первый в строке (так их можно находить в документе).
3. Максимальная длина имени секции (без учета []) = 18
4. После последней строки в секции всегда следует пустая строка.
Строки (например, TabPages.0=Каталоги):
1. Всегда начинаются с новой строки, и написаны без переносов.
2. Содержат левую и правую часть, между ними символ =
3. Строки в одинаковых секциях двух файлов идентифицируются по левой части, правая часть (после =) выводится текстом в программе.
4. Левые части строк в разных секциях могут совпадать, отсюда необходимость учета секций.
5. Внутри строк также могут встречаться символы [], но они не первые в строке.
Пакетный файл:
1. Находит в файле 2.lng первую секцию, и ищет в файле 1.lng такую же секцию.
Если успешно - переходим к п.2, если не найдена такая секция в файле 1.lng - переходим к сл. секции в файле 2.lng.
2. Находит в текущей секции файла 2.lng первую строку, и ищет в файле 1.lng в той же секции ту же строку.
Если успешно - из файла 1.lng копируется правая часть строки (после символа =), и этим заменяется правая часть такой же строки в файле 2.lng.
Напишите, пожалуйста, файл .cmd чтобы перенести русский текст из файла 1.lng в файл 2.lng.
PS. Не все секции и строки из файла 2 существуют в файле 1. Поэтому заменены будут не все строки и не все секции. Пути к файлам не нужны, т.е. файлы 1, 2, и .cmd находятся в одной папке. Система -XP Pro русская.
Если что упустил - допишу.