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

Вниз

Поделки   Найти похожие ветки 

 
Loginov Dmitry ©   (2007-01-05 20:38) [0]

Выложил на сайте обновленную версию модуля LangReader.pas. Предназначен для локализации приложений. Очень неплохая альтернатива встроенному Дельфийскому средству Translation Manager. Действительно работает (так вот :). Тщательно отладил модуль во время трансляции достаточно серьезного приложения, в котором порядка 30 форм. Вес архива - всего 13 Кбайт. Описание работы с модулем - в нем же. Так что - берите кому нужно :)


 
Loginov Dmitry ©   (2007-01-05 20:39) [1]

http://matrix.kladovka.net.ru/download.php?getfilename=uploads/other/multilang.zip


 
Nic ©   (2007-01-05 21:30) [2]

Loginov Dmitry ©   (05.01.07 20:38)  
Респект. Сейчас распробуем :)


 
$Pl@Sh ©   (2007-01-05 21:39) [3]

Действительно неплохая альтернатива! Мне пока нравится :-)


 
Eraser ©   (2007-01-05 21:51) [4]

на первый взгляд вроде просто, грамотно и бесплатно. если ничего лучше не найду - буду использовать :)


 
Gero ©   (2007-01-05 23:50) [5]

А демо exe-файл есть в архиве?


 
Loginov Dmitry ©   (2007-01-06 09:02) [6]

> А демо exe-файл есть в архиве?


А как же :))


 
X9 ©   (2007-01-06 09:15) [7]

Нашёл багу в демке: Caption у LabeledEdit1 меняется как-то странно: сначала он равен "LabeledEdit1", при переходе на английский - "Must die!", при повторном переходе на русский - снова "Must die!". Почему?


 
Loginov Dmitry ©   (2007-01-06 10:56) [8]

> Почему?


Так было задумано :)


 
X9 ©   (2007-01-06 10:59) [9]

> [8] Loginov Dmitry ©   (06.01.07 10:56)
> Так было задумано :)

Довольно странная задумка :)


 
Loginov Dmitry ©   (2007-01-06 12:33) [10]

И даже такое переваривает:

Panel1.Panel2.Panel3.Color=0

хотя можно просто

Panel3.Color=0


 
Anatoly Podgoretsky ©   (2007-01-06 12:36) [11]

> X9  (06.01.2007 09:15:07)  [7]

Потому что "Must die!"


 
Gero ©   (2007-01-06 14:55) [12]

> [6] Loginov Dmitry ©   (06.01.07 09:02)
> А как же

Хм, скачал архив, exe нет.


 
С   (2007-01-06 15:28) [13]

Скачал архив.

>Eraser ©   (05.01.07 21:51) [4]
>на первый взгляд вроде просто, грамотно и бесплатно.


По поводу "просто" и "бесплатно" согласен, с остальным нет.

Удалил.

ЗЫ А чем стандартное-то средство не нравится?!


 
Eraser ©   (2007-01-06 15:30) [14]

> [13] С   (06.01.07 15:28)

если есть на премете подобные компоненты, которые заслуживают внимания - буду благодарен за ссылки.

> ЗЫ А чем стандартное-то средство не нравится?!

для небольших шароварных проектов подход, принятый в стандартном средстве не годится по ряду причин.


 
Gero ©   (2007-01-06 15:36) [15]

Посмотрел исходник, реализация действительно не фонтан. И не нужно справку пихать в файл исходника.


 
Sergey Masloff   (2007-01-06 16:00) [16]

Gero ©   (06.01.07 15:36) [15]
>Посмотрел исходник, реализация действительно не фонтан. И не нужно >справку пихать в файл исходника.
О вот это ты зря. Я правда не видел про что речь но когда мне нужно быстро освоить новый оракловый пакет то я использую именно то описание что в пакете - очень удобно.


 
С   (2007-01-06 16:09) [17]

>Eraser ©   (06.01.07 15:30) [14]
>для небольших шароварных проектов подход, принятый в стандартном средстве не годится по ряду причин


Если не затруднит, не могли бы Вы привести одну-две причины в качестве иллюстрации.

>если есть на премете подобные компоненты, которые заслуживают внимания - буду благодарен за ссылки

Да я как-то не задавался целью. На мой взгляд, стандартного средства вполне достаточно.


 
Eraser ©   (2007-01-06 16:31) [18]

> [17] С   (06.01.07 16:09)

1. не нужно закачивать отдельный инсталлятор для каждого языка.
2. удобно добавлять доп. языки, достаточно скопировать языковой файл в нужную папку и переключить опцию в программе.
3. для того, чтобы локализовать программу - не нужно править исходники, достаточно добавить нужный файл. кстати это очень удобно, если кто-то за опр. количество лицензий (или денег)) согласится перевести программу. ему достаточно просто подправить lng файл. Не представляю как бы я переводил программу, к примеру, на японский с пом. стандартного средства ))


 
С   (2007-01-06 16:43) [19]

>Eraser ©   (06.01.07 16:31) [18]

Спасибо, я обязательно обдумаю приведенные Вами аргументы, но не сегодня - обстоятельства не позволяют:)


 
Eraser ©   (2007-01-06 16:47) [20]

> [19] С   (06.01.07 16:43)

эт точно, скоро гуся зажаривать :)


 
Loginov Dmitry ©   (2007-01-06 17:03) [21]

> Посмотрел исходник, реализация действительно не фонтан.


Зато фонтан во всех остальных аналогичных по назначению средствах. Можно аж купаться в нем.


 
DiamondShark ©   (2007-01-06 18:31) [22]


> 1. не нужно закачивать отдельный инсталлятор для каждого
> языка.

А откуда тогда возьмутся "каждые языки"?
Что ресурсную длл качать, что самопальный языковой файл.


> 2. удобно добавлять доп. языки, достаточно скопировать языковой
> файл в нужную папку и переключить опцию в программе.

Достаточно скопировать ресурсную длл в нужную папку и переключить опцию в программе.


> 3. для того, чтобы локализовать программу - не нужно править
> исходники, достаточно добавить нужный файл. кстати это очень
> удобно, если кто-то за опр. количество лицензий (или денег))
> согласится перевести программу. ему достаточно просто подправить
> lng файл. Не представляю как бы я переводил программу, к
> примеру, на японский с пом. стандартного средства ))

Ну, исходники править не надо, надо править только ресурсы -- формы и таблицы строк.
Хотя да. Скомпилировать ресурсную длл сторонним средством не получиится.
Т.е. вместо "ряда причин" остаётся только одна (т.к. первые две добавлены только "для весу"): платный инструмент.

Локализация приложения -- это не только перевод надписей на другой языг. Есть целая куча "небольших шароварных проектов", которые пошли нафиг только потому, что русские надписи не влазили на кнопки.
Размеры и положение контролов, картинки и иконки -- это, наряду с текстом, точно такой же предмет локализации.


 
Anatoly Podgoretsky ©   (2007-01-06 18:40) [23]

> DiamondShark  (06.01.2007 18:31:22)  [22]

А эти изобретали велосипедов не могут понять этого.


 
Gero ©   (2007-01-07 02:01) [24]

> [21] Loginov Dmitry ©   (06.01.07 17:03)

Зря критику злорадственно воспринимаешь.


 
Eraser ©   (2007-01-07 03:08) [25]

> [22] DiamondShark ©   (06.01.07 18:31)

да, по-сути самый главный вариант это 3.
+ еще то, что подобный "велосипед", как ни странно, более гибче, чем встроенное всредство. хотя встроенное средство несомненно более концептуально, я б сказал, даже через чур )
еще одним весомым аргументом, для меня лично, является то, что я не видел ни одного реального проекта (в т.ч. и шароварного), где бы использовался втроенный translation manager. если знаете такие - дайте ссылку, с большим интересом гляну. то что опыт конкурентов, особенно сильных, надо учитывать это я уже давно понял.

> Локализация приложения -- это не только перевод надписей
> на другой языг. Есть целая куча "небольших шароварных проектов",
> которые пошли нафиг только потому, что русские надписи
> не влазили на кнопки.
> Размеры и положение контролов, картинки и иконки -- это,
> наряду с текстом, точно такой же предмет локализации.

это все понятно, и учитывается.
----
после сравнительно поверхностного анализа различных монстрообразных систем локализаций, вся громоздкость которых, направленая якобы на упрощение локализации оборачивается обратным эффектом, все больше склоняюсь к простой системе, подобной той, что предложил автор. конечно в идеале я бы исользовал tnt-controls + DKLang (который, к слову, активно использует tnt и даже требует предварительно их установить), но юникод в моем приложении, по большому счету, нафиг не нужен, и появится только с переходом на .net, автоматически так сказать :)
хотя окончательный выбор еще не сделал, пока время терпит.


 
lookin ©   (2007-01-07 03:53) [26]

А что такое локализация приложений?


 
Loginov Dmitry ©   (2007-01-07 09:53) [27]

> Зря критику злорадственно воспринимаешь.


От тебя-то я конкретной критики еще и не слышал. Я не могу считать критикой фразу "реализация действительно не фонтан", т.к. она совершенно не конкретизирована.


 
grisme ©   (2007-01-07 10:19) [28]

lookin ©   (07.01.07 03:53) [26]

это дает возможность использовать твой софт и Гургену Джангвирашвиле, и Бэну Томасу из Канады, и Танака Йошимитсу из Токио и другим представителям других государств и городов этих государств, которые, конечно же, ради использования приложения(если стоит оно того) не будут изучать русскей язэчог :P


 
Gero ©   (2007-01-07 17:00) [29]

> [27] Loginov Dmitry ©   (07.01.07 09:53)

1. GetSMsg, GetPMsg, SetSMsg.
Такое именование процедур недопустимо. Потому тебе и приходится писать кучу комментариев, потому что из самого кода немного можно понять.

2. Набор функций кажется совершенно несвязанным, и интуитивно непонятно, как же все это использовать. Гораздо логичнее было бы оформить класс, где бы все стало на свои места. Даже глобальные переменные.

3. Не самый лучший код.

begin
     S := AList[I];
     APos := Pos("=", S);
     if APos > 1 then
     begin
       AName := AnsiLowerCase(Copy(S, 1, APos — 1));
       AValue := Copy(S, APos + 1, Length(S) — APos);
       AValue := StringReplace(AValue, "\n", sLineBreak, [rfReplaceAll, rfIgnoreCase]);

       SetSMsg(AName, AValue);
     end;

   end;

Так лучше:

AName := AList.Names[i];
AValue := AList.Values[AName];

Это то, что сразу бросилось в глаза при просмотре pas-файла.


 
Loginov Dmitry ©   (2007-01-07 23:49) [30]

> 1. GetSMsg, GetPMsg, SetSMsg.
> Такое именование процедур недопустимо. Потому тебе и приходится
> писать кучу комментариев, потому что из самого кода немного
> можно понять.


Лишь бы к чему придраться, ей богу.


> 2. Набор функций кажется совершенно несвязанным, и интуитивно
> непонятно, как же все это использовать.


Комментарии для кого?


> Гораздо логичнее
> было бы оформить класс, где бы все стало на свои места.
> Даже глобальные переменные.


Согласен (да и только, т.к. переделывать уже ничего не буду)

> Так лучше:
>
> AName := AList.Names[i];
> AValue := AList.Values[AName];


Это было в первоначальном варианте. Я это убрал. Текущий вариант должен работать значительно быстрее.


 
Gero ©   (2007-01-07 23:51) [31]

> [30] Loginov Dmitry ©   (07.01.07 23:49)
> Лишь бы к чему придраться, ей богу.

Мне твоя разработка не нужна и я не придираюсь. Когда начнешь заниматься программированием профессионально, особенно в команде, поймешь о чем я.


 
Loginov Dmitry ©   (2007-01-08 00:20) [32]

> Когда начнешь заниматься программированием профессионально,
> особенно в команде...


Да уже вроде бы как бы...


 
Gero ©   (2007-01-08 00:21) [33]

> [32] Loginov Dmitry ©   (08.01.07 00:20)

Значит не достиг должного уровня еще.


 
Gero ©   (2007-01-08 00:29) [34]

> [30] Loginov Dmitry ©   (07.01.07 23:49)
> Комментарии для кого?

Для тебя, видимо.


 
Anatoly Podgoretsky ©   (2007-01-08 02:04) [35]

> Loginov Dmitry  (07.01.2007 23:49:30)  [30]

> Это было в первоначальном варианте. Я это убрал. Текущий вариант должен работать значительно быстрее.

Скажу тебе великую тайну - зря убрал, имена никак не влияют на быстродействие.


 
lookin ©   (2007-01-08 09:20) [36]

[28] grisme ©   (07.01.07 10:19)

Отсюда не следует, что язык в приложении должен быть английским?


 
Loginov Dmitry ©   (2007-01-08 22:28) [37]

> Скажу тебе великую тайну - зря убрал, имена никак не влияют
> на быстродействие.


Ну что за бред?


 
Gero ©   (2007-01-08 22:34) [38]

> [36] lookin ©   (08.01.07 09:20)

Нет, не следует.



Страницы: 1 вся ветка

Текущий архив: 2007.01.28;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.07 c
15-1168081075
kaZaNoVa
2007-01-06 13:57
2007.01.28
Покритикуйте программу, Self-loader


2-1168284648
Kostya_86
2007-01-08 22:30
2007.01.28
Запуск access


3-1162905727
FB
2006-11-07 16:22
2007.01.28
Получить длину строки в FireBird


15-1168025419
Галинка
2007-01-05 22:30
2007.01.28
Ищу ветку


15-1168267912
ocean
2007-01-08 17:51
2007.01.28
Ночной дозор Лукьяненко