WYLEKАвтор темы

26 марта 2014, 18:42:00 Последнее редактирование: 03 апреля 2021, 20:31:22 от WYLEK
Локализация джава - перевод файлов с расширением .properties и .class в Radialix




Инструменты для этого действия-злодействия...


Radialix - шаблонный редактор

PSPad - текстовый редактор

TotalCommander - командир какой то

In Class Translator - локализатор файлов .class

MobiTrans - те же грабли...

Кролик - Войдите на сайт для перехода по ссылке



Идея написать руководство была еще год назад, когда поступил заказ перевести программу для игр в карты Poker Office, но заказчик испарился, а карты мне пофиг, то проект был сверну и забыт. Но вот подогнали программу JaBack.10, а там такие же ресурсы, да и файлы с .properties на 3000 строк, и файлы с .class на 2500 строк, то переводить одни в блокноте а другие в In Class Translator желания ни какого у меня не наблюдалось. Да и локализовать это чудо с такими инструментами затруднительно. Если в программе Poker Office один файл .class со всеми ресурсами, то в JaBack.10 их штук 200. Но, метод у меня уже был, два вечера потратил на проект для Radialix, и теперь можно локализовать эти классы, и есть возможность поддерживать обновление программы.

1. Перевод файлов с расширением .properties

Конечно, для этого расширения существует хороший инструмент attesoro v1.8, который делает на выходе правильную кодировку.

Показать / Скрыть текст
[свернуть]

Но он хороший до тех пор, пока размер ресурса строк на 20. А если 3000 строк? То при локализации запутаешься что и где. Тут начинаешь чесать бестолковку :ohno: и искать другие пути решения проблемы. При рассмотрении структуры файла первое что бросается в глаза, что это не что иное, как расширение .ini. Тут уже легче - можно в блокноте перевести, но как вспомнишь про локализацию, то этот метод сразу отодвигается на второй план. Почему енто так?? Например: вам не понравился перевод строки, а вражий текст уже исчез, и надо искать его в исходном файле. Бред какой то. Для этого лучше всего подключить всю мощь Radialix. Тут уж в своей тарелке, и работать одно удовольствие.

Что надо сделать для проекта в Radialix. Создаем папку енг и кидаем туда файл с расширением .properties

Показать / Скрыть текст
[свернуть]

Заходим в папку енг и изменяем расширение файла с .properties на .ini

Показать / Скрыть текст
[свернуть]

Делаем проект в Radialix на файл с расширением .ini. В свойствах проекта на вкладке Локализованные файлы уберите гальку и направьте путь создаваемого файла на файл с расширением .properties. То есть надо сразу создавать файл для джавы а не текстовый файл с последующим изменением расширения.

Показать / Скрыть текст
[свернуть]

После перевода есть одна проблема - кодировка. Но, в текстовом редакторе PSPad есть конвертер для нужной нам кодировки.

Показать / Скрыть текст
[свернуть]


Итак, все есть и настроено, теперь шаги работы.


1. Делаем перевод строк.

2. Создаем локализованный файл.

3. Запускаем PSPad и выбираем локализованный файл с расширением .properties

4. Выбираем опцию Конвертеры пользователя и преобразуем в нужную кодировку ресурсы. Сохраняем изменения.

5. Файл готов для использования в джава



Я думаю, что проблем не возникнет для локализации этого расширения. Идем дальше...

2. Перевод файлов с расширением .class


Продолжаем ...

Кролик - Войдите на сайт для перехода по ссылке, в архиве файл проекта Radialix и распакованная программа с готовыми файлами для перевода


Итак добираемся до расширения .class

Это бинарный файл и открыть его в Radialix не получится. Когда в программе Poker Office я открыл файл с расширением .class для перевода в In Class Translator, и увидел сколько там строк, то кроме стишка << Стою на асфальте я в лыжи обутый....>> ничего на ум не пришло. Начал рыть инет на локализаторы классов. Нашел еще три штуки кроме In Class Translator, но все программы работали с построчным переводом и дебильные какие то. Ну, начал было делать перевод, а термины то незнакомые, локализация так и просится. Не то. Начал изучать программы для этих классов - что создают, как создают и какие расширения файлов. Свет в конце тоннеля заблымал. Выбрал две программы одного автора.


1. In Class Translator - по отзывам в нете , это самый надежный инструмент. Поддерживает эдакую память переводов при создании русского текста. Это для нас плюс.

2. MobiTrans - создает локализованный файл (это нам ни к чему), русские строки (это то, что надо) и английские строки.

Просмотрев кишки выходных файлов я решил, что In Class Translator вместе со своей памятью переводов будет основным инструментом, а MobiTrans создаст исходный файл, который будет скормлен Radialix. Теперь по порядку и с картинками.


In Class Translator создает локализованный файл и русский текст. Перевод помечается в списке зеленым цветом. Создайте файл с русским текстом

Показать / Скрыть текст
[свернуть]

Созданный файл с русским текстом имеет расширение .rus и строки выглядят как в расширении .ini

Показать / Скрыть текст
[свернуть]

С MobiTrans мы создадим русский текст с расширением .loc и английский файл с расширением .txt

Показать / Скрыть текст
[свернуть]

Вот они родимые

Показать / Скрыть текст
[свернуть]

Теперь у нас два пути создать исходный файл для Radialix. Первый это надо запустить MobiTrans, щелкнуть по первой строчке и в окошке перевода строку за строчкой поместить вниз. Потом сохранить только русский текст. Это будет файл для проекта Radialix

Показать / Скрыть текст
[свернуть]

Но 850 строк это долго, и если не хотите такого богачества, то сделайте файл для проекта Radialix в Microsoft Excel (я так и поступил в свое время). Данные в левую колонку содержатся в файле с расширением .loc, а в правую колонку с расширением .txt. В конце концов у нас получается файл со структурой расширения .ini

Показать / Скрыть текст
[свернуть]

Дайте расширение этому файлу .ini и сделайте проект в Radialix. Теперь настройки проекта.

Исходный файл - это файл с расширением .ini. В свойствах проекта на вкладке Локализованные файлы уберите гальку и направьте путь создаваемого файла на файл с расширением .rus

Показать / Скрыть текст
[свернуть]

Итак, все есть и настроено, теперь шаги работы.

1. Делаем перевод строк в Radialix

2. Создаем локализованный файл. Заметьте - файл создается в память переводов In Class Translator, это файл с расширением .rus

3. Запускаем In Class Translator и нажимаем кнопку Save. Программа возьмет ваш перевод из файла с расширением .rus и создаст конечный файл
4. Файл готов для использования в джава

Вот и вся беда. А теперь немного о ситуации, когда классов дохрена и трошки...

Шаги работы такие.

1. Открываете классы один за одним и увидев ресурсы просто создаете файл с русским текстом в In Class Translator

2. После удаления классов без ресурсов опять откройте классы в MobiTrans один за одним и все ресурсы в окне перевода забейте вниз

Показать / Скрыть текст
[свернуть]

3. Сделайте настройку сохранения только на русский текст - на выходе будет файлы с расширением .loc

Показать / Скрыть текст
[свернуть]

4. Для массового переименования расширения используйте TotalCommander. Запускаем его и даем ему путь файлов с расширением .loc

Для массового выделения нажимаем клавиши Ctrl + A

Показать / Скрыть текст
[свернуть]

Для вызова окна для замены расширения нажимаем клавиши Ctrl + M, сделайте настройки как на скрине и нажмите копку Выполнить

Показать / Скрыть текст
[свернуть]

Результат на лицо (или на рыло). Так надо проделать со всеми файлами с расширением .loc

Показать / Скрыть текст
[свернуть]

После завершения этой процедуры делаем проект в Radialix и работаем как написано выше. Что это дает - да практически все, как и работа с другими расширениями файлов для локализации.


На этом все 

WYLEKАвтор темы

ЦитироватьМожет я чего не понимаю, но почему нельзя сразу в PSPad-е открыть файл с расширением .properties, перевести его и сохранить? Я эту прогу специально держу для файлов с расширением .properties. И Radialix вроде не треба?

Читай еще раз, там написано.

pp0312

Цитата: kurkoff1965Может я чего не понимаю, но почему нельзя сразу в PSPad-е открыть файл с расширением  .properties,


Цитата: WYLEKНапример: вам не понравился перевод строки, а вражий текст уже исчез, и надо искать его в исходном файле


Метод с Radialix снимает проблему поиска, а мне пришлось искать с помощью txt2uni в нем писал, а затем забивал в поиск.
Думал что решу эту проблему с помощью Войдите на сайт для перехода по ссылке эта программка совмещает Radialix и PSPad для перевода .properties, но оказалась что она не показывает все строки [img]http://Войдите на сайт для перехода по ссылке
Показать / Скрыть текст
А если .properties не на ENG
Вот например столкнулся часть на ENG и другая половина CN то есть на китайском. В Radialix будет как на рисунки снизу

Лазил по различным форумам в них был тот-же вопрос, но ответа не нашел.
Здесь и пригодилась программа TM-database в ней выглядит вот так (и строк открыла много)

Еще по поводу .properties из моего небольшого опыта не все файлы .properties одинаковы.
Берем любую программу MartView - чтение PDF или JugglingLab - тренажер жонглера
Я покажу на примере JugglingLab
Если переводим как положено например программой attesoro v1.8 результат получился вот такой

Берем Notepad++ выставляем Кодировать в UTF-8 и пишем русскими буквами

Если не по теме просьба переместить или удалить.
[свернуть]

WYLEKАвтор темы

ЦитироватьМожно ли в Radialix переводить common_zh_CN.properties ?

Можно любой язык. А вообще дай файл для интереса.

ЦитироватьЕще по поводу .properties из моего небольшого опыта не все файлы .properties одинаковы.

Да, это так. Для этого мы и существуем :biggrin:  если бы было все так легко - то юзеры без нас бы обходились :biggrin:  
Кодировка там гуляет тоже - например плагины для фаерфокса на UTF-8

pp0312


WYLEKАвтор темы

Это не то - в каком файле джава эти ресурсы?

Блин, плохо читал :biggrin:  до использования в радиаликс надо конвертер использовать. Но какой - надо искать. А если в TM-database возможен перевод, то что огород то городить? :biggrin:  Прогу эту закинь на сайт в раздел Инструменты

Leserg

ЦитироватьМожно ли в Radialix переводить common_zh_CN.properties ?
pp0312, почему твой выбор пал именно на файл common_zh_CN.properties? Там же рядом лежит файл common.properties с английским текстом. Бери его и по вышеуказанной методике переводи. Потом добавь к имени файла языковой идентификатор ru-RU (common_ru_RU.properties) и вставь в программу, при условии что она поддерживает автоматическую привязку к локали. Если нет, то замени оригинальный файл китайского языка, переименовав common_ru_RU.properties в common_zh_CN.properties.
Кто ищет, тот всегда найдет!

WYLEKАвтор темы

Цитироватьpp0312, почему твой выбор пал именно на файл common_zh_CN.properties?

Через тернии к звездам! Видишь, если бы взял енг файл, то и не нашел бы метод перевода с китаезкого языка :biggrin:

pp0312

ЦитироватьТам же рядом лежит файл common.properties
 common.properties и common.tip я перевел не все конечно . если в китайском убираю строки программам не работает.
Я понимаю что с выходом Android телефонным играм на JAVA приходит конец и программу отложил, а здесь такая тема о properties .
Всегда хочется понять те места где был в танке :happy:  ,но отлично понимаю, что список таких мест у меня большой и будет увеличиваться .

Leserg

Цитироватьесли в китайском убираю строки программам не работает
Да зачем же вы строки убираете то? Он один  кадр уже грохнул строки в ресурсах и удивляется почему программа не работает. Где вы это прочитали, что строки нужно удалять? Это все равно что из книжки вырвать листы и попытаться её потом прочитать.
Кто ищет, тот всегда найдет!

gazon01

ЦитироватьБлин, плохо читал до использования в радиаликс надо конвертер использовать. Но какой - надо искать.
такой не подойдет:
Войдите на сайт для перехода по ссылке
в строке автоматически выбрать кодировку, в данном случае 3 снизу и на выходе получим -- архив прикреплен

ну и на последок ещё один конвертер Войдите на сайт для перехода по ссылке
Возможно всё! На невозможное просто требуется больше времени.
 Мудрец из Шангри Ла

WYLEKАвтор темы

Цитироватьтакой не подойдет:

Там английский файл есть, pp0312 просмотрел видать. Да и TM-database-182 язык узкоглазых спокойно открывает с этой кодировкой :biggrin:  

Накатал вторую часть вчера, но жонка оккупировала комп и мне пришлось смотреть телик :biggrin:  надеюсь, что сегодня выложу...

WYLEKАвтор темы

Вторую часть закинул.

* Ваши права на сайте

    Light Portal

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

    Simple Machines

  • Вы не можете удалять темы.
  • Вы не можете создавать темы.
  • Вы не можете отвечать на сообщения.
  • Вы не можете прикреплять файлы.
  • Вы не можете изменять свои сообщения.
  • Вы не можете удалять свои сообщения.

Яндекс.Метрика Каталог@MAIL.RU - каталог ресурсов интернет