Статьи

Новое предложение Как реорганизовать проект перевода NetBeans


В этой статье я опишу предложение о том, как реорганизовать новый проект перевода NetBeans, описанное здесь:

https://blogs.oracle.com/geertjan/entry/lightweight_process_for_translating_netbeans

Также я покажу, как перенести работающий проект в новый проект. состав. Новая структура проекта обеспечивает следующие функции, которые старая не поддерживает:

  1. Он доступен как проект Maven.
  2. Это делает артефакты Maven доступными для каждого языка. Поэтому разработчикам нужно только интегрировать языки, которые они хотят.
  3. Переводчикам нужно только поддерживать переводы для одного языка в одном проекте для каждого языка и не нужно поддерживать перевод в рамках платформы и ide-проекта.

Предложение

Цель этой новой структуры — предоставить артефакт maven, который можно легко включить в приложение на основе maven paltform в виде зависимости maven, например:

<dependency>
	<groupId>com.levigo.netbeans.translations</groupId>
	<artifactId>LocalizedResource_de</artifactId>
	<version>1.0-SNAPSHOT</version>
</dependency>

Для разработки у нас был бы родительский проект под названием «LocalizedResources-parent» и проект приложения под названием «LocalizedResources-app» для поиска непереведенного текста и для проверки переводов. Для каждого языка у нас будет простой модуль, имя которого состоит из «LocalizedResources-» и языка, то есть «LocalizedResources_de». Этот проект содержит только переводы для языка, указанного в конце названия проекта.

В этом проекте папка «nbm-брендинг» является папкой ресурсов, содержащей все переводы так же, как модуль брендинга хранит свои переводы брендинга. Единственное отличие состоит в том, что переводы хранятся не как ресурс для конкретного языка, а как ресурсы по умолчанию. Таким образом, можно заставить nbm-maven-plugin создавать локализованные файлы JAR с локализованными пакетами. Единственное, что нужно сделать для достижения этой цели, — установить маркер бренда для идентификатора языка (например, de) вместо токена брендинга по умолчанию в конфигурации nbm-maven-plugin. Следующий пример скопирован из файла pom.xml для модуля «LocalizedResources_de»:

<plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>nbm-maven-plugin</artifactId>
	<extensions>true</extensions>
	<configuration>
		<cluster>platform</cluster>
		<brandingToken>de</brandingToken>
	</configuration>    
</plugin>

Ресурсы можно поддерживать, вызывая инструмент брендинга, запускаемый нажатием правой кнопки мыши на проекте с использованием вкладки «Связки ресурсов» (а не «Связки ресурсов интернационализации»), как вы можете видеть на следующем снимке экрана:

В приложении к этой статье   вы найдете структуру проекта, содержащую проект перевода на немецкий язык.

Как перенести уже запущенный проект перевода

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

  1. Создайте новый модуль, щелкнув правой кнопкой мыши на папке модулей «LocalizedResources-parent» и левой кнопкой мыши на «Создать новый модуль …».

  2. Выберите категорию Maven и тип проекта «Модуль NetBeans» и нажмите «Далее».

  3. Измените имя проекта на LocalizedResources_pl.

  4. Нажмите «Далее» и затем закончите.

  5. Откройте файл pom.xml и расширьте конфигурацию nbm-maven-plugin, добавив элементы брендинга и кластера, чтобы конфигурация плагина выглядела следующим образом:

    <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>nbm-maven-plugin</artifactId>
         <extensions>true</extensions>
         <configuration>
           <cluster>platform</cluster>
           <brandingToken>pl</brandingToken> 
         </configuration>
    </plugin>
  6.  Теперь перейдите в режим просмотра файлов и добавьте папку «nbm-branding» в «src / main».

  7. Скопируйте папку «modules», найденную в папке брендинга LocalizedNetBeans, в папку, созданную на предыдущем шаге.

  8. Удалите все файлы комплекта, которые не имеют отношения к польскому переводу. Например, в Windows откройте папку модулей и найдите * .properties в новой папке, отметьте все файлы, которые не заканчиваются на «_pl», и удалите их.

  9. Теперь откройте архивы, найденные в старой папке проекта pl «release \ modules \ locale \», и скопируйте папку верхнего пакета jar, заканчивающуюся _pl, в папки, найденные в папке модулей. Например, если у вас есть jar-архив org-netbeans-core-execute_pl.jar, вы должны скопировать / объединить содержащуюся папку org в папку org-netbeans-core-execute.jar в новом проекте. Смотрите скриншот: если вас спросят, нужно ли объединить содержимое, ответьте «да». Если вас спросят, что делать с файлами свойств с тем же именем (должно быть только Bundle_de.properties), выберите для копирования его под другим именем (Windows 7 создаст «Bundle_pl (2) .properties»).

  10. Для всех jar-файлов, у которых нет соответствующей папки jar, создайте папку и скопируйте пакет верхнего уровня.

  11. Теперь определите все «Bundle_pl (2) .properties» и объедините содержимое вручную с «Bundle_pl.properties» в той же папке. Обычно вам просто нужно добавить свойства из меньшего файла в больший файл. Удалите «Bunde_pl (2) .properties».

  12. Найдите все файлы «Bundle_pl.properties» и переименуйте их в «Bundle.properties».

  13. Добавьте зависимость к проекту LocalizedResource_pl в LocalizedResources-app, очистите проект LocalizedResources-parent и постройте с зависимостями. Запустив приложение на польском языке, вы увидите переводы из старого проекта перевода.

  14. Если вы хотите изменить некоторые переводы, щелкните правой кнопкой мыши по проекту LocalizedResources_pl и выберите «брендинг». Теперь вам нужно поработать над метками на вкладке «Пакеты ресурсов» (а не «Пакеты ресурсов интернационализации», как раньше).