Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Мультиязычность приложения Delphi. (https://forum.antichat.xyz/showthread.php?t=143388)

dos999 24.09.2009 16:31

Мультиязычность приложения Delphi.
 
Вот недавно столкнулся с необходимостью сделать в программе (ужа написаной) мультиязычный интерфейс, т.е. чтобы все Caption'ы и тому подобные свойства были на таком языке который выберет пользователь из моего списка.
Может кто нить уже занимался подобными вещами, посоветуйте как лучше сделать.

Была идея хранить тексты в каком нить ini или xml файле, в Form.OnCreate сделать перебор всех компонентов и по имени компонента находить и присваивать нужный Caption. Недостаток этого метода в том что если имя компонента измениться то будет Exception. Ещё можно искать не по имени а по тому же Caption но тут ещё хуже.

Хелп ми народ, подкиньте идейку.

M_script_ 24.09.2009 18:55

Цитата:

Сообщение от dos999
Недостаток этого метода в том что если имя компонента измениться то будет Exception.

А если в ini-файле прописывать имя компонента? Например:
Код:

:rus
caption1=текст1
caption2=текст2
:eng
caption1=text1
caption2=text2

P.S.: Не совсем понял, каким образом имя компонента изменится в готовой программе?

dos999 25.09.2009 11:29

В том то и дело что проек постоянно меняеться (развиваеться) и не исключено что имена компонентов нужно будет менять. допустим был какой нить Label12 а стал LbName

BlackSilver 25.09.2009 11:52

http://www.codenet.ru/progr/delphi/stat/multilang.php
Отличное решение, хотя я этот код фиксил. Уже не помню, как.

0rs 25.09.2009 12:30

В Delphi вроде есть что-то типа встроенной мультиязычности. Если рядом с исполняемым файлом положить библиотеку с переведенными ресурсами с расширением rus, то приложение будет использовать ресурсы из этой библиотеки.

W!z@rD 25.09.2009 13:06

мда...

https://forum.antichat.ru/thread142629.html
не судьба соседние темы посмотреть? Тем более что в заголовке описана (более/менее) твоя проблема

dos999 25.09.2009 13:09

Цитата:

В Delphi вроде есть что-то типа встроенной мультиязычности. Если рядом с исполняемым файлом положить библиотеку с переведенными ресурсами с расширением rus, то приложение будет использовать ресурсы из этой библиотеки.
Да в Delphi есть translation manager всё там делается очень легко и прикольно, но вот компилить можно помоему только 1 язык из добавленных. а мне 2 exe'шника никчему.

dos999 25.09.2009 13:14

Цитата:

http://www.codenet.ru/progr/delphi/stat/multilang.php
Отличное решение, хотя я этот код фиксил. Уже не помню, как.
спс BlackSilver, но о недостатках этого метода я уже говорил, искать компоненты по имени или кэпшену сейчас для меня "не по фен-шую", т.к. проект активно изменяется.

Цитата:

https://forum.antichat.ru/thread142629.html
не судьба соседние темы посмотреть? Тем более что в заголовке описана (более/менее) твоя проблема
W!z@rD и что в этой теме общего с моей? как компоненты цыклом перебрать и ослу понятно.

W!z@rD 25.09.2009 17:10

лооолл
1. Цикл
2. "Недостаток этого метода в том что если имя компонента измениться"

ололо? не правда ли?

dos999 26.09.2009 01:51

=) ну ты ппц) чё написал то,сам понял?) ладно нехочу сориться, видимо друг друга не поняли.


Время: 20:15