Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

Про многоязычное приложение... 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.064 c
8-1145530172
Uran
2006-04-20 14:49
2006.12.03
BMP в GIF


15-1163582327
xazan
2006-11-15 12:18
2006.12.03
Определение топологии сети


2-1163197263
superlamer
2006-11-11 01:21
2006.12.03
Как правильно удалить объект созданный в рантайме


15-1163397237
Cerberus
2006-11-13 08:53
2006.12.03
Сайты с заказами на разработку интернет сайтов.


2-1163252466
cc33
2006-11-11 16:41
2006.12.03
class class