Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
898
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
951
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
941
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1725
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4398
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как я могу рефакторинг HTML markup из моих файлов свойств?
Недавно я унаследовал интернационализированное и тяжелое для текста веб-приложение Struts 1.1. Многие из файлов JSP выглядят так:
<p>
<bean:message key="alert" />
</p>
и файлы свойств выглядят так:
messages.properties
alert=Please update your <a href="/address.do">address</a> and <a href="/contact.do">contact information</a>.
с соответствующими переводами на N других языках (messages_fr.properties и др.).
Проблемы:
- DRY нарушение -у меня есть N ссылок на мое Struts действие URLs вместо 1, что делает рефакторинг действия URLs подверженным ошибкам.
- Смешанные проблемы -мое приложение markup теперь находится не только в моих файлах JSP, что затрудняет веб-специалисту настройку markup (используя CSS и т. д.).
- Post-translation markup -всякий раз, когда я получаю недавно переведенный текст, я должен решить, что окружить
<a>...</a>markup. Легко для английского языка, но менее так для незнакомых языков.
Я рассмотрел возможность добавления заполнителей в файл сообщений, например:
alert=Please update your {0} and {1}.
но тогда слова "address" и "contact information" каким - то образом должны быть локализованы, обернуты markup и переданы в мой тег сообщения-и я не вижу простого способа сделать это.
Что я могу сделать, чтобы улучшить это?
Избегайте создания ссылок в течение длительного времени
блок текста. Предпочитаю более короткий текст
что может выступать в качестве логически завершенного
и независимая связь.
Избегайте создания ссылок в течение длительного времени блок текста. Предпочитаю более короткий текст что может выступать в качестве логически завершенного и независимая связь.
Как правило, это приведет к меньшему количеству проблем. Иногда вам приходится идти на компромисс с вашим дизайном UI, чтобы приспособиться к локализации; иногда вам нужно идти на компромисс с вашим процессом локализации, чтобы приспособиться к UI.
Каждый раз, когда разработчик вручную манипулирует строками после перевода, это источник потенциально дорогостоящих ошибок. Вырезание / вставка или редактирование строк может привести к повреждению символов, неуместным строкам и т. д. Дефект перевода требует участия внешних сторон для исправления, что требует затрат и времени.
Думая об этом, что-то вроде этого может быть менее уродливым:
<p>Please update your address and contact information.
<br />
<a href="/address.do">update address</a>
<br />
<a href="/contact.do">update contact information</a></p>
...но я не дизайнер UI.
Один подход, который приходит на ум, заключается в том, что вы можете хранить переведенные параметры замены, т. е. "address" и "contact information", в отдельном файле свойств, по одному на locale. Затем пусть ваш класс действий (или, возможно, какой-то вспомогательный класс) отыщет значения из правильного ResourceBundle для текущего locale и передаст их тегу сообщения.
Сообщение тег сообщения API позволяет
только 5 параметрических аргументов
Сообщение тег сообщения API позволяет только 5 параметрических аргументов
Ай! Я виню в этом свое полное незнание Struts API.
Цитирую из инструкции :
Некоторые функции этой библиотеки тегов также доступны в JavaServer Стандартная Библиотека Тегов Pages (JSTL). То Struts команда поощряет использование стандартные теги над Struts специфическими метки, когда это возможно.
Вероятно, вы могли бы сделать это с помощью http://java.sun.com/jsp/jstl/fmt taglib.
<fmt:bundle basename="messages">
<fmt:message key="alert">
<fmt:param value='<a href="/">' />
<fmt:param value="</a>" />
<fmt:param value='<a href="/">' />
<fmt:param value="</a>" />
</fmt:message>
</fmt:bundle>
Недостатком является то, что это не является допустимым XML и перенос значений в переменные включает в себя больше косвенности, поисков и многословия. Это не очень хорошее решение.
Я не знаю Struts, но если это что-то вроде JavaServer Faces (тот же архитектор), то, вероятно, есть поддержка для настройки заменяющего элемента управления. Я бы либо заменил существующий контроль на более гибкий, либо добавил новый.
В любое время, когда я получаю новый перевод текст, я должен решить, что окружать с помощью
<a>...</a>markup.
Вы не должны этого делать, и я вижу в этом ошибку в вашем процессе перевода (я бывший инженер по локализации и бывший разработчик инструментов локализации). Символы {0} должны быть включены в файлы, отправляемые переводчикам. Руководство по локализации должно объяснить контекст строки и значение любых переменных.
Вы можете программно проверить пакеты свойств при возврате. Специфичные для строки regex могут сделать этот трюк. Это не выходит за рамки возможного, что "address" и "contact information" поменялись бы местами во время перевода.
Самое простое решение-перепроектировать сообщения для визуализации:
<a href="/address.do">Please update your address.</a>
<a href="/contact.do">Please update your contact information.</a>
Я допускаю, что это не может быть решением во всех случаях и может привести к тому, что ваш дизайнер UI будет плеваться зубами.