• Добро пожаловать на WYLEK.ru. Пожалуйста, войдите или зарегистрируйтесь.
 
106 гостей, 1 пользователь

avatar_WYLEK

Обновление языковых файлов форума SMF2.1 RC3

Автор WYLEK, 20 января 2020, 14:10:46

« предыдущая - следующая »

WYLEKАвтор темы

:writer: Скоро или нет выйдет SMF2.1RC3, но в новой версии форума добавились языковые ресурсы. Переводить в блокноте это же дедовский способ, да и искать различия даже с помощью Araxis Merge ну никак мне не нравится :mad:

Начал рыть ресурсы, после пару дней все получилось :friday:

Итак что для этого надо...
Инструменты.

Notepad++ - текстовый редактор
Radialix 3 64 бита - шаблонный редактор
Araxis Merge - лучшая программа для сравнения файлов
TotalCommander - ну, он и в Африке командер  :1tooth:
Бестолковка - ну, как же без нее :pray2:


Так как опыт с языковыми ресурсами SMF уже был, то дело шло веселее. Файлы форума с расширением .php
Формат строк там такой:
$txt['install_step_welcome'] = 'Welcome';

Неправда ли, что это что то уж больно знакомое? Ну да, это же формат языковых файлов .ini, .lng и .isl
Но если вставить встроенный парсер, то нифига вы не получите. Потому что там есть такие строки:
$txt['regards_team'] = "Regards,\nThe " . $context['forum_name'] . ' Team.';

И такие строки:
$txt['movetopic_default'] = 'This topic has been moved to ' . $txt['movetopic_auto_board'] . ".\n\n" . $txt['movetopic_auto_topic'];

Еще такие:
$helptxt['edit_news'] = '
 <ul class="normallist">
 <li>
 <strong>News</strong><br>
 This page allows you to set the text for news items displayed on the Board Index page.
 Add any item you want (e.g., &quot;Don\'t miss the conference this Tuesday&quot;). Each news item is displayed randomly and should be placed in a separate box.
 </li>
 <li>
 <strong>Newsletters</strong><br>
 This page allows you to send out newsletters to the members of the forum via personal message or email. First select the groups that you want to receive the newsletter, and those you don\'t want to receive the newsletter. If you wish, you can add additional members and email addresses that will receive the newsletter. Finally, input the message you want to send and select whether you want it to be sent to members as a personal message or as an email.
 </li>
 <li>
 <strong>Settings</strong><br>
 This page contains a few settings that relate to news and newsletters, including selecting which groups can edit forum news or send newsletters. There is also a setting to configure whether you want news feeds enabled on the forum, as well as a setting to configure the length (how many characters are displayed) for each new post that shows in the feed.
 </li>
 </ul>';

Так как у нас есть волшебный инструмент Radialix, то работа по переводу или созданию базы данных или обновлению упрощается в разы :crazy:
Как всегда в нашей работе это не навредить и сделать так, чтобы не один знак не пропал случайно :biggrin:


Языковых файлов там 34 штуки и весят они довольно прилично.



Для начала надо перегнать в Radialix ранний перевод, нам же обновление нужно и переводить заново незачем.
Создаем папку languages_en и вражьи файлы закидаем туда. Теперь создаем папку languages_rus и опять эти файлы закидаем в эту папку. Открываем TotalCommander и переименовываем все файлы сразу.



Теперь в папке languages_rus будут все русские языковые файлы типа - Admin.russian.php
Все готово для запуска Radialix и создания проекта. Запускаем шаблонник и создаем проект локализации.



Жмем Добавить файл, выделяем все файлы в папке languages_en и жмем Открыть, в окне Свойства файла выбираем раздел Исходные ресурсы и жмем кнопку Шаблоны. Здесь я написал регулярные выражения для этих файлов. Прикол в том, что в Notepad++ регулярные выражения работают иначе, чем в Radialix, так что пришлось поэкспериментировать. Файлик с регуляркой будет в конце описания. Настройки нужно сделать как на картинке.



После выхода из шаблонов настройте кодировку, должно быть вот так.



Переходим в раздел Локализованные файлы и снимаем гальку :1tooth: с Используемые по умолчанию и жмем маленькую кнопку как на рисунке. В папке languages_rus выбираем файл для вывода. Дальше подтверждаем действие - жмем кнопку OK



Ну и, так настроить все оставшиеся файлы один за другим :pray2: В самом конце нажимаем кнопку Создать.



Проект создан и надо проверить парсер, все ли он разбирает как надо и ничего не выкидывает. Для этого нажмите кнопку Создать все локализованные файлы.



Запустите TotalCommander и в папке languages_rus переименуйте файлы. Это надо для сравнения. Файлы должны быть в папках одинаковые.



Запускаем Araxis Merge и результат виден на картинке - шаблонник создал идентичные файлы с оригиналом :ura:



Теперь можно приступить к созданию базы данных. Создаем папку languages21rc2rus и туда вставляем 34 русских файла из вашего форума. Из них будем делать импорт ресурсов. Немного придется переделать исходный перевод - откройте все файлы в Notepad++ и сделайте поиск данных ниже.

= '';

Замените на

= ' ';

Надо просто между кавычками поставить пробел. Зачем это надо - в исходных файлах между кавычками есть слово или буква, а переводчик при локализации удалил для правильного предложения в русском варианте. Но парсер этого не понимает :1tooth:
У меня нашлось 10 различий в 7 файлах.



Ставим пробел между кавычками так.





Теперь делаем импорт ресурсов. Выбираем первый файл в радиаликсе слева и жмем кнопку Файл и в выпадающем меню Импорт.



Здесь ничего менять не надо и жмем кнопку Далее



Ищем папку languages21rc2rus и в ней выбираем нужный файл.



Здесь устанавливаем русский язык и жмем кнопку Шаблоны



Выбираем наш шаблон и жмем кнопку Закрыть



Вот так у вас должно получится, теперь жмем кнопку ОК



В этом окне жмем кнопку Начать



Вот, справа появились русские буковки :biggrin: значит все сделали правильно. Жмите кнопку Закрыть и сделайте по такой схеме импорт остальных файлов.





Как сделать обновление языковых файлов в радиаликсе? Да очень просто!
Идем Войдите на сайт для перехода по ссылке и качаем новую разработку. В Из архива вытягиваем папку languages и переименовываем ее на languages_rc3. Из этой папки все файлы копируем в папку languages_en и соглашаемся на замену.



Запускаем радиаликс и открываем проект. Слева видны файлы с желтыми значками. Теперь нажимаем кнопку Пересканировать все файлы.



После завершения сканирования слева, что выделено жирным, это измененные файлы.



Для общего просмотра и редактирования изменений выделите слева Русский и нажмите кнопку фильтра Новые



Большинство строк уже переведено, но и новых хватает. Ну, как то так...

Файл парсера Файлы SMF2.zip

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

    TinyPortal

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

    Simple Machines

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