|
|
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
Поздно, из меня уже попёрло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2012, 22:48 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
КвейдX11Там можно как-то сделать и динамическое переключение, используя библиотеки ресурсов, но я пока не понял как, а в справке очень слабо описано. Если кто подскажет - буду рад. Смотри ...\Samples\Delphi\VCL\RichEdit\reinit.pas, там готовый код для runtime-переключения языков приложения. + Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. А как бы мне это правильно организовать при начальной загрузке Приложения? Я так полагаю, что нужно где-то хранить выбранный язык и при старте программы подгружать библиотеки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 11:32 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
Демка RichEdit использует ITE. В ITE язык берётся из настроек системы (язык UI). Опционально можно задать override на программу. Делается это записью в реестр (подробнее написано в справке). Соответственно, чтобы сделать смену языка (с ITE), нужно записать строчку в реестр и перезапустить программу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 13:01 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
GunSmokerСоответственно, чтобы сделать смену языка (с ITE), нужно записать строчку в реестр и перезапустить программу.Эээ... Перезапускать-то зачем? Перелопатить все открытые формы с новой DLL (или что там...) как, напр. в FAR, TC и т.п. С другой стороны, "Новые настройки вступят в силу при следующем запуске программы", конечно проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 13:16 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
X11Квейдпропущено... Смотри ...\Samples\Delphi\VCL\RichEdit\reinit.pas, там готовый код для runtime-переключения языков приложения. ++ Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. А как бы мне это правильно организовать при начальной загрузке Приложения? Я так полагаю, что нужно где-то хранить выбранный язык и при старте программы подгружать библиотекиХрани в реестре LCID выбранного языка своей программы и при старте программы вызывай Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 13:26 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
А в качестве LCID я должен передать код языка, константу, которая находится в модуле windows? Например, LANG_UKRAINIAN, или LANG_RUSSIAN? Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 13:33 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
X11А в качестве LCID я должен передать код языка, константу, которая находится в модуле windows? Например, LANG_UKRAINIAN, или LANG_RUSSIAN? Ага ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 14:09 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
А можно туда передать не константу, а цифровой код языка: 1049, 1054? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 14:29 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
Просто GetThreadLocale возвращает именно 1049 или 1058 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 14:45 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
У МЕНЯ ПОЛУЧИЛОСЬ!!!!!!!! O_o ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 14:52 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
Обнаружил небольшую проблему в локализованной версии. Если в коде идет ссылка, например, на чекбокс, но в локализованной версии нет упоминания этого чек бокса, то вываливается AV. И как с этим бороться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 15:21 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
Вот, например, у меня есть некая проверка в коде: Код: pascal 1. на этой строке вываливается AV ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 15:22 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
GatorGunSmokerСоответственно, чтобы сделать смену языка (с ITE), нужно записать строчку в реестр и перезапустить программу.Эээ... Перезапускать-то зачем? Перелопатить все открытые формы с новой DLL (или что там...) как, напр. в FAR, TC и т.п. С другой стороны, "Новые настройки вступят в силу при следующем запуске программы", конечно проще Не забудь, что кроме форм, еще есть и датамодули, то есть все это тоже надо перезапускать, проще попросить перезагрузить программу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 15:48 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
X11Обнаружил небольшую проблему в локализованной версии. Если в коде идет ссылка, например, на чекбокс, но в локализованной версии нет упоминания этого чек бокса, то вываливается AV. И как с этим бороться?А каким образом этот чек-бокс НЕ попал в локализацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 16:41 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
Не не успел я пользователю отправить новый файл с локализацией. Мало того, даже у самого разработчика может возникнуть эта проблема, ведь вначале разрабатывается приложение, а потом оно локализуется. Я на форму кинул кнопку, работаю с ней, но ещё не успел локализовать. Я же не буду всё время локализовать программу, а только перед выпуском. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 17:16 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
X11Не не успел я пользователю отправить новый файл с локализацией. Мало того, даже у самого разработчика может возникнуть эта проблема, ведь вначале разрабатывается приложение, а потом оно локализуется. Я на форму кинул кнопку, работаю с ней, но ещё не успел локализовать. Я же не буду всё время локализовать программу, а только перед выпуском.Ну, напримердва варианта: 1. Дать средства правки локал-ресурсных строк 2. Считайте, что релиз не готов, пока не будут готовы все ресурсные файлы (вряд ли у вас их больше трёх). А к ночным сборкам какие претензии? :) 3. Искуственно разделить релизы по языкам. Т.е. "Новая версия. Поддерживаются ... языки" Остальные добавляются по мере перевода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 17:29 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
X11Не не успел я пользователю отправить новый файл с локализацией. Когда делается сборка проекта, то ведь ничто не мешает и DLL локализации пересобрать? Вот и пересобираем. И пользователю отдаём. Конечно, там может не быть новых строк, но их добавляем позднее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 17:35 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
Было бы замечательно если бы AV не выскакивало. Пусть будет нелокализованным тот чекбокс, но AV зачем :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 17:57 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
X11Было бы замечательно если бы AV не выскакивало. Пусть будет нелокализованным тот чекбокс, но AV зачем :( Ну, потому что метод такой. При ресурсных DLL в языковых файлах лежит DFM. Соответственно, если в DFM языковой DLL chboxCalcMedByPhones не описан - на форме его просто не будет (кто и как его создаст?). Откуда следует, что ты получишь AV при обращении к chboxCalcMedByPhones, потому что он - nil. Плюсы ресурсных DLL: можно менять не только строки, но и ворочать формой. Родной формат, нет обвеса. Минусы ресурсных DLL: нет возможности смешивать ресурсы. Сложности редактирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 19:47 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
P.S. Именно поэтому ресурсную локализацию применяют в основном в крупно-средних проектах, где локализация распространяется централизовано и нет проблем её пересобрать. Мелкие программы предпочитают прикладываеть "словари" в виде текстовых форматов - с прицелом на перевод за счёт энтузиастов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 21:15 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
По правде говоря, меня такое обстоятельство дел не устраивает. Слишком муторно и много кода писать нужно. Должен быть способ попроще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 22:48 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
Локализатор #Слишком муторно и много кода писать нужно. Должен быть способ попроще. Это про что речь? С ресурсными DLL код не надо писать. В чём, собственно, их плюс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 08:45 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
Хочу предоставить на ваш суд свою версию статьи "Как я локализовал свое приложение на Delphi". Прошу её не распространять. http://rghost.ru/private/36060353/67cefcfc90e38d0a897bdbf7ac6692f9 пароль на скачивание: sql.ru ссылка доступна в течение 30 дней Чего не хватает, что нужно добавить? Как с оформлением? Ну и вообще :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2012, 14:36 |
|
||
|
2 GunSmoker по поводу ITM
|
|||
|---|---|---|---|
|
#18+
X11Хочу предоставить на вам суд свою версию статьи "Как я локализовал свой приложений на Delphi" Прошу её не распространять. http://rghost.ru/private/36060353/67cefcfc90e38d0a897bdbf7ac6692f9 пароль на скачивание: sql.ru ссылка доступна в течение 30 дней Чего не хватает, что нужно добавить? Как с оформлением? Ну и вообще :) Дай вместо PDF-а вордовский документ, я поправлю несколько ошибок, можно на мыло quaid(a)ukr.net. Статья понравилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2012, 15:14 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=37620093&tid=2037513]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 515ms |

| 0 / 0 |
