Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
ВнизПро многоязычное приложение... ETM. Найти похожие ветки
← →
Чапаев © (2006-10-24 10:56) [0]Скажем, есть приложение, есть папка lang, где лежат *.RUS, *.ENU и ещё несколько файлов локализации. Как мне для каждого файла локализации получить название языка:
1) на английском;
2) на самом этом языке?
← →
Чапаев © (2006-10-24 11:00) [1]3) LCID (или language ID? не слишком хорошо в этом пока ориентируюсь).
← →
Чапаев © (2006-10-24 12:43) [2]Вопрос снимается, разобрался. Всем спасибо за содержательные ответы. :-D
← →
Anatoly Podgoretsky © (2006-10-24 14:09) [3]По реестру или как?
Обычно принято приводить решение.
← →
Чапаев © (2006-10-24 14:48) [4]> [3] Anatoly Podgoretsky © (24.10.06 14:09)
Да в общем есть чУдная переменная SysUtils.Languages (BDS2006), которая на две трети удовлетворяет мои запросы. Оставшаяся треть (первая) решается с помощью GetLocaleInfo().
← →
Anatoly Podgoretsky © (2006-10-24 15:00) [5]А вот за это спасибо, не знал про эту переменную. Видишь как полезно делать суммари, в нетривиальных случаях.
← →
Плохиш © (2006-10-24 15:33) [6]
> Чапаев © (24.10.06 14:48) [4]
> > [3] Anatoly Podgoretsky © (24.10.06 14:09)
> Да в общем есть чУдная переменная SysUtils.Languages (BDS2006)
Функция в D7.
Только не совсем понятно, как она помогла решить задачу из [0]?
← →
Чапаев © (2006-10-24 15:41) [7]Ну не то чтоб она послужила "философским камнем", который решил разом все проблемы, но там есть свойство Ext[], с помощью которого можно сотворить всё, что мне надо.
← →
Anatoly Podgoretsky © (2006-10-24 15:49) [8]Я так понимаю, в ней список поддержанных для данного приложения языков, а остальное уже дело техники.
← →
Плохиш © (2006-10-24 16:01) [9]
> Чапаев © (24.10.06 15:41) [7]
Понятно :-)
> Anatoly Podgoretsky © (24.10.06 15:49) [8]
Да, я вопрос понял, что надо получить информацию о языке по содержимому.
Если разработчик локализации будет придерживаться требований системы для расширения файла, то задача сводиться к тривиальной.
← →
Чапаев © (2006-10-24 16:33) [10]> [8] Anatoly Podgoretsky © (24.10.06 15:49)
Нет, список языков, о которых знает система (не знаю, как это более вразумительно сказать). В моём случае Languages.Count=158.
← →
Anatoly Podgoretsky © (2006-10-24 16:38) [11]А жалко, так хотелось хорошего, честного метода. Тогда может посмотреть, что в реестре есть по данной части, у меня есть несколько таких приложений, будет время взгляну.
← →
Наиль © (2006-10-24 17:58) [12]
> [11] Anatoly Podgoretsky © (24.10.06 16:38)
Я всегда считал, что знаете всё про локализацию.
Что касается реестра, то вот вырезка из "Delphi Russian Knowledge Base"Как локализовать (русифицировать) ресурсы какого-либо пакета (runtime package)?
1) Вынимаете pесуpсы из этого модуля.
2) Пеpеводите их на дpугой язык. (напpимеp pусский)
3) Создаете в Delphi свой пpоект Dll-ки (с именем того модуля, из котоpого вы
вынули pесуpсы, напpимеp vcl30), в котоpый включаете _пеpеведенные_
pесуpсы:
{$R vcl30rus.res}
4) Собиpаете все это.
5) Пеpеименовываете полученную vcl30.Dll в vcl30.rus и кидаете ее в System.
Если вы хотите, пpиложение "говоpило" по pусски только тогда, когда в
pегиональных установках стоит Russia - то тогда это все.
Если же вы хотите, чтобы ваше пpиложение _всегда_ поднимало pусские pесуpсы,
то необходимо сделать следующее добавление в Registry:
HKEY_CURRENT_USER\SOFTWARE\Borland\Delphi\Locales
"X:\MyProject\MyApp.exe" = "rus"
Перечитал приведёный пример несколько раз, и понял, что не очень понял, о чём здесь написано.
Надеюсь это и есть, тот самый - честный способ.
← →
Anatoly Podgoretsky © (2006-10-24 18:30) [13]
> Я всегда считал, что знаете всё про локализацию.
Зачем мне все, вопросы решаются по мере поступления, такой вопрос у меня не возникал.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.097 c