Java Locale Шрифт вопрос ..? - PullRequest
3 голосов
/ 22 мая 2009

[EDIT] это произошло на OSX с Java 1.5! (но может случиться и в Windows!)

Кажется, японские пользователи моей программы на Java Swing не могут писать японские символы в JTextFields. На самом деле они могут написать их, но не видят их. Они видят только блоки, которые как-то указывают на то, что я думаю, что шрифт не поддерживает эти символы.

Я установил свой собственный шрифт по разным причинам («Lucida Sans», Font.PLAIN, 12) - который я не хотел бы менять. Мои вопросы:

  1. будет ли JTextFields показывать японские символы без меня, установив этот шрифт?

  2. Могу ли я определить, какие локали полностью поддерживаются моим шрифтом, и установить его только в этих случаях, но оставить стандартный шрифт Java для всех других случаев, таких как Locale.Japan?

  3. есть ли у вас другие предложения?

Спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 22 мая 2009

будет ли JTextFields показывать японские символы без меня, установив этот шрифт?

Скорее всего, поскольку JRE выберет значение по умолчанию.

Могу ли я определить, какие локали полностью поддерживаются моим шрифтом, и установить его только в этих случаях, но оставить стандартный шрифт Java для всех других случаев, например Locale.Japan?

Да, теоретически, хотя было бы проще проверить, может ли этот шрифт отображать специфический для локали символ, используя метод canDisplay (char) в Font. Если это не так, вы можете переключиться на значение по умолчанию.

У вас есть другие предложения?

Вот ссылка на эту тему, которая может помочь

У вас есть ссылка на ваш продукт?

2 голосов
/ 22 мая 2009

По этой причине мое интернационализированное приложение устанавливает свой шрифт в зависимости от локали. Чтобы ответить на ваши вопросы:

  1. Это, вероятно, зависит от того, какая версия Windows используется. Это версия для США с установленными японскими шрифтами или эта версия продается в Японии? Я не знаю точного ответа на ваш вопрос, но я ожидаю, что ответ: «Это зависит».

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

  3. Другие предложения: Установите шрифт в зависимости от локали, по крайней мере, для выбранных локалей.

...