powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / переводимый текст + программная переменная
11 сообщений из 11, страница 1 из 1
переводимый текст + программная переменная
    #37745210
ViktorWM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотелось бы выводить на экран (на контол, скажем лейбл) переведенный на разные языки текст с помощью:
автор"#{messages['my_error_text']}" + lMyVariableCounter
но это почему то не работает. Т.е стринг текущего языка не подхватывается из bundle. Почему и как это обойти??
...
Рейтинг: 0 / 0
переводимый текст + программная переменная
    #37745217
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Взять в руки дебаггер, почитать лог и посмотреть почему не находит.
...
Рейтинг: 0 / 0
переводимый текст + программная переменная
    #37745526
ViktorWM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во всех местах где стоит "#{messages['my_error_text']}" всё находится. А везде где есть прибавление субстринга - нет.
Так что не понимаю, как тут может дебаггер чем то помочь??
...
Рейтинг: 0 / 0
переводимый текст + программная переменная
    #37745541
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите более полный кусок. Не очень понятно почему + variable за кавыками.
Почему вы вышили что именно "стринг текущего языка не подхватывается из bundle" ? Может просто рендеринг падает где-то?
...
Рейтинг: 0 / 0
переводимый текст + программная переменная
    #37745542
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это JSF, да?
...
Рейтинг: 0 / 0
переводимый текст + программная переменная
    #37745549
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо конкатенации лучше использовать что-нибудь типа outputFormat
...
Рейтинг: 0 / 0
переводимый текст + программная переменная
    #37745586
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное как-то так надо

Код: sql
1.
"#{messages['my_error_text']} #{lMyVariableCounter}"



или так

Код: sql
1.
"#{messages['my_error_text']} ${lMyVariableCounter}"
...
Рейтинг: 0 / 0
переводимый текст + программная переменная
    #37745614
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я думаю вот так
Код: html
1.
"#{messages['my_error_text' + lMyVariableCounter]}"
...
Рейтинг: 0 / 0
переводимый текст + программная переменная
    #37745765
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ника я думаю вот так
Код: html
1.
"#{messages['my_error_text' + lMyVariableCounter]}"



Код: html
1.
"#{messages['my_error_text']  + lMyVariableCounter}"



Какие ещё будут версии?
...
Рейтинг: 0 / 0
переводимый текст + программная переменная
    #37745777
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczзабыл ника я думаю вот так
Код: html
1.
"#{messages['my_error_text' + lMyVariableCounter]}"



Код: html
1.
"#{messages['my_error_text']  + lMyVariableCounter}"



Какие ещё будут версии?

Ну смотрите messages - это preconfigured объект в JSF, он достает из бандла строку по ключу #{messages['key']}

Так вот, я конечно не уверен, но предполагаю что ТС нужно делать что-то вроде этого - достать строку по ключу key1, key2 ...
А выражения в JSF вычисляются следующим образом - только то, что внутри #{} - то есть вынос за пределы решетки чреват. Если сделать как предлагаете вы -
Код: html
1.
#{messages['my_error_text']  + lMyVariableCounter}

то сначала будет попытка достать строку по ключу 'my_error_text' а потом, уже к этой строке конкатенируется переменная, что я думаю не совсем правильно. Поэтому нужно сконкатенировать ключ, то есть все то, что между [], поэтому вариант "#{messages['my_error_text' + lMyVariableCounter]}" является единственно возможным.
Но опять же не факт что это JSF и то, что я правильно понимаю ТС :)
...
Рейтинг: 0 / 0
переводимый текст + программная переменная
    #37746022
ViktorWM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дико извиняюсь что невольно ввёл всех в заблуждение. Оказывается дело было вовсе не в плюсе (т.е не в конкатенации) и
"#{messages" работали только на "формах" (т.е. в xhtml-файлах!). А в java классах не работали вообще!

всё что мне было нужно это:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public String translateThisString( String aKey ) {
      String lValue;
      lValue = "?translateThisString? = " + aKey;
      try {
        lValue = lBundle.getString( aKey );
      } catch (MissingResourceException e) {                         
      }
      lValue = lValue != null ? lValue : aKey;
      return lValue;
    }          




ну и конкатенить её запросто можно: myResult = translateThisString('MyKey1112233') + "someString";

Ну и главное: cреда эта не JSF а SEAM!
(в этом во всём я ещё пока довольно таки махровый ламер) :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / переводимый текст + программная переменная
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]