Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.043 c
2-1168103202
CoolLamer
2007-01-06 20:06
2007.01.28
А как передать данные из ОДНОЙ процедуры в ДРУГУЮ?


2-1168131771
Antoxa2005
2007-01-07 04:02
2007.01.28
Подскажите, а какой контейнер имеет вертикальную прокрутку?


2-1168428563
Megabyte
2007-01-10 14:29
2007.01.28
Открыть страницу в браузере без компонента TWebBrowser


2-1168335875
danger
2007-01-09 12:44
2007.01.28
Форма и обработка сообщений


2-1168190561
Влад
2007-01-07 20:22
2007.01.28
OR





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский