Ранее я описал проблему с добавлением неподдерживаемого языка в приложения Web Dynpro for Java и невозможность выбора казахского языка в среде NWDS (http://sakryukin.blogspot.com/2013/06/sap-as-java-adding-new-locale-in-sap-as.html).
В этой статье расскажу о добавлении языка в среду разработки NWDS. Чтобы получилось как на рисунке:
Для реализации необходимо будет разобрать один jar-файл из плагинов NWDS, который отвечает за интернализацию среды.
1. Нахожу библиотеку sap.com~tc~i18n~s2x~src~impl.jar, ее расположение будет примерно следующим: D:\eclipse\plugins\com.sap.s2x_2.0.0.120824043930\lib\sap.com~tc~i18n~s2x~src~impl.jar
2. Декомпилирую этот архив (конкретно нам нужен один файл - s2xDatatypes.xsd )
3. Создаю Java проект из полученных исходников в eclipse (NWDS, NetBeans, IntelliJ IDEA или где вам привычней работать), это условие необязательно - оно для удобства
4. Нахожу файл s2xDatatypes.xsd (com\sap\s2x\validation\schema\s2xDatatypes.xsd) и добавляю в него строки:
<xsd:enumeration value="ru">
<xsd:annotation>
<xsd:appinfo>
<s2xAPI:iniInfo group="langtype" valueInternal="ruRU" valueExternal="Russian"/>
</xsd:appinfo>
<xsd:documentation>Russian</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="kk">
<xsd:annotation>
<xsd:appinfo>
<s2xAPI:iniInfo group="langtype" valueInternal="kkKK" valueExternal="Kazakh"/>
</xsd:appinfo>
<xsd:documentation>Kazakh</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="sk">
<xsd:annotation>
<xsd:appinfo>
<s2xAPI:iniInfo group="langtype" valueInternal="skSK" valueExternal="Slovakian"/>
</xsd:appinfo>
<xsd:documentation>Slovakian</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
5. Следующим шагом необходимо сделанные изменения собрать в архив. Для этого пишу простой ant-скрипт, следующего содержания:
<project>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<copy srcdir="src" destdir="build/classes"/>
</target>
<target name="jar">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/i18n.jar" basedir="build/classes">
<manifest>
<attribute name="Author" value="Sakryukin"/>
</manifest>
</jar>
</target>
<target name="run">
<java jar="build/jar/i18n.jar" fork="true"/>
</target>
</project>
6. Заменяю исходный jar новым и перезапускаю среду
После выполненных действий в среде NWDS будет доступен казахский язык (Kazakh).
Но при сборке приложения NWDS отбросит файлы локализации kk и в итоговом архиве не удастся увидеть казахский язык. А что поделать - это SAP :)
Как побороть эту последнюю проблему - опишу в следующей статье.
В этой статье расскажу о добавлении языка в среду разработки NWDS. Чтобы получилось как на рисунке:
1. Нахожу библиотеку sap.com~tc~i18n~s2x~src~impl.jar, ее расположение будет примерно следующим: D:\eclipse\plugins\com.sap.s2x_2.0.0.120824043930\lib\sap.com~tc~i18n~s2x~src~impl.jar
2. Декомпилирую этот архив (конкретно нам нужен один файл - s2xDatatypes.xsd )
3. Создаю Java проект из полученных исходников в eclipse (NWDS, NetBeans, IntelliJ IDEA или где вам привычней работать), это условие необязательно - оно для удобства
4. Нахожу файл s2xDatatypes.xsd (com\sap\s2x\validation\schema\s2xDatatypes.xsd) и добавляю в него строки:
5. Следующим шагом необходимо сделанные изменения собрать в архив. Для этого пишу простой ant-скрипт, следующего содержания:
<project>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<copy srcdir="src" destdir="build/classes"/>
</target>
<target name="jar">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/i18n.jar" basedir="build/classes">
<manifest>
<attribute name="Author" value="Sakryukin"/>
</manifest>
</jar>
</target>
<target name="run">
<java jar="build/jar/i18n.jar" fork="true"/>
</target>
</project>
6. Заменяю исходный jar новым и перезапускаю среду
После выполненных действий в среде NWDS будет доступен казахский язык (Kazakh).
Но при сборке приложения NWDS отбросит файлы локализации kk и в итоговом архиве не удастся увидеть казахский язык. А что поделать - это SAP :)
Как побороть эту последнюю проблему - опишу в следующей статье.