Как сделать мультиязычный интерфейс и где хранить переводы?
Хочу разобраться с этим и написать программу для удобного редактирования таких файлов, где хранятся переводы.
Если есть киньте ссылки по этой теме + примеры структуры файлов с переводами.
Param1=Value
Param2=Value
[Section2]
Param1=Value
Param2=Value
Структура XML файла такая же, как и любого HTML, с тем лишь различием, что теги у второго строго заданы стандартом, а у первого нет.
Но мультиязычность достигается не с помощью этих приблуд, а путем создания нескольких библиотек dll, которые хранят unicode-символы для твоих сообщений.
В зависимости от галочки в пункте "Языки", программа использует ту, или иную функцию вывода (или берет разные параметры из массива ответов). Хотя можно обойтись и без dll библиотеки, но это усложнит код основной программы слишком сильно.
Кстати, поздние версии builder'а работают именно на unicod'ах, поэтому проблем не возникнет.
Алсо:
Немного о решениях этой проблемы
У меня английский дистрибутив Windows, например.
И еще маленький нюансик, в ресурсах хранятся ASCII строки, а для нормальной локализации лучше использовать Unicode, например. Да и если мне память не изменяет, ограничение в 256 строк есть.
Проблема предвидется с последующей долокализацией, ибо потребует полной перекомпиляции приложения (а оно будет весить ой как не мало), а автору всего лишь хотелось то добавить еще 1 язык.
Конечно вариант с локализацией в ресурсах - отнюдь не самый лучший.
Param1=Value
Param2=Value
[Section2]
Param1=Value
Param2=Value
Я поискал и понял, что на каждый язык будет отдельный ini файл.
например:
Russian.ini
Button1.Caption=Кнопка
Label1.Caption=Лэйбл
English.ini
Button1.Caption=Button
Label1.Caption=Label
Это так?
В ресурсах всегда хранится Unicode, даже в Win 9x. Если речь именно про строки в ресурсах, а не поля форм в DFM.
Наверное имеются ввиду ресурсы не в самом приложении, а в дллке, а далее приложение в зависимости от настроек грузит нужную дллку и хоба - посмотрите как сделано в CCleaner, например. Еще вариант локализации - как в EVEREST\AIDA64 или Total Commander и тут похожее уже писали.