| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Програма с мултиезиков интерфейс. http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=5323 |
Страница 1 от 1 |
| Автор: | Nikola Kirov [ Пон Яну 14, 2008 8:20 pm ] |
| Заглавие: | Програма с мултиезиков интерфейс. |
Как се реализира такова нещо най добре. Имам една програма която съм я правил с интерфейс на англииски искам да я преработя да може да се превключва и на български. Гледам по готови софтуери че е направено много елегантно от менюто да си превключваш езика и ми се иска да го направя така. Имам идеи как да стане но ми се иска да знам как се прави по принцип. Някой може ли да ме светне по въпроса или някакво линкче към примерен проект за VC++ където да видя как става |
|
| Автор: | forest_gump [ Пон Яну 14, 2008 11:17 pm ] | |||||||||
| Заглавие: | ||||||||||
мога да ти кажа как съм си решавал подобен проблем, на всеки ресурс който има някакъв текст на който трябва да се смени езика , използвам променлива за текста "Label" както в повечето случаи, правя едно текстово файлче за съответният език в което за всяка текстова променлива отговаря отделен идентификационен ключ срещу който се записва текста на променливата пример:
много е досадно , трябва навсякъде където има текст да се направи по този начин. При стартиране програмата проверява кой език е зададен и дали има съответен запис във файла за него, ако има опреснява имената на ресурсите, ако няма запис за зададеният език зарежда по подразбиране имена на ресурсите с които е компилирана програмата. Имах следните проблеми; на всеки Label има променлива която указва типа на шрифта и по някога ако зададеният шрифт липсва в ОС-а кирилицата не се виждаше, за да се избегне това мисля че програмата трябва да си зарежда собствен шрифт който си носи със екзето, но това как става незнам... |
||||||||||
| Автор: | zaphod [ Пон Яну 14, 2008 11:23 pm ] |
| Заглавие: | |
със задаване на отделен ресурс за всеки език и (евентуално) превключване със SetThreadLocale. имай предвид обаче че под 98 виндовса е недоизпипан и локализирането май за да бачка трябва да е генерално включено, че дори и тогава не знам дали ставаше като хората, иначе под ХР няма проблеми. ако не ползваш SetThreadLocale, то ще се ползва зададеното в локалните настройки на виндовса. ако се опиташ да включиш на език който го няма в ресурсите, зарежда се език който се смята че в страната се говори от най-много хора. имай предвид че и по отношение на локализацията някой БАНаджия си е оставил ръцете за българия - ако програмата няма български език, но има френски и английски, ще тръгне на френски вместо на английски, понеже някой кавал е докладвал на микрософтци че сме франкофони. |
|
| Автор: | Nikola Kirov [ Пон Яну 14, 2008 11:23 pm ] |
| Заглавие: | |
Това с текстовите файлове и на мен ми хрумна но нещо не ми се вижда много удобно за работа. Че затова и питам как се прави по принцип. Сигурно има и по удачен вариант. А това с отделния ресурс нищо не ми говори Ще се поровя в MSDN-a дано ми светне нещо. Но по мои наблюдения от MSDN-a има полза ако знаеш какво точно търсиш |
|
| Автор: | ps66 [ Вто Яну 15, 2008 11:45 am ] |
| Заглавие: | |
за да реализираш подобно нещо - първо се убеди че всичките контроли които ползваш са unicode - това е единственния сигурен начин че ще работи надежно (за Win9x ти трябва да линкваш UNICOWS.lib/dll) а самата реализация - е проста: сканираш всички контроли (child) и техните починени (ако има) - според класа и/или текста на контрола им подменяш текста за да е он-лайн смяната - трябва да преведеш всички сктивни прозорци. аз в моите приложения - имам текстов файл (unicode, и е в exe-to като ресурс за да е скрито от юзерите) който си го парсвам при стартиране на приложението ... така ми е по удобно при добяване/промяна на форма ... |
|
| Автор: | ДедоБоре [ Вто Яну 15, 2008 1:03 pm ] |
| Заглавие: | |
не съм голям експерт по прозорци... нямате ли си там i18n? |
|
| Автор: | Nikola Kirov [ Вто Яну 15, 2008 3:46 pm ] |
| Заглавие: | |
Светна ми принципа. Още не мога да се ориентирам как да организирам ресурс който се зарежда динамично. Винаги съм ползвал твърдо заредени ресурси който от resource view си инсертвам с Add Resource |
|
| Автор: | TheWizard [ Вто Яну 15, 2008 4:42 pm ] |
| Заглавие: | |
http://support.microsoft.com/kb/198846 http://www.codejock.com/support/article ... tilang.asp GOOGLE -> DLL resource language MFC |
|
| Автор: | Nikola Kirov [ Вто Яну 15, 2008 4:45 pm ] |
| Заглавие: | |
Сега вече не само ми светна ами чак ме огря Мерси много |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|