Локализация джава

Локализация джава - перевод файлов с расширением .properties и .class в RadialixИнструменты для этого действия-злодействия...Radialix
  1. Оффлайн

    Автор темы

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2195

    Создано тем: 317

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3580

    Был: 2024-11-18 08:59

    Лайков: 202

    Локализация джава - перевод файлов с расширением .properties и .class в Radialix







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


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

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

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

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

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

    Кролик - JaBack10




    Идея написать руководство была еще год назад, когда поступил заказ перевести программу для игр в карты 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



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

    Кролик - Poker Office, в архиве файл проекта 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 и работаем как написано выше. Что это дает - да практически все, как и работа с другими расширениями файлов для локализации.


    На этом все  dance-2
    tregalka, Смотрящий нравится это сообщение.
    Сообщение отредактировал WYLEK 29 января 2023 - 14:39

    26 марта 2014 - 18:42 / #1
  2. Оффлайн

    Автор темы

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2195

    Создано тем: 317

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3580

    Был: 2024-11-18 08:59

    Лайков: 202

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


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

    27 марта 2014 - 01:15 / #2
  3. Оффлайн

    pp0312

    Звание: Бывалый

    Мастер

    Сообщений: 174

    Создано тем: 24

    Рейтинг: 4

    Репа: (30|30|0)

    Баллы: 61

    Страна: не указана!

    Был: 2024-10-26 03:27

    Лайков: 26

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




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




    Метод с Radialix снимает проблему поиска, а мне пришлось искать с помощью txt2uni в нем писал, а затем забивал в поиск.
    Думал что решу эту проблему с помощью TM-database-182 эта программка совмещает Radialix и PSPad для перевода .properties, но оказалась что она не показывает все строки 003
    Можно ли в Radialix переводить common_zh_CN.properties ?

    [spoiler]А если .properties не на ENG
    Вот например столкнулся часть на ENG и другая половина CN то есть на китайском. В Radialix будет как на рисунки снизу

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

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

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

    Если не по теме просьба переместить или удалить.
    Сообщение отредактировал Смотрящий 25 июля 2024 - 14:14
    27 марта 2014 - 07:58 / #3
  4. Оффлайн

    Автор темы

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2195

    Создано тем: 317

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3580

    Был: 2024-11-18 08:59

    Лайков: 202

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


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

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


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

    27 марта 2014 - 11:38 / #4
  5. Оффлайн

    pp0312

    Звание: Бывалый

    Мастер

    Сообщений: 174

    Создано тем: 24

    Рейтинг: 4

    Репа: (30|30|0)

    Баллы: 61

    Страна: не указана!

    Был: 2024-10-26 03:27

    Лайков: 26

    Цитата: WYLEK
    А вообще дай файл для интереса.




    CN.properties
    Сама программа

    Сообщение отредактировал 10 февраля 2017 - 23:17
    27 марта 2014 - 12:48 / #5
  6. Оффлайн

    Автор темы

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2195

    Создано тем: 317

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3580

    Был: 2024-11-18 08:59

    Лайков: 202

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

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

    27 марта 2014 - 15:51 / #6
  7. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    Можно ли в 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.

    Кто ищет, тот всегда найдет!

    27 марта 2014 - 16:18 / #7
  8. Оффлайн

    Автор темы

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2195

    Создано тем: 317

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3580

    Был: 2024-11-18 08:59

    Лайков: 202

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


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

    27 марта 2014 - 16:21 / #8
  9. Оффлайн

    pp0312

    Звание: Бывалый

    Мастер

    Сообщений: 174

    Создано тем: 24

    Рейтинг: 4

    Репа: (30|30|0)

    Баллы: 61

    Страна: не указана!

    Был: 2024-10-26 03:27

    Лайков: 26

    Там же рядом лежит файл common.properties

     common.properties и common.tip я перевел не все конечно . если в китайском убираю строки программам не работает.
    Я понимаю что с выходом Android телефонным играм на JAVA приходит конец и программу отложил, а здесь такая тема о properties .
    Всегда хочется понять те места где был в танкеhappy ,но отлично понимаю, что список таких мест у меня большой и будет увеличиваться .
    27 марта 2014 - 17:16 / #9
  10. Оффлайн

    Leserg

    Звание: Ветеран

    Команда сайта

    Сообщений: 945

    Создано тем: 79

    Рейтинг: 8

    Репа: (131|131|0)

    Баллы: 1676

    Был: 2024-07-28 22:59

    Лайков: 167

    если в китайском убираю строки программам не работает

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

    Кто ищет, тот всегда найдет!

    27 марта 2014 - 19:23 / #10

Статистика форума, пользователей онлайн: 1 (за последние 20 минут)

Создано тем
1197
Всего сообщений
15762
Пользователей
18015
Новый участник
HELIUM