Понятно, что МИ лучше всего реализовать через подключение внешних языковых файлов. И лучше их делать текстовыми. Тогда возникает вопрос -- каким образом лучше всего определить соответствие конкретного елемента
управления в окне программы и нужной строки в языковом файле. Вот возможные варианты, как они видятся мне.
1. Наиболее очевидный способ.
Каждому элементу присвоить уникальный (хотя бы в пределах окна) числовой код, а строки в языковом файле делать вида
- Код: выделить все
<номер>=<строка>
2. Немного измененный способ.
Можно привязываться прямо к именам создавая строки вида
- Код: выделить все
<название элемента>.<название свойства>=<строка>
- Код: выделить все
<название родительского элемента>_<название элемента>=<строка>
И опять рекурсивно пробегаться по элементам управления и их списку свойств.
3. Использовать XML? Как именно? Не знаю. А не пальба ли это из пушки по воробьям?
Каждый из способов имеет свои преимущества и недостатки.
Что делать, если у одного элемента управления несколько надписей?
(именно надписей а не вложеных элементов со своими написями, например TRadioGroup в Delphi).
При добавлении нового елемента в окно на этапе разработки, следует жестко контролировать, чтобы он получил уникальный код.
Как быть если текст надписи на элементе управления состоит из нескольких строк? Вставлять escape-последовательности типа \CRLF?
Существуют ли другие способы реализации МИ?
Хотелось бы получить не просто комментарии типа да/нет/хорошо/плохо а что-то более содержательное. Или хотябы ссылку на тему.
PS. Прошу простить за, возможно, ламерские мысли.