пятница, 7 июня 2013 г.

Добавление новой локали в приложения SAP AS Java на примере казахского языка \ Adding a new locale in SAP AS Java applications on the example of the Kazakh language


Несколько статей будет посвящено расширению функционала SAP, связанного с интернализацией (i18n) приложений  SAP AS Java, а именно применению недокументированных возможностей. Платформа, которая будет рассматриваться - 7.3(1). С небольшими изменениями приемлемо и для 7.0*

Проблема выявилась, когда возникла необходимость переводить приложения, разработанные для платформы CE (BPM, Web Dynpro), на казахский язык. SAP официально не поддерживает казахскую локаль, поэтому пришлось воспользоваться нетрадиционным программированием.

Конечно же была открыта заявка в SAP Support, так как при использовании описанного способа, могут быть проблемы с техподдержкой. Но навряд ли возникнут проблемы с обновлениями системы, не были затронуты библиотеки времени выполнения, а только времени проектирования и сборки.


Первое, что необходимо сделать - это создать дополнительную локаль на сервере приложений. С этим проблем не должно возникнуть, единственное - это как всегда, нужно почитать notes (1789373и сделать все по инструкции:

1. Configuring the List of Available Languages 

http://help.sap.com/saphelp_nw73/helpdata/en/45/fff338e19134dde10000000a1553f7/frameset.htm

2. Editing UME Properties

http://help.sap.com/saphelp_nw73/helpdata/en/4a/864d94a016203be10000000a42189b/content.htm

3. Defining Language Support in the Locale Service

http://help.sap.com/saphelp_nw73/helpdata/en/49/2269119bbf14d0e10000000a42189b/content.htm?frameset=/en/49/d822a779cf0e80e10000000a42189b/frameset.htm

Создание дополнительной локали на сервере, говорит о том, что если пользователь войдет с ее использованием, то подтянутся тексты соответствующие этой локали, которые были сделаны при реализации приложения или с использованием translation list (я пишу только о текстах).

Следующий шаг - разработка самого приложения в NWDS на примере WebDynpro. Здесь уже начинаются сюрпризы.
Стандартный способ локализации приложений WD - это работа с файлами xlf:
1. Выбрать необходимый ресурс сделать его копию с суффиксом *_kk.xlf
2. Открыть на редактирование, выбрать в списке Source Language нужный язык и переводить тексты.

НО в списке доступных нет Kazakh, если выбрать Russian и ввести казахские слова - выдаст ошибку проверки кодовой страницы. Если руками подправить файлы, то все равно при билдинге приложения он соберет только доступные языки, а локаль kk пропустит. 

Здесь начинается "нетрадиционное" программирование, а именно реверс инжиниринг. состоять он будет из двух частей, так как у меня 2 проблемы:
1. Доработка Design Time, добавление казахской локали в список доступных NWDS
2. Доработка механизма сборки приложений, а именно формирование properties файлов нужной локали в ear (работа с  SC SAP_BUILD).

Продолжение в следующих статьях...

Комментариев нет:

Отправить комментарий