|
|
|
Swing_ru и интернационализация
|
|||
|---|---|---|---|
|
#18+
Для руссификации диалогов приложения использовал файл Swing_ru.jar. Теперь встал вопрос об интернационализации приложения, т.е. работа поочередно на нескольких языках без перекомпилляции приложения. Устанавливаю локаль в en, но диалог FileChooser все равно показывает русские названия. Стал копать исхоодники в JDK и обнаружил, что там теперь нет файлов *.properties, но есть файлы *.java. Вопрос: нужно ли переделать Swing_ru.jar, записав туда новые классы для *_ru.class или как-то можно использовать старый файл для интернационализации приложений с файлами _ru.properties? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 17:24:56 |
|
||
|
Swing_ru и интернационализация
|
|||
|---|---|---|---|
|
#18+
Тоже сталкивался с этим - решил "в лоб" - перестал использовать стандартные диаложки, написал свои... Только вот с FileChooser'ом проблема - самому лень писать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 16:46:51 |
|
||
|
Swing_ru и интернационализация
|
|||
|---|---|---|---|
|
#18+
В общем заменил все файлы *_ru.properies на сооответствующие *_ru.class. Для motif и windows английские исходники взял в src.zip. Перевел, пропустил через native2ascii. Для остальных исходников не оказалось. Пришлось дезассемблировать из rt.jar. Потом подобным же путем. В итоге все равно ничего не получилось. Только диалог принтера "слушает" локаль и соответственно изменяет язык. Диалоги выбора файла и цвета остаються русскими, независимо от локали. Кто знает, куда дальше копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 17:12:12 |
|
||
|
Swing_ru и интернационализация
|
|||
|---|---|---|---|
|
#18+
Продолжил эксперименты, заменил язык и настройках операционной ситемы. После перезагрузки диалоги выбора файлов и цвета тоже стали выводиться на английском языке. Таким образом эти диалоги "смотрят" на язык операционной системы, в отличие от диалога вывода на печать, который срабатывает просто от изменения локали в самой программе. Вот такое неоднозначное поведение диалогов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2006, 13:13:41 |
|
||
|
Swing_ru и интернационализация
|
|||
|---|---|---|---|
|
#18+
Вот к чему пришел я, пользуясь полейнейшим методом научного тыка и копания в исходниках. Этот метод нужно вызывать при изменении локали. Здесь диалоги не полностью настраиваются, но идея думаю ясна. Констант для первого параметра я так и не нашел :( getConfigLocaleString - метод, который возвращает локализованную строку по ключу public static void prepareStandartDialogButtonText() { UIManager.put("OptionPane.cancelButtonText", getConfigLocaleString("Cancel")); UIManager.put("OptionPane.yesButtonText", getConfigLocaleString("Yes")); UIManager.put("OptionPane.noButtonText", getConfigLocaleString("No")); UIManager.put("FileChooser.cancelButtonText", getConfigLocaleString("Cancel")); UIManager.put("FileChooser.directoryOpenButtonText", getConfigLocaleString("Open")); UIManager.put("FileChooser.updateButtonText", getConfigLocaleString("Update")); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2007, 16:01:20 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34212957&tid=2146914]: |
0ms |
get settings: |
16ms |
get forum list: |
22ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
51ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
80ms |
get tp. blocked users: |
3ms |
| others: | 358ms |
| total: | 560ms |

| 0 / 0 |
