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

Вниз

Компиляция двух вариантов   Найти похожие ветки 

 
@!!ex ©   (2008-02-07 12:14) [0]

Есть проект.
В нем есть константа Language.
Нужно чтобы во время компиляции создавалось два ехешника,
один с константой Language=0 и названием Engine_eng, и второй с Language=1 и названием Engine_rus.
Как это проще всего сделать?


 
Palladin ©   (2008-02-07 12:14) [1]

двумя компиляциями


 
@!!ex ©   (2008-02-07 12:17) [2]

> [1] Palladin ©   (07.02.08 12:14)

Это не проще всего. Таких проектов много, и две компиляции тупо забываешь сделать.


 
oxffff ©   (2008-02-07 12:19) [3]


> Как это проще всего сделать?


Распространять с локализацией в отдельном модуле (dll, exe)


 
@!!ex ©   (2008-02-07 12:20) [4]

> [3] oxffff ©   (07.02.08 12:19)

и чем это проще?


 
Palladin ©   (2008-02-07 12:20) [5]

Бумажку себе на мониторе наклеить
"Откомпилировал раз - откомпилируй и два!!!"

ну если серьезно
1. компилировать batником
2. написать эксперт IDE
3. написать свою утилиту "паразитной" компиляции

да много можно чего придумать... но поверь, с бумажкой - самео простое...


 
@!!ex ©   (2008-02-07 12:21) [6]

Придется к томуже две dllки хранить, и все изменения в них обеих отражать... нафиг нужен такой геморой...


 
ketmar ©   (2008-02-07 12:21) [7]

>[2] @!!ex © (2008-02-07 12:17:00)
тебя простые батници писать не учили? поучись, ещё не поздно.

---
Understanding is not required. Only obedience.


 
ketmar ©   (2008-02-07 12:22) [8]

*батнички.

---
Understanding is not required. Only obedience.


 
@!!ex ©   (2008-02-07 12:24) [9]

> да много можно чего придумать... но поверь, с бумажкой -
> самео простое...

неее.
считаем:
написание эксперта(самый вроде рациональный вариант) займет фиксированное время N.
Компиляция два раза занимает времени и сил больше чем компиляция один раз на M.
Количество проектов стремится к бесконечности.
Следовательно меньше времени и сил потребует написание эксперта.


 
oxffff ©   (2008-02-07 12:25) [10]


> @!!ex ©   (07.02.08 12:20) [4]


1. Места на диске меньше.
2. Время на сборку меньше.
3. Далее изменения вносишь в основной модуль, компилируешь один раз.
  И рассылаешь только его, общий для всех.
  А локализация та же.
4. Проще тем, что это логичней.


 
Palladin ©   (2008-02-07 12:25) [11]

та фперед, я то чего, я ничего...


 
@!!ex ©   (2008-02-07 12:29) [12]

1. Места на диске меньше.
Это еще почему?
2. Время на сборку меньше.
Столько же.
3. Далее изменения вносишь в основной модуль, компилируешь один раз.
Как это оджин раз? А локализации? Надо еще и dll перекомпилировать.
И рассылаешь только его, общий для всех.
А локализация та же.
4. Проще тем, что это логичней.
А текстовый файлик с локализацией - не логично?


 
Palladin ©   (2008-02-07 12:31) [13]

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


 
хам   (2008-02-07 12:36) [14]

А в зависимости от настроек системы выбирать язык? Самое логичное. С локализацией тока пролемы.


 
oxffff ©   (2008-02-07 12:40) [15]


> @!!ex ©   (07.02.08 12:29) [12]
> 1. Места на диске меньше.
> Это еще почему?

Это еще потому, что функционал сосредоточен в shared модуле.
А специализация в отдельных. Вместо дублирования функционала.
Места на твоем(developer) компьютере.
+ shared модуль в shared папке.

> 2. Время на сборку меньше.
> Столько же.

Что больше N*(A+B) или A+N*B?   при A,B >0

> 3. Далее изменения вносишь в основной модуль, компилируешь
> один раз.
> Как это оджин раз? А локализации? Надо еще и dll перекомпилировать.

Представь, что изменяешь алгоритм не добавляющий/затрагивающий локализацию.

>
> И рассылаешь только его, общий для всех.
> А локализация та же.
> 4. Проще тем, что это логичней.
> А текстовый файлик с локализацией - не логично?

Можно и его. Только если локализация содержит текст.
А если он Unicode+ansi, +картинки+Sound.
Что будешь городить схему и парсер  в TXT?
Так что txt- незачет.


 
Palladin ©   (2008-02-07 12:48) [16]


> А если он Unicode+ansi, +картинки+Sound.

тогда dll однозначно


 
ketmar ©   (2008-02-07 12:49) [17]

>Palladin © (2008-02-07 12:31:00)
апупенно приятный. особенно когда надпись нифига не влазит в отведённое ей место.

---
Understanding is not required. Only obedience.


 
Palladin ©   (2008-02-07 12:51) [18]

а нефик романы писать


 
DrPass ©   (2008-02-07 12:53) [19]


> Нужно чтобы во время компиляции создавалось два ехешника,
>
> один с константой Language=0 и названием Engine_eng, и второй
> с Language=1 и названием Engine_rus.
> Как это проще всего сделать?

Сделать в группе проектов два dpr-файла с одинаковым содержимым, один с названием Engine_eng.dpr, название второго придумай сам.


 
Skyle ©   (2008-02-07 12:54) [20]

Надо вместо текста писать цифры. И с программой распространять мануал на нужном языке, в котором написано, что означает подпись №2445 и что делает кнопка №4422.


 
ketmar ©   (2008-02-07 12:54) [21]

>[18] Palladin © (2008-02-07 12:51:00)
а то, что у разных языков разная средняя длина слова — это ничего?

---
Understanding is not required. Only obedience.


 
Palladin ©   (2008-02-07 12:56) [22]

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


 
ketmar ©   (2008-02-07 13:06) [23]

>[22] Palladin © (2008-02-07 12:56:00)
а другой без геморроя не сделаешь. гыгы.

---
Understanding is not required. Only obedience.


 
Игорь Шевченко ©   (2008-02-07 13:12) [24]

ketmar ©   (07.02.08 12:54) [21]


> а то, что у разных языков разная средняя длина слова — это
> ничего?


Нормально. Ибо нефиг писать романы.

Может, я чего не понимаю, но честно делал несколько проектов с тупой локализацией - в программе объявлена константа для строки, ресурсная DLL для каждого языка, и LoadString в программе же. Поверь, ни разу не наступал на "среднюю длину слова".


 
ketmar ©   (2008-02-07 13:13) [25]

>[24] Игорь Шевченко © (2008-02-07 13:12:00)
это потому, что тебе, видимо, не приходилось переводить с анлийского на финнский.

---
Understanding is not required. Only obedience.


 
Игорь Шевченко ©   (2008-02-07 13:18) [26]

ketmar ©   (07.02.08 13:13) [25]

Я не переводчик ни разу. Но в языках существует такое удобное понятие, как сокращение, одинаково понятное всем носителям языка и даже потенциальным.
А заниматься рисованием окон под каждый язык - непрактично. Впрочем, опять же, от задачи зависит. Мне не попадалось.


 
ketmar ©   (2008-02-07 13:21) [27]

>[26] Игорь Шевченко © (2008-02-07 13:18:00)
в принципе, и общие английские слова тоже всем понятны. но это же некрасиво.

а намекал я на ОЧЕНЬ разную длину слов у этих языков. оно примерно так: английский<русский<финский. сокращения… не знаю, тогда уж лучше оставить оригинал. и то «сд.кв.вс.у.» получится…

---
Understanding is not required. Only obedience.


 
ketmar ©   (2008-02-07 13:22) [28]

«и то» == «а то».

---
Understanding is not required. Only obedience.


 
Palladin ©   (2008-02-07 13:25) [29]

По пpеpии едyт два ковбоя и pазговаpивают. За кадpом, как положено, гнyсавый пеpеводчик:
-F*ck, Bob?(Кyда ведёт эта доpога, Боб?)
-S*it, Jim.(Я не знаю точно, Джим.)
-S*it, Bob.(А как ты дyмаешь, Боб?)
-F*ck, Jim.(Мне кажется, она ведёт в Техас, Джим.)
-F*ck, Bob.(А мне кажется, она ведёт в Калифоpнию, Боб.)
-F*ck, Jim.(Hет, всё-таки в Техас, Джим.)
-S*it, Bob.(Чёpт возьми, Боб, нам не нyжно в Техас!)
-F*ck, Jim.(Hе pyгайся, Джим.)


 
Игорь Шевченко ©   (2008-02-07 13:25) [30]

ketmar ©   (07.02.08 13:21) [27]


> в принципе, и общие английские слова тоже всем понятны.
> но это же некрасиво.


Конечно некрасиво. И непатриотично.

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


 
Игорь Шевченко ©   (2008-02-07 13:27) [31]

Palladin ©   (07.02.08 13:25) [29]

http://lleo.aha.ru/tv/ospradio/inyaz.htm


 
ketmar ©   (2008-02-07 13:31) [32]

>[30] Игорь Шевченко © (2008-02-07 13:25:00)
а вот по этой причине я давно уже кричу, что система привязки размеров и положений к координатам ущербна по сути. да, такой UI легко "накидать", но так же легко оно и развалится. %-(

---
Understanding is not required. Only obedience.


 
Игорь Шевченко ©   (2008-02-07 13:51) [33]

ketmar ©   (07.02.08 13:31) [32]

Программа должна быть консольной. Там пофиг средняя длина слова. Окна вообще бесово порождение, а кнопки в них прямое пособничество диаволу.
В свое время была неплохая операционная система на СМ-3, где на неверный ввод она реагировала одинаково, сообщением: "ILL CMD"


 
Eraser ©   (2008-02-07 13:54) [34]

кстати немного оффтоп..

кто-нибудь знает как в InstallShield для msi проекта сделать так, чтобы вначале появлялся диалог выбора языка установки, сколько не искал, везде пишут что такое возможно только если standalone exe компоновать и внутри него уже msi.. действительно работает, но мне такой вариант не очень.


 
ketmar ©   (2008-02-07 13:56) [35]

>[33] Игорь Шевченко © (2008-02-07 13:51:00)
а надо было — «bad user».

впрочем, насчёт консоли я с тобой соглашусь. вся логика должна жить в консоли. а для консоли уже рисуй гуя хоть обрисуйся — на движок это не влияет. unix-way, да. %-)

---
Understanding is not required. Only obedience.


 
ketmar ©   (2008-02-07 13:56) [36]

>[34] Eraser © (2008-02-07 13:54:00)
не, я всё понимаю и ты пы, но почему не очень?

---
Understanding is not required. Only obedience.


 
Карелин Артем ©   (2008-02-07 14:14) [37]

Через {$IFDEF}в общем файле и {$DEFINE} в проектах


 
@!!ex ©   (2008-02-07 14:28) [38]

> Можно и его. Только если локализация содержит текст.
> А если он Unicode+ansi, +картинки+Sound.
> Что будешь городить схему и парсер  в TXT?
> Так что txt- незачет.

У меня текст, картинки и звук.

Вот выдержка из локализации реального проекта:
[Texture]
Final.jpg
Final_ru.jpg
Help1.png
Help1_ru.png
Loading.png
Loading_ru.png
logo.png
logo_ru.png
[Sound]
Complete.wav
Complete_ru.wav
Fail.wav
Fail_ru.wav
[Menu]
Shootiah: Future Air Combat
Кондор: воздушный удар
Resume Game
Продолжить
Start Game
Новая игра
Options
Опции
[Script]
Mission accomplished, major.
Миссия выполнена, майор.
Mission accomplished.
Миссия выполнена.
Great job, major, mission accomplished.
Отличная работа, майор, миссия выполнена.
Good job, major, mission accomplished.
Хорошая работа, майор, миссия выполнена.
Mission failed.
Миссия провалена.
Convoy destroyed.
Конвой уничтожен.

Удобно в первую очередь тем, что миссии создаются скриптом, соответственно для изменения/добавления строки из скрипта не нужно лезть править код.
Вопрос о том, что лучше хранить в dll - не критичен, поскольку переделывать не буду, ибо нет плюсов.
Выводы по автоматизации процесса создания ехешников я сделал, спасибо!


 
Eraser ©   (2008-02-07 14:59) [39]


> ketmar ©   (07.02.08 13:56) [36]

потому что лишних 3,5 метра к дистрибутиву добавляет.. а проект из двух дистрибутивов, вообще мрак получится.


 
ketmar ©   (2008-02-07 15:02) [40]

>[39] Eraser © (2008-02-07 14:59:00)
InnoSetup?

---
Understanding is not required. Only obedience.



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

Форум: "Прочее";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.01 c
3-1193160878
Muto
2007-10-23 21:34
2008.03.16
Документооборот в конструкторском отделе. (Access+D7)???


2-1203394543
Skyle
2008-02-19 07:15
2008.03.16
Различия VarCast varCurrency -> varSingle, varCurrency->varDouble


2-1203124705
DJ_UZer
2008-02-16 04:18
2008.03.16
Ссылка


15-1202215404
Reindeer Moss Eater
2008-02-05 15:43
2008.03.16
Миллион лицензий


2-1203439928
Рустам
2008-02-19 19:52
2008.03.16
корректное отображение в базе данных





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский